Re: [PATCH v2 05/30] media: atmel: atmel-isc: specialize dma cfg

2021-04-12 Thread Jacopo Mondi
Hi Eugene

On Mon, Apr 05, 2021 at 06:50:40PM +0300, Eugen Hristev wrote:
> The dma configuration (DCFG) is specific to the product.
> Move this configuration in the product specific driver, and add the
> field inside the driver struct.

Do you plan to match on different compatible values ?
As in that case you could retrieve platform-specific data with
of_device_get_match_data() maybe ? Just pointing it out if it's anyway
useful to you.

Thanks
  j

>
> Signed-off-by: Eugen Hristev 
> ---
>  drivers/media/platform/atmel/atmel-isc-base.c| 3 +--
>  drivers/media/platform/atmel/atmel-isc.h | 2 ++
>  drivers/media/platform/atmel/atmel-sama5d2-isc.c | 3 +++
>  3 files changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/media/platform/atmel/atmel-isc-base.c 
> b/drivers/media/platform/atmel/atmel-isc-base.c
> index 350076dd029a..ff40ee2e2759 100644
> --- a/drivers/media/platform/atmel/atmel-isc-base.c
> +++ b/drivers/media/platform/atmel/atmel-isc-base.c
> @@ -716,8 +716,7 @@ static int isc_configure(struct isc_device *isc)
>   rlp_mode = isc->config.rlp_cfg_mode;
>   pipeline = isc->config.bits_pipeline;
>
> - dcfg = isc->config.dcfg_imode |
> -ISC_DCFG_YMBSIZE_BEATS8 | ISC_DCFG_CMBSIZE_BEATS8;
> + dcfg = isc->config.dcfg_imode | isc->dcfg;
>
>   pfe_cfg0  |= subdev->pfe_cfg0 | ISC_PFE_CFG0_MODE_PROGRESSIVE;
>   mask = ISC_PFE_CFG0_BPS_MASK | ISC_PFE_CFG0_HPOL_LOW |
> diff --git a/drivers/media/platform/atmel/atmel-isc.h 
> b/drivers/media/platform/atmel/atmel-isc.h
> index 6becc6c3aaf0..d14ae096fbf6 100644
> --- a/drivers/media/platform/atmel/atmel-isc.h
> +++ b/drivers/media/platform/atmel/atmel-isc.h
> @@ -150,6 +150,7 @@ struct isc_ctrls {
>   * @hclock:  Hclock clock input (refer datasheet)
>   * @ispck:   iscpck clock (refer datasheet)
>   * @isc_clks:ISC clocks
> + * @dcfg:DMA master configuration, architecture dependent
>   *
>   * @dev: Registered device driver
>   * @v4l2_dev:v4l2 registered device
> @@ -197,6 +198,7 @@ struct isc_device {
>   struct clk  *hclock;
>   struct clk  *ispck;
>   struct isc_clk  isc_clks[2];
> + u32 dcfg;
>
>   struct device   *dev;
>   struct v4l2_device  v4l2_dev;
> diff --git a/drivers/media/platform/atmel/atmel-sama5d2-isc.c 
> b/drivers/media/platform/atmel/atmel-sama5d2-isc.c
> index f8d1c8ba99b3..6d9942dcd7c1 100644
> --- a/drivers/media/platform/atmel/atmel-sama5d2-isc.c
> +++ b/drivers/media/platform/atmel/atmel-sama5d2-isc.c
> @@ -198,6 +198,9 @@ static int atmel_isc_probe(struct platform_device *pdev)
>   isc->max_width = ISC_SAMA5D2_MAX_SUPPORT_WIDTH;
>   isc->max_height = ISC_SAMA5D2_MAX_SUPPORT_HEIGHT;
>
> + /* sama5d2-isc - 8 bits per beat */
> + isc->dcfg = ISC_DCFG_YMBSIZE_BEATS8 | ISC_DCFG_CMBSIZE_BEATS8;
> +
>   ret = isc_pipeline_init(isc);
>   if (ret)
>   return ret;
> --
> 2.25.1
>


[PATCH v2 05/30] media: atmel: atmel-isc: specialize dma cfg

2021-04-05 Thread Eugen Hristev
The dma configuration (DCFG) is specific to the product.
Move this configuration in the product specific driver, and add the
field inside the driver struct.

Signed-off-by: Eugen Hristev 
---
 drivers/media/platform/atmel/atmel-isc-base.c| 3 +--
 drivers/media/platform/atmel/atmel-isc.h | 2 ++
 drivers/media/platform/atmel/atmel-sama5d2-isc.c | 3 +++
 3 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/media/platform/atmel/atmel-isc-base.c 
b/drivers/media/platform/atmel/atmel-isc-base.c
index 350076dd029a..ff40ee2e2759 100644
--- a/drivers/media/platform/atmel/atmel-isc-base.c
+++ b/drivers/media/platform/atmel/atmel-isc-base.c
@@ -716,8 +716,7 @@ static int isc_configure(struct isc_device *isc)
rlp_mode = isc->config.rlp_cfg_mode;
pipeline = isc->config.bits_pipeline;
 
-   dcfg = isc->config.dcfg_imode |
-  ISC_DCFG_YMBSIZE_BEATS8 | ISC_DCFG_CMBSIZE_BEATS8;
+   dcfg = isc->config.dcfg_imode | isc->dcfg;
 
pfe_cfg0  |= subdev->pfe_cfg0 | ISC_PFE_CFG0_MODE_PROGRESSIVE;
mask = ISC_PFE_CFG0_BPS_MASK | ISC_PFE_CFG0_HPOL_LOW |
diff --git a/drivers/media/platform/atmel/atmel-isc.h 
b/drivers/media/platform/atmel/atmel-isc.h
index 6becc6c3aaf0..d14ae096fbf6 100644
--- a/drivers/media/platform/atmel/atmel-isc.h
+++ b/drivers/media/platform/atmel/atmel-isc.h
@@ -150,6 +150,7 @@ struct isc_ctrls {
  * @hclock:Hclock clock input (refer datasheet)
  * @ispck: iscpck clock (refer datasheet)
  * @isc_clks:  ISC clocks
+ * @dcfg:  DMA master configuration, architecture dependent
  *
  * @dev:   Registered device driver
  * @v4l2_dev:  v4l2 registered device
@@ -197,6 +198,7 @@ struct isc_device {
struct clk  *hclock;
struct clk  *ispck;
struct isc_clk  isc_clks[2];
+   u32 dcfg;
 
struct device   *dev;
struct v4l2_device  v4l2_dev;
diff --git a/drivers/media/platform/atmel/atmel-sama5d2-isc.c 
b/drivers/media/platform/atmel/atmel-sama5d2-isc.c
index f8d1c8ba99b3..6d9942dcd7c1 100644
--- a/drivers/media/platform/atmel/atmel-sama5d2-isc.c
+++ b/drivers/media/platform/atmel/atmel-sama5d2-isc.c
@@ -198,6 +198,9 @@ static int atmel_isc_probe(struct platform_device *pdev)
isc->max_width = ISC_SAMA5D2_MAX_SUPPORT_WIDTH;
isc->max_height = ISC_SAMA5D2_MAX_SUPPORT_HEIGHT;
 
+   /* sama5d2-isc - 8 bits per beat */
+   isc->dcfg = ISC_DCFG_YMBSIZE_BEATS8 | ISC_DCFG_CMBSIZE_BEATS8;
+
ret = isc_pipeline_init(isc);
if (ret)
return ret;
-- 
2.25.1