Commit 255d831d authored by Marek Szyprowski's avatar Marek Szyprowski Committed by Mauro Carvalho Chehab

[media] s5p-mfc: Replace mem_dev_* entries with an array

Internal MFC driver device structure contains two pointers to devices used
for DMA memory allocation: mem_dev_l and mem_dev_r. Replace them with the
mem_dev[] array and use defines for accessing particular banks. This will
help to simplify code in the next patches.
Signed-off-by: default avatarMarek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: default avatarJavier Martinez Canillas <javier@osg.samsung.com>
Tested-by: default avatarJavier Martinez Canillas <javier@osg.samsung.com>
Acked-by: default avatarAndrzej Hajda <a.hajda@samsung.com>
Tested-by: default avatarSmitha T Murthy <smitha.t@samsung.com>
Signed-off-by: default avatarSylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
parent 4a5ab64c
...@@ -1118,7 +1118,8 @@ static int s5p_mfc_configure_dma_memory(struct s5p_mfc_dev *mfc_dev) ...@@ -1118,7 +1118,8 @@ static int s5p_mfc_configure_dma_memory(struct s5p_mfc_dev *mfc_dev)
int ret = exynos_configure_iommu(dev, S5P_MFC_IOMMU_DMA_BASE, int ret = exynos_configure_iommu(dev, S5P_MFC_IOMMU_DMA_BASE,
S5P_MFC_IOMMU_DMA_SIZE); S5P_MFC_IOMMU_DMA_SIZE);
if (ret == 0) if (ret == 0)
mfc_dev->mem_dev_l = mfc_dev->mem_dev_r = dev; mfc_dev->mem_dev[BANK1_CTX] =
mfc_dev->mem_dev[BANK2_CTX] = dev;
return ret; return ret;
} }
...@@ -1126,14 +1127,14 @@ static int s5p_mfc_configure_dma_memory(struct s5p_mfc_dev *mfc_dev) ...@@ -1126,14 +1127,14 @@ static int s5p_mfc_configure_dma_memory(struct s5p_mfc_dev *mfc_dev)
* Create and initialize virtual devices for accessing * Create and initialize virtual devices for accessing
* reserved memory regions. * reserved memory regions.
*/ */
mfc_dev->mem_dev_l = s5p_mfc_alloc_memdev(dev, "left", mfc_dev->mem_dev[BANK1_CTX] = s5p_mfc_alloc_memdev(dev, "left",
MFC_BANK1_ALLOC_CTX); BANK1_CTX);
if (!mfc_dev->mem_dev_l) if (!mfc_dev->mem_dev[BANK1_CTX])
return -ENODEV; return -ENODEV;
mfc_dev->mem_dev_r = s5p_mfc_alloc_memdev(dev, "right", mfc_dev->mem_dev[BANK2_CTX] = s5p_mfc_alloc_memdev(dev, "right",
MFC_BANK2_ALLOC_CTX); BANK2_CTX);
if (!mfc_dev->mem_dev_r) { if (!mfc_dev->mem_dev[BANK2_CTX]) {
device_unregister(mfc_dev->mem_dev_l); device_unregister(mfc_dev->mem_dev[BANK1_CTX]);
return -ENODEV; return -ENODEV;
} }
...@@ -1149,8 +1150,8 @@ static void s5p_mfc_unconfigure_dma_memory(struct s5p_mfc_dev *mfc_dev) ...@@ -1149,8 +1150,8 @@ static void s5p_mfc_unconfigure_dma_memory(struct s5p_mfc_dev *mfc_dev)
return; return;
} }
device_unregister(mfc_dev->mem_dev_l); device_unregister(mfc_dev->mem_dev[BANK1_CTX]);
device_unregister(mfc_dev->mem_dev_r); device_unregister(mfc_dev->mem_dev[BANK2_CTX]);
} }
/* MFC probe function */ /* MFC probe function */
...@@ -1208,8 +1209,10 @@ static int s5p_mfc_probe(struct platform_device *pdev) ...@@ -1208,8 +1209,10 @@ static int s5p_mfc_probe(struct platform_device *pdev)
goto err_dma; goto err_dma;
} }
vb2_dma_contig_set_max_seg_size(dev->mem_dev_l, DMA_BIT_MASK(32)); vb2_dma_contig_set_max_seg_size(dev->mem_dev[BANK1_CTX],
vb2_dma_contig_set_max_seg_size(dev->mem_dev_r, DMA_BIT_MASK(32)); DMA_BIT_MASK(32));
vb2_dma_contig_set_max_seg_size(dev->mem_dev[BANK2_CTX],
DMA_BIT_MASK(32));
mutex_init(&dev->mfc_mutex); mutex_init(&dev->mfc_mutex);
init_waitqueue_head(&dev->queue); init_waitqueue_head(&dev->queue);
...@@ -1343,8 +1346,8 @@ static int s5p_mfc_remove(struct platform_device *pdev) ...@@ -1343,8 +1346,8 @@ static int s5p_mfc_remove(struct platform_device *pdev)
v4l2_device_unregister(&dev->v4l2_dev); v4l2_device_unregister(&dev->v4l2_dev);
s5p_mfc_release_firmware(dev); s5p_mfc_release_firmware(dev);
s5p_mfc_unconfigure_dma_memory(dev); s5p_mfc_unconfigure_dma_memory(dev);
vb2_dma_contig_clear_max_seg_size(dev->mem_dev_l); vb2_dma_contig_clear_max_seg_size(dev->mem_dev[BANK1_CTX]);
vb2_dma_contig_clear_max_seg_size(dev->mem_dev_r); vb2_dma_contig_clear_max_seg_size(dev->mem_dev[BANK2_CTX]);
s5p_mfc_final_pm(dev); s5p_mfc_final_pm(dev);
return 0; return 0;
......
...@@ -33,8 +33,9 @@ ...@@ -33,8 +33,9 @@
* while mmaping */ * while mmaping */
#define DST_QUEUE_OFF_BASE (1 << 30) #define DST_QUEUE_OFF_BASE (1 << 30)
#define MFC_BANK1_ALLOC_CTX 0 #define BANK1_CTX 0
#define MFC_BANK2_ALLOC_CTX 1 #define BANK2_CTX 1
#define BANK_CTX_NUM 2
#define MFC_BANK1_ALIGN_ORDER 13 #define MFC_BANK1_ALIGN_ORDER 13
#define MFC_BANK2_ALIGN_ORDER 13 #define MFC_BANK2_ALIGN_ORDER 13
...@@ -254,8 +255,7 @@ struct s5p_mfc_priv_buf { ...@@ -254,8 +255,7 @@ struct s5p_mfc_priv_buf {
* @vfd_dec: video device for decoding * @vfd_dec: video device for decoding
* @vfd_enc: video device for encoding * @vfd_enc: video device for encoding
* @plat_dev: platform device * @plat_dev: platform device
* @mem_dev_l: child device of the left memory bank (0) * @mem_dev[]: child devices of the memory banks
* @mem_dev_r: child device of the right memory bank (1)
* @regs_base: base address of the MFC hw registers * @regs_base: base address of the MFC hw registers
* @irq: irq resource * @irq: irq resource
* @dec_ctrl_handler: control framework handler for decoding * @dec_ctrl_handler: control framework handler for decoding
...@@ -297,8 +297,7 @@ struct s5p_mfc_dev { ...@@ -297,8 +297,7 @@ struct s5p_mfc_dev {
struct video_device *vfd_dec; struct video_device *vfd_dec;
struct video_device *vfd_enc; struct video_device *vfd_enc;
struct platform_device *plat_dev; struct platform_device *plat_dev;
struct device *mem_dev_l; struct device *mem_dev[BANK_CTX_NUM];
struct device *mem_dev_r;
void __iomem *regs_base; void __iomem *regs_base;
int irq; int irq;
struct v4l2_ctrl_handler dec_ctrl_handler; struct v4l2_ctrl_handler dec_ctrl_handler;
......
...@@ -28,6 +28,7 @@ int s5p_mfc_alloc_firmware(struct s5p_mfc_dev *dev) ...@@ -28,6 +28,7 @@ int s5p_mfc_alloc_firmware(struct s5p_mfc_dev *dev)
{ {
void *bank2_virt; void *bank2_virt;
dma_addr_t bank2_dma_addr; dma_addr_t bank2_dma_addr;
unsigned int align_size = 1 << MFC_BASE_ALIGN_ORDER;
dev->fw_size = dev->variant->buf_size->fw; dev->fw_size = dev->variant->buf_size->fw;
...@@ -36,8 +37,8 @@ int s5p_mfc_alloc_firmware(struct s5p_mfc_dev *dev) ...@@ -36,8 +37,8 @@ int s5p_mfc_alloc_firmware(struct s5p_mfc_dev *dev)
return -ENOMEM; return -ENOMEM;
} }
dev->fw_virt_addr = dma_alloc_coherent(dev->mem_dev_l, dev->fw_size, dev->fw_virt_addr = dma_alloc_coherent(dev->mem_dev[BANK1_CTX],
&dev->bank1, GFP_KERNEL); dev->fw_size, &dev->bank1, GFP_KERNEL);
if (!dev->fw_virt_addr) { if (!dev->fw_virt_addr) {
mfc_err("Allocating bitprocessor buffer failed\n"); mfc_err("Allocating bitprocessor buffer failed\n");
...@@ -45,13 +46,13 @@ int s5p_mfc_alloc_firmware(struct s5p_mfc_dev *dev) ...@@ -45,13 +46,13 @@ int s5p_mfc_alloc_firmware(struct s5p_mfc_dev *dev)
} }
if (HAS_PORTNUM(dev) && IS_TWOPORT(dev)) { if (HAS_PORTNUM(dev) && IS_TWOPORT(dev)) {
bank2_virt = dma_alloc_coherent(dev->mem_dev_r, 1 << MFC_BASE_ALIGN_ORDER, bank2_virt = dma_alloc_coherent(dev->mem_dev[BANK2_CTX],
&bank2_dma_addr, GFP_KERNEL); align_size, &bank2_dma_addr, GFP_KERNEL);
if (!bank2_virt) { if (!bank2_virt) {
mfc_err("Allocating bank2 base failed\n"); mfc_err("Allocating bank2 base failed\n");
dma_free_coherent(dev->mem_dev_l, dev->fw_size, dma_free_coherent(dev->mem_dev[BANK1_CTX], dev->fw_size,
dev->fw_virt_addr, dev->bank1); dev->fw_virt_addr, dev->bank1);
dev->fw_virt_addr = NULL; dev->fw_virt_addr = NULL;
return -ENOMEM; return -ENOMEM;
} }
...@@ -60,10 +61,10 @@ int s5p_mfc_alloc_firmware(struct s5p_mfc_dev *dev) ...@@ -60,10 +61,10 @@ int s5p_mfc_alloc_firmware(struct s5p_mfc_dev *dev)
* should not have address of bank2 - MFC will treat it as a null frame. * should not have address of bank2 - MFC will treat it as a null frame.
* To avoid such situation we set bank2 address below the pool address. * To avoid such situation we set bank2 address below the pool address.
*/ */
dev->bank2 = bank2_dma_addr - (1 << MFC_BASE_ALIGN_ORDER); dev->bank2 = bank2_dma_addr - align_size;
dma_free_coherent(dev->mem_dev_r, 1 << MFC_BASE_ALIGN_ORDER, dma_free_coherent(dev->mem_dev[BANK2_CTX], align_size,
bank2_virt, bank2_dma_addr); bank2_virt, bank2_dma_addr);
} else { } else {
/* In this case bank2 can point to the same address as bank1. /* In this case bank2 can point to the same address as bank1.
...@@ -123,8 +124,8 @@ int s5p_mfc_release_firmware(struct s5p_mfc_dev *dev) ...@@ -123,8 +124,8 @@ int s5p_mfc_release_firmware(struct s5p_mfc_dev *dev)
* that MFC is no longer processing */ * that MFC is no longer processing */
if (!dev->fw_virt_addr) if (!dev->fw_virt_addr)
return -EINVAL; return -EINVAL;
dma_free_coherent(dev->mem_dev_l, dev->fw_size, dev->fw_virt_addr, dma_free_coherent(dev->mem_dev[BANK1_CTX], dev->fw_size,
dev->bank1); dev->fw_virt_addr, dev->bank1);
dev->fw_virt_addr = NULL; dev->fw_virt_addr = NULL;
return 0; return 0;
} }
......
...@@ -931,14 +931,14 @@ static int s5p_mfc_queue_setup(struct vb2_queue *vq, ...@@ -931,14 +931,14 @@ static int s5p_mfc_queue_setup(struct vb2_queue *vq,
psize[1] = ctx->chroma_size; psize[1] = ctx->chroma_size;
if (IS_MFCV6_PLUS(dev)) if (IS_MFCV6_PLUS(dev))
alloc_devs[0] = ctx->dev->mem_dev_l; alloc_devs[0] = ctx->dev->mem_dev[BANK1_CTX];
else else
alloc_devs[0] = ctx->dev->mem_dev_r; alloc_devs[0] = ctx->dev->mem_dev[BANK2_CTX];
alloc_devs[1] = ctx->dev->mem_dev_l; alloc_devs[1] = ctx->dev->mem_dev[BANK1_CTX];
} else if (vq->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE && } else if (vq->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE &&
ctx->state == MFCINST_INIT) { ctx->state == MFCINST_INIT) {
psize[0] = ctx->dec_src_buf_size; psize[0] = ctx->dec_src_buf_size;
alloc_devs[0] = ctx->dev->mem_dev_l; alloc_devs[0] = ctx->dev->mem_dev[BANK1_CTX];
} else { } else {
mfc_err("This video node is dedicated to decoding. Decoding not initialized\n"); mfc_err("This video node is dedicated to decoding. Decoding not initialized\n");
return -EINVAL; return -EINVAL;
......
...@@ -1832,7 +1832,7 @@ static int s5p_mfc_queue_setup(struct vb2_queue *vq, ...@@ -1832,7 +1832,7 @@ static int s5p_mfc_queue_setup(struct vb2_queue *vq,
if (*buf_count > MFC_MAX_BUFFERS) if (*buf_count > MFC_MAX_BUFFERS)
*buf_count = MFC_MAX_BUFFERS; *buf_count = MFC_MAX_BUFFERS;
psize[0] = ctx->enc_dst_buf_size; psize[0] = ctx->enc_dst_buf_size;
alloc_devs[0] = ctx->dev->mem_dev_l; alloc_devs[0] = ctx->dev->mem_dev[BANK1_CTX];
} else if (vq->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) { } else if (vq->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) {
if (ctx->src_fmt) if (ctx->src_fmt)
*plane_count = ctx->src_fmt->num_planes; *plane_count = ctx->src_fmt->num_planes;
...@@ -1848,11 +1848,11 @@ static int s5p_mfc_queue_setup(struct vb2_queue *vq, ...@@ -1848,11 +1848,11 @@ static int s5p_mfc_queue_setup(struct vb2_queue *vq,
psize[1] = ctx->chroma_size; psize[1] = ctx->chroma_size;
if (IS_MFCV6_PLUS(dev)) { if (IS_MFCV6_PLUS(dev)) {
alloc_devs[0] = ctx->dev->mem_dev_l; alloc_devs[0] = ctx->dev->mem_dev[BANK1_CTX];
alloc_devs[1] = ctx->dev->mem_dev_l; alloc_devs[1] = ctx->dev->mem_dev[BANK1_CTX];
} else { } else {
alloc_devs[0] = ctx->dev->mem_dev_r; alloc_devs[0] = ctx->dev->mem_dev[BANK2_CTX];
alloc_devs[1] = ctx->dev->mem_dev_r; alloc_devs[1] = ctx->dev->mem_dev[BANK2_CTX];
} }
} else { } else {
mfc_err("invalid queue type: %d\n", vq->type); mfc_err("invalid queue type: %d\n", vq->type);
......
...@@ -41,7 +41,8 @@ static int s5p_mfc_alloc_dec_temp_buffers_v5(struct s5p_mfc_ctx *ctx) ...@@ -41,7 +41,8 @@ static int s5p_mfc_alloc_dec_temp_buffers_v5(struct s5p_mfc_ctx *ctx)
int ret; int ret;
ctx->dsc.size = buf_size->dsc; ctx->dsc.size = buf_size->dsc;
ret = s5p_mfc_alloc_priv_buf(dev->mem_dev_l, dev->bank1, &ctx->dsc); ret = s5p_mfc_alloc_priv_buf(dev->mem_dev[BANK1_CTX], dev->bank1,
&ctx->dsc);
if (ret) { if (ret) {
mfc_err("Failed to allocate temporary buffer\n"); mfc_err("Failed to allocate temporary buffer\n");
return ret; return ret;
...@@ -57,7 +58,7 @@ static int s5p_mfc_alloc_dec_temp_buffers_v5(struct s5p_mfc_ctx *ctx) ...@@ -57,7 +58,7 @@ static int s5p_mfc_alloc_dec_temp_buffers_v5(struct s5p_mfc_ctx *ctx)
/* Release temporary buffers for decoding */ /* Release temporary buffers for decoding */
static void s5p_mfc_release_dec_desc_buffer_v5(struct s5p_mfc_ctx *ctx) static void s5p_mfc_release_dec_desc_buffer_v5(struct s5p_mfc_ctx *ctx)
{ {
s5p_mfc_release_priv_buf(ctx->dev->mem_dev_l, &ctx->dsc); s5p_mfc_release_priv_buf(ctx->dev->mem_dev[BANK1_CTX], &ctx->dsc);
} }
/* Allocate codec buffers */ /* Allocate codec buffers */
...@@ -172,8 +173,8 @@ static int s5p_mfc_alloc_codec_buffers_v5(struct s5p_mfc_ctx *ctx) ...@@ -172,8 +173,8 @@ static int s5p_mfc_alloc_codec_buffers_v5(struct s5p_mfc_ctx *ctx)
/* Allocate only if memory from bank 1 is necessary */ /* Allocate only if memory from bank 1 is necessary */
if (ctx->bank1.size > 0) { if (ctx->bank1.size > 0) {
ret = s5p_mfc_alloc_priv_buf(dev->mem_dev_l, dev->bank1, ret = s5p_mfc_alloc_priv_buf(dev->mem_dev[BANK1_CTX],
&ctx->bank1); dev->bank1, &ctx->bank1);
if (ret) { if (ret) {
mfc_err("Failed to allocate Bank1 temporary buffer\n"); mfc_err("Failed to allocate Bank1 temporary buffer\n");
return ret; return ret;
...@@ -182,11 +183,12 @@ static int s5p_mfc_alloc_codec_buffers_v5(struct s5p_mfc_ctx *ctx) ...@@ -182,11 +183,12 @@ static int s5p_mfc_alloc_codec_buffers_v5(struct s5p_mfc_ctx *ctx)
} }
/* Allocate only if memory from bank 2 is necessary */ /* Allocate only if memory from bank 2 is necessary */
if (ctx->bank2.size > 0) { if (ctx->bank2.size > 0) {
ret = s5p_mfc_alloc_priv_buf(dev->mem_dev_r, dev->bank2, ret = s5p_mfc_alloc_priv_buf(dev->mem_dev[BANK2_CTX],
&ctx->bank2); dev->bank2, &ctx->bank2);
if (ret) { if (ret) {
mfc_err("Failed to allocate Bank2 temporary buffer\n"); mfc_err("Failed to allocate Bank2 temporary buffer\n");
s5p_mfc_release_priv_buf(ctx->dev->mem_dev_l, &ctx->bank1); s5p_mfc_release_priv_buf(ctx->dev->mem_dev[BANK1_CTX],
&ctx->bank1);
return ret; return ret;
} }
BUG_ON(ctx->bank2.dma & ((1 << MFC_BANK2_ALIGN_ORDER) - 1)); BUG_ON(ctx->bank2.dma & ((1 << MFC_BANK2_ALIGN_ORDER) - 1));
...@@ -197,8 +199,8 @@ static int s5p_mfc_alloc_codec_buffers_v5(struct s5p_mfc_ctx *ctx) ...@@ -197,8 +199,8 @@ static int s5p_mfc_alloc_codec_buffers_v5(struct s5p_mfc_ctx *ctx)
/* Release buffers allocated for codec */ /* Release buffers allocated for codec */
static void s5p_mfc_release_codec_buffers_v5(struct s5p_mfc_ctx *ctx) static void s5p_mfc_release_codec_buffers_v5(struct s5p_mfc_ctx *ctx)
{ {
s5p_mfc_release_priv_buf(ctx->dev->mem_dev_l, &ctx->bank1); s5p_mfc_release_priv_buf(ctx->dev->mem_dev[BANK1_CTX], &ctx->bank1);
s5p_mfc_release_priv_buf(ctx->dev->mem_dev_r, &ctx->bank2); s5p_mfc_release_priv_buf(ctx->dev->mem_dev[BANK2_CTX], &ctx->bank2);
} }
/* Allocate memory for instance data buffer */ /* Allocate memory for instance data buffer */
...@@ -214,7 +216,8 @@ static int s5p_mfc_alloc_instance_buffer_v5(struct s5p_mfc_ctx *ctx) ...@@ -214,7 +216,8 @@ static int s5p_mfc_alloc_instance_buffer_v5(struct s5p_mfc_ctx *ctx)
else else
ctx->ctx.size = buf_size->non_h264_ctx; ctx->ctx.size = buf_size->non_h264_ctx;
ret = s5p_mfc_alloc_priv_buf(dev->mem_dev_l, dev->bank1, &ctx->ctx); ret = s5p_mfc_alloc_priv_buf(dev->mem_dev[BANK1_CTX], dev->bank1,
&ctx->ctx);
if (ret) { if (ret) {
mfc_err("Failed to allocate instance buffer\n"); mfc_err("Failed to allocate instance buffer\n");
return ret; return ret;
...@@ -227,10 +230,11 @@ static int s5p_mfc_alloc_instance_buffer_v5(struct s5p_mfc_ctx *ctx) ...@@ -227,10 +230,11 @@ static int s5p_mfc_alloc_instance_buffer_v5(struct s5p_mfc_ctx *ctx)
/* Initialize shared memory */ /* Initialize shared memory */
ctx->shm.size = buf_size->shm; ctx->shm.size = buf_size->shm;
ret = s5p_mfc_alloc_priv_buf(dev->mem_dev_l, dev->bank1, &ctx->shm); ret = s5p_mfc_alloc_priv_buf(dev->mem_dev[BANK1_CTX], dev->bank1,
&ctx->shm);
if (ret) { if (ret) {
mfc_err("Failed to allocate shared memory buffer\n"); mfc_err("Failed to allocate shared memory buffer\n");
s5p_mfc_release_priv_buf(dev->mem_dev_l, &ctx->ctx); s5p_mfc_release_priv_buf(dev->mem_dev[BANK1_CTX], &ctx->ctx);
return ret; return ret;
} }
...@@ -246,8 +250,8 @@ static int s5p_mfc_alloc_instance_buffer_v5(struct s5p_mfc_ctx *ctx) ...@@ -246,8 +250,8 @@ static int s5p_mfc_alloc_instance_buffer_v5(struct s5p_mfc_ctx *ctx)
/* Release instance buffer */ /* Release instance buffer */
static void s5p_mfc_release_instance_buffer_v5(struct s5p_mfc_ctx *ctx) static void s5p_mfc_release_instance_buffer_v5(struct s5p_mfc_ctx *ctx)
{ {
s5p_mfc_release_priv_buf(ctx->dev->mem_dev_l, &ctx->ctx); s5p_mfc_release_priv_buf(ctx->dev->mem_dev[BANK1_CTX], &ctx->ctx);
s5p_mfc_release_priv_buf(ctx->dev->mem_dev_l, &ctx->shm); s5p_mfc_release_priv_buf(ctx->dev->mem_dev[BANK1_CTX], &ctx->shm);
} }
static int s5p_mfc_alloc_dev_context_buffer_v5(struct s5p_mfc_dev *dev) static int s5p_mfc_alloc_dev_context_buffer_v5(struct s5p_mfc_dev *dev)
......
...@@ -239,8 +239,8 @@ static int s5p_mfc_alloc_codec_buffers_v6(struct s5p_mfc_ctx *ctx) ...@@ -239,8 +239,8 @@ static int s5p_mfc_alloc_codec_buffers_v6(struct s5p_mfc_ctx *ctx)
/* Allocate only if memory from bank 1 is necessary */ /* Allocate only if memory from bank 1 is necessary */
if (ctx->bank1.size > 0) { if (ctx->bank1.size > 0) {
ret = s5p_mfc_alloc_priv_buf(dev->mem_dev_l, dev->bank1, ret = s5p_mfc_alloc_priv_buf(dev->mem_dev[BANK1_CTX],
&ctx->bank1); dev->bank1, &ctx->bank1);
if (ret) { if (ret) {
mfc_err("Failed to allocate Bank1 memory\n"); mfc_err("Failed to allocate Bank1 memory\n");
return ret; return ret;
...@@ -253,7 +253,7 @@ static int s5p_mfc_alloc_codec_buffers_v6(struct s5p_mfc_ctx *ctx) ...@@ -253,7 +253,7 @@ static int s5p_mfc_alloc_codec_buffers_v6(struct s5p_mfc_ctx *ctx)
/* Release buffers allocated for codec */ /* Release buffers allocated for codec */
static void s5p_mfc_release_codec_buffers_v6(struct s5p_mfc_ctx *ctx) static void s5p_mfc_release_codec_buffers_v6(struct s5p_mfc_ctx *ctx)
{ {
s5p_mfc_release_priv_buf(ctx->dev->mem_dev_l, &ctx->bank1); s5p_mfc_release_priv_buf(ctx->dev->mem_dev[BANK1_CTX], &ctx->bank1);
} }
/* Allocate memory for instance data buffer */ /* Allocate memory for instance data buffer */
...@@ -292,7 +292,8 @@ static int s5p_mfc_alloc_instance_buffer_v6(struct s5p_mfc_ctx *ctx) ...@@ -292,7 +292,8 @@ static int s5p_mfc_alloc_instance_buffer_v6(struct s5p_mfc_ctx *ctx)
break; break;
} }
ret = s5p_mfc_alloc_priv_buf(dev->mem_dev_l, dev->bank1, &ctx->ctx); ret = s5p_mfc_alloc_priv_buf(dev->mem_dev[BANK1_CTX], dev->bank1,
&ctx->ctx);
if (ret) { if (ret) {
mfc_err("Failed to allocate instance buffer\n"); mfc_err("Failed to allocate instance buffer\n");
return ret; return ret;
...@@ -309,7 +310,7 @@ static int s5p_mfc_alloc_instance_buffer_v6(struct s5p_mfc_ctx *ctx) ...@@ -309,7 +310,7 @@ static int s5p_mfc_alloc_instance_buffer_v6(struct s5p_mfc_ctx *ctx)
/* Release instance buffer */ /* Release instance buffer */
static void s5p_mfc_release_instance_buffer_v6(struct s5p_mfc_ctx *ctx) static void s5p_mfc_release_instance_buffer_v6(struct s5p_mfc_ctx *ctx)
{ {
s5p_mfc_release_priv_buf(ctx->dev->mem_dev_l, &ctx->ctx); s5p_mfc_release_priv_buf(ctx->dev->mem_dev[BANK1_CTX], &ctx->ctx);
} }
/* Allocate context buffers for SYS_INIT */ /* Allocate context buffers for SYS_INIT */
...@@ -321,7 +322,7 @@ static int s5p_mfc_alloc_dev_context_buffer_v6(struct s5p_mfc_dev *dev) ...@@ -321,7 +322,7 @@ static int s5p_mfc_alloc_dev_context_buffer_v6(struct s5p_mfc_dev *dev)
mfc_debug_enter(); mfc_debug_enter();
dev->ctx_buf.size = buf_size->dev_ctx; dev->ctx_buf.size = buf_size->dev_ctx;
ret = s5p_mfc_alloc_priv_buf(dev->mem_dev_l, dev->bank1, ret = s5p_mfc_alloc_priv_buf(dev->mem_dev[BANK1_CTX], dev->bank1,
&dev->ctx_buf); &dev->ctx_buf);
if (ret) { if (ret) {
mfc_err("Failed to allocate device context buffer\n"); mfc_err("Failed to allocate device context buffer\n");
...@@ -339,7 +340,7 @@ static int s5p_mfc_alloc_dev_context_buffer_v6(struct s5p_mfc_dev *dev) ...@@ -339,7 +340,7 @@ static int s5p_mfc_alloc_dev_context_buffer_v6(struct s5p_mfc_dev *dev)
/* Release context buffers for SYS_INIT */ /* Release context buffers for SYS_INIT */
static void s5p_mfc_release_dev_context_buffer_v6(struct s5p_mfc_dev *dev) static void s5p_mfc_release_dev_context_buffer_v6(struct s5p_mfc_dev *dev)
{ {
s5p_mfc_release_priv_buf(dev->mem_dev_l, &dev->ctx_buf); s5p_mfc_release_priv_buf(dev->mem_dev[BANK1_CTX], &dev->ctx_buf);
} }
static int calc_plane(int width, int height) static int calc_plane(int width, int height)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment