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@xxxxxxxxxxxxx> > --- > 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 >