[AMD Official Use Only - Internal Distribution Only] > -----Original Message----- > From: Mukunda, Vijendar <Vijendar.Mukunda@xxxxxxx> > Sent: Tuesday, May 19, 2020 7:03 AM > To: Mark Brown <broonie@xxxxxxxxxx> > Cc: alsa-devel@xxxxxxxxxxxxxxxx; tiwai@xxxxxxx; Deucher, Alexander > <Alexander.Deucher@xxxxxxx> > Subject: RE: [PATCH v3 04/14] ASoC: amd: create acp3x pdm platform device > > [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. For reference: https://lore.kernel.org/alsa-devel/20191014070318.GC4545@dell/ Basically MFD should only be used for drivers in drivers/mfd. Everything else should use platform devices. Alex