diff mbox series

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

Message ID 20210405155105.162529-6-eugen.hristev@microchip.com
State Superseded
Headers show
Series media: atmel: atmel-isc: add support for xisc | expand

Commit Message

Eugen Hristev April 5, 2021, 3:50 p.m. UTC
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 <eugen.hristev@microchip.com>
---
 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(-)

Comments

Jacopo Mondi April 12, 2021, 9:46 a.m. UTC | #1
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 <eugen.hristev@microchip.com>

> ---

>  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

>
diff mbox series

Patch

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;