On Mon, Jul 09, 2018 at 10:42:26PM +0530, Vinod wrote: > On 03-07-18, 14:32, Paul Cercueil wrote: > > > enum jz_version { > > + ID_JZ4740, > > ID_JZ4770, > > ID_JZ4780, > > }; > > @@ -247,6 +248,7 @@ static void jz4780_dma_desc_free(struct virt_dma_desc *vdesc) > > } > > > > static const unsigned int jz4780_dma_ord_max[] = { > > + [ID_JZ4740] = 5, > > [ID_JZ4770] = 6, > > [ID_JZ4780] = 7, > > }; > > @@ -801,11 +803,13 @@ static struct dma_chan *jz4780_of_dma_xlate(struct of_phandle_args *dma_spec, > > } > > > > static const unsigned int jz4780_dma_nb_channels[] = { > > + [ID_JZ4740] = 6, > > [ID_JZ4770] = 6, > > [ID_JZ4780] = 32, > > }; > > I feel these should be done away with if we describe hardware in DT The compatible property can imply things like this. But how this is structured is a bit strange. Normally you have a per compatible struct with these as elements and the compatible matching selects the struct. > > > > > static const struct of_device_id jz4780_dma_dt_match[] = { > > + { .compatible = "ingenic,jz4740-dma", .data = (void *)ID_JZ4740 }, > > adding .compatible should be the only thing required, if at all for this > addition :) > > -- > ~Vinod