[PATCH v3 04/14] ASoC: amd: create acp3x pdm platform device

Deucher, Alexander Alexander.Deucher at amd.com
Tue May 19 16:40:17 CEST 2020


[AMD Official Use Only - Internal Distribution Only]

> -----Original Message-----
> From: Mukunda, Vijendar <Vijendar.Mukunda at amd.com>
> Sent: Tuesday, May 19, 2020 7:03 AM
> To: Mark Brown <broonie at kernel.org>
> Cc: alsa-devel at alsa-project.org; tiwai at suse.de; Deucher, Alexander
> <Alexander.Deucher at amd.com>
> 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 at kernel.org>
> > Sent: Tuesday, May 19, 2020 4:24 PM
> > To: Mukunda, Vijendar <Vijendar.Mukunda at amd.com>
> > Cc: alsa-devel at alsa-project.org; tiwai at suse.de; Deucher, Alexander
> > <Alexander.Deucher at amd.com>
> > 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


More information about the Alsa-devel mailing list