[AMD Official Use Only - Internal Distribution Only] > -----Original Message----- > From: Mark Brown <broonie@xxxxxxxxxx> > Sent: Tuesday, May 19, 2020 4:24 PM > To: Mukunda, Vijendar <Vijendar.Mukunda@xxxxxxx> > Cc: alsa-devel@xxxxxxxxxxxxxxxx; tiwai@xxxxxxx; Deucher, Alexander > <Alexander.Deucher@xxxxxxx> > Subject: Re: [PATCH v3 04/14] ASoC: amd: create acp3x pdm platform device > > On Tue, May 19, 2020 at 01:16:54AM +0800, Vijendar Mukunda wrote: > > > + adata->res = devm_kzalloc(&pci->dev, > > + sizeof(struct resource) * 2, > > + GFP_KERNEL); > > + if (!adata->res) { > > + ret = -ENOMEM; > > + goto de_init; > > + } > > + > > + adata->res[0].name = "acp_pdm_iomem"; > > + adata->res[0].flags = IORESOURCE_MEM; > > + adata->res[0].start = addr; > > + adata->res[0].end = addr + (ACP_REG_END - ACP_REG_START); > > + adata->res[1].name = "acp_pdm_irq"; > > + adata->res[1].flags = IORESOURCE_IRQ; > > + adata->res[1].start = pci->irq; > > + adata->res[1].end = pci->irq; > > Creating the subdevice is good and sensible but this is basically open > coding what the MFD framework does. The subdevices should probably be > created with that instead. Previously during raven I2S driver development to support multiple I2S controller instances, we have seen challenges with MFD framework. That's why we opted current design. There is lengthy discussions happened over the mail thread during Raven I2S driver upstream review. Finally current design is accepted. This driver further going to be expanded to support I2S Endpoint also. We believe current design is good enough to handle it.