On Mon, May 27, 2019 at 04:51:17PM +0800, yibin.g...@nxp.com wrote:
> From: Robin Gong <yibin.g...@nxp.com>
> 
> +static const struct of_device_id fsl_edma_dt_ids[] = {
> +     { .compatible = "fsl,vf610-edma", .data = (void *)v1 },
> +     { .compatible = "fsl,imx7ulp-edma", .data = (void *)v3 },
> +     { /* sentinel */ }

Please put a struct type behind the .data pointer so that you can
configure...

> +};
> +MODULE_DEVICE_TABLE(of, fsl_edma_dt_ids);
> +
> @@ -218,6 +272,22 @@ static int fsl_edma_probe(struct platform_device *pdev)
>       fsl_edma_setup_regs(fsl_edma);
>       regs = &fsl_edma->regs;
>  
> +     if (fsl_edma->version == v3) {
> +             fsl_edma->dmamux_nr = 1;

...things like this...

> @@ -264,7 +334,11 @@ static int fsl_edma_probe(struct platform_device *pdev)
>       }
>  
>       edma_writel(fsl_edma, ~0, regs->intl);
> -     ret = fsl_edma_irq_init(pdev, fsl_edma);
> +
> +     if (fsl_edma->version == v3)
> +             ret = fsl_edma2_irq_init(pdev, fsl_edma);
> +     else
> +             ret = fsl_edma_irq_init(pdev, fsl_edma);

...and this one in that struct rather than littering the code more and
more with such version tests.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

Reply via email to