On 2019-05-27 at 11:05 +0200, Sascha Hauer wrote: > On Mon, May 27, 2019 at 04:51:17PM +0800, yibin.gong@xxxxxxx wrote: > > > > From: Robin Gong <yibin.gong@xxxxxxx> > > > > +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... But current only version needed, so I give up struct define.... > > > > > +}; > > +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... Yes, dmamux_nr could be moved to struct at least. > > > > > @@ -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. Yes, such irq setup function could be moved to struct, thus, no version test in this file. Will refine it in v3. > > Sascha >