Re: [PATCH 03/15] media: s5p-mfc: Replace mem_dev_* entries with an array

2017-02-17 Thread Javier Martinez Canillas
Hello Marek,

On 02/14/2017 04:51 AM, Marek Szyprowski wrote:
> 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: Marek Szyprowski 
> ---

Reviewed-by: Javier Martinez Canillas 
Tested-by: Javier Martinez Canillas 

Best regards,
-- 
Javier Martinez Canillas
Open Source Group
Samsung Research America


[PATCH 03/15] media: s5p-mfc: Replace mem_dev_* entries with an array

2017-02-13 Thread Marek Szyprowski
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: Marek Szyprowski 
---
 drivers/media/platform/s5p-mfc/s5p_mfc.c| 31 +---
 drivers/media/platform/s5p-mfc/s5p_mfc_common.h | 11 -
 drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.c   | 23 +-
 drivers/media/platform/s5p-mfc/s5p_mfc_dec.c|  8 +++
 drivers/media/platform/s5p-mfc/s5p_mfc_enc.c| 10 
 drivers/media/platform/s5p-mfc/s5p_mfc_opr_v5.c | 32 ++---
 drivers/media/platform/s5p-mfc/s5p_mfc_opr_v6.c | 15 ++--
 7 files changed, 69 insertions(+), 61 deletions(-)

diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc.c 
b/drivers/media/platform/s5p-mfc/s5p_mfc.c
index ad3d7377f40d..f7664910f12c 100644
--- a/drivers/media/platform/s5p-mfc/s5p_mfc.c
+++ b/drivers/media/platform/s5p-mfc/s5p_mfc.c
@@ -1123,7 +1123,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,
 S5P_MFC_IOMMU_DMA_SIZE);
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;
}
 
@@ -1131,14 +1132,14 @@ static int s5p_mfc_configure_dma_memory(struct 
s5p_mfc_dev *mfc_dev)
 * Create and initialize virtual devices for accessing
 * reserved memory regions.
 */
-   mfc_dev->mem_dev_l = s5p_mfc_alloc_memdev(dev, "left",
- MFC_BANK1_ALLOC_CTX);
-   if (!mfc_dev->mem_dev_l)
+   mfc_dev->mem_dev[BANK1_CTX] = s5p_mfc_alloc_memdev(dev, "left",
+  BANK1_CTX);
+   if (!mfc_dev->mem_dev[BANK1_CTX])
return -ENODEV;
-   mfc_dev->mem_dev_r = s5p_mfc_alloc_memdev(dev, "right",
- MFC_BANK2_ALLOC_CTX);
-   if (!mfc_dev->mem_dev_r) {
-   device_unregister(mfc_dev->mem_dev_l);
+   mfc_dev->mem_dev[BANK2_CTX] = s5p_mfc_alloc_memdev(dev, "right",
+  BANK2_CTX);
+   if (!mfc_dev->mem_dev[BANK2_CTX]) {
+   device_unregister(mfc_dev->mem_dev[BANK1_CTX]);
return -ENODEV;
}
 
@@ -1154,8 +1155,8 @@ static void s5p_mfc_unconfigure_dma_memory(struct 
s5p_mfc_dev *mfc_dev)
return;
}
 
-   device_unregister(mfc_dev->mem_dev_l);
-   device_unregister(mfc_dev->mem_dev_r);
+   device_unregister(mfc_dev->mem_dev[BANK1_CTX]);
+   device_unregister(mfc_dev->mem_dev[BANK2_CTX]);
 }
 
 /* MFC probe function */
@@ -1213,8 +1214,10 @@ static int s5p_mfc_probe(struct platform_device *pdev)
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_r, DMA_BIT_MASK(32));
+   vb2_dma_contig_set_max_seg_size(dev->mem_dev[BANK1_CTX],
+   DMA_BIT_MASK(32));
+   vb2_dma_contig_set_max_seg_size(dev->mem_dev[BANK2_CTX],
+   DMA_BIT_MASK(32));
 
mutex_init(>mfc_mutex);
init_waitqueue_head(>queue);
@@ -1348,8 +1351,8 @@ static int s5p_mfc_remove(struct platform_device *pdev)
v4l2_device_unregister(>v4l2_dev);
s5p_mfc_release_firmware(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_r);
+   vb2_dma_contig_clear_max_seg_size(dev->mem_dev[BANK1_CTX]);
+   vb2_dma_contig_clear_max_seg_size(dev->mem_dev[BANK2_CTX]);
 
s5p_mfc_final_pm(dev);
return 0;
diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc_common.h 
b/drivers/media/platform/s5p-mfc/s5p_mfc_common.h
index 2f1387a4c386..27d4c864e06e 100644
--- a/drivers/media/platform/s5p-mfc/s5p_mfc_common.h
+++ b/drivers/media/platform/s5p-mfc/s5p_mfc_common.h
@@ -33,8 +33,9 @@
 *  while mmaping */
 #define DST_QUEUE_OFF_BASE (1 << 30)
 
-#define MFC_BANK1_ALLOC_CTX0
-#define MFC_BANK2_ALLOC_CTX1
+#define BANK1_CTX  0
+#define BANK2_CTX  1
+#define BANK_CTX_NUM   2
 
 #define MFC_BANK1_ALIGN_ORDER  13
 #define MFC_BANK2_ALIGN_ORDER  13
@@ -254,8 +255,7 @@ struct s5p_mfc_priv_buf {
  * @vfd_dec:   video device for decoding
  * @vfd_enc:   video device for encoding
  * @plat_dev:  platform device
- * @mem_dev_l: child device of the left memory bank