summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Szyprowski <m.szyprowski@samsung.com>2017-02-09 05:17:41 -0200
committerMauro Carvalho Chehab <mchehab@s-opensource.com>2017-04-05 15:55:00 -0300
commitd1ff4e17b24975c5d90671e4dc15ebeb12832f02 (patch)
treea360069226927e65cd8cc91ec07486701752a112
parent94eaccc064e076d75235eb5a74ff52a63a21eca0 (diff)
downloadlinux-stable-d1ff4e17b24975c5d90671e4dc15ebeb12832f02.tar.gz
linux-stable-d1ff4e17b24975c5d90671e4dc15ebeb12832f02.tar.bz2
linux-stable-d1ff4e17b24975c5d90671e4dc15ebeb12832f02.zip
[media] s5p-mfc: Allocate firmware with internal private buffer alloc function
Once firmware buffer has been converted to use s5p_mfc_priv_buf structure, it is possible to allocate it with existing s5p_mfc_alloc_priv_buf() function. This change will help to reduce code variants in the next patches. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Reviewed-by: Javier Martinez Canillas <javier@osg.samsung.com> Acked-by: Andrzej Hajda <a.hajda@samsung.com> Tested-by: Smitha T Murthy <smitha.t@samsung.com> Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
-rw-r--r--drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.c b/drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.c
index b0cf3970117a..a1811ee538bd 100644
--- a/drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.c
+++ b/drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.c
@@ -27,6 +27,7 @@
int s5p_mfc_alloc_firmware(struct s5p_mfc_dev *dev)
{
struct s5p_mfc_priv_buf *fw_buf = &dev->fw_buf;
+ int err;
fw_buf->size = dev->variant->buf_size->fw;
@@ -35,11 +36,10 @@ int s5p_mfc_alloc_firmware(struct s5p_mfc_dev *dev)
return -ENOMEM;
}
- fw_buf->virt = dma_alloc_coherent(dev->mem_dev[BANK1_CTX], fw_buf->size,
- &fw_buf->dma, GFP_KERNEL);
- if (!fw_buf->virt) {
+ err = s5p_mfc_alloc_priv_buf(dev, BANK1_CTX, &dev->fw_buf);
+ if (err) {
mfc_err("Allocating bitprocessor buffer failed\n");
- return -ENOMEM;
+ return err;
}
return 0;
@@ -92,11 +92,7 @@ int s5p_mfc_release_firmware(struct s5p_mfc_dev *dev)
{
/* Before calling this function one has to make sure
* that MFC is no longer processing */
- if (!dev->fw_buf.virt)
- return -EINVAL;
- dma_free_coherent(dev->mem_dev[BANK1_CTX], dev->fw_buf.size,
- dev->fw_buf.virt, dev->fw_buf.dma);
- dev->fw_buf.virt = NULL;
+ s5p_mfc_release_priv_buf(dev, &dev->fw_buf);
return 0;
}