Re: [PATCH 2/7] ASoC: amd: Registering device endpoints using MFD framework

From: Lee Jones
Date: Wed Oct 02 2019 - 09:36:01 EST


On Wed, 02 Oct 2019, Deucher, Alexander wrote:

> > -----Original Message-----
> > From: Lee Jones <lee.jones@xxxxxxxxxx>
> > Sent: Wednesday, October 2, 2019 8:38 AM
> > To: Deucher, Alexander <Alexander.Deucher@xxxxxxx>
> > Cc: RAVULAPATI, VISHNU VARDHAN RAO
> > <Vishnuvardhanrao.Ravulapati@xxxxxxx>; Liam Girdwood
> > <lgirdwood@xxxxxxxxx>; Mark Brown <broonie@xxxxxxxxxx>; Jaroslav
> > Kysela <perex@xxxxxxxx>; Takashi Iwai <tiwai@xxxxxxxx>; Mukunda,
> > Vijendar <Vijendar.Mukunda@xxxxxxx>; Maruthi Srinivas Bayyavarapu
> > <Maruthi.Bayyavarapu@xxxxxxx>; Mehta, Sanju
> > <Sanju.Mehta@xxxxxxx>; Colin Ian King <colin.king@xxxxxxxxxxxxx>; Dan
> > Carpenter <dan.carpenter@xxxxxxxxxx>; moderated list:SOUND - SOC LAYER
> > / DYNAMIC AUDIO POWER MANAGEM... <alsa-devel@xxxxxxxxxxxxxxxx>;
> > open list <linux-kernel@xxxxxxxxxxxxxxx>
> > Subject: Re: [PATCH 2/7] ASoC: amd: Registering device endpoints using MFD
> > framework
> >
> > On Tue, 01 Oct 2019, Deucher, Alexander wrote:
> >
> > > > -----Original Message-----
> > > > From: Lee Jones <lee.jones@xxxxxxxxxx>
> > > > Sent: Tuesday, October 1, 2019 8:00 AM
> > > > To: RAVULAPATI, VISHNU VARDHAN RAO
> > > > <Vishnuvardhanrao.Ravulapati@xxxxxxx>
> > > > Cc: RAVULAPATI, VISHNU VARDHAN RAO
> > > > <Vishnuvardhanrao.Ravulapati@xxxxxxx>; Deucher, Alexander
> > > > <Alexander.Deucher@xxxxxxx>; Liam Girdwood
> > <lgirdwood@xxxxxxxxx>;
> > > > Mark Brown <broonie@xxxxxxxxxx>; Jaroslav Kysela <perex@xxxxxxxx>;
> > > > Takashi Iwai <tiwai@xxxxxxxx>; Mukunda, Vijendar
> > > > <Vijendar.Mukunda@xxxxxxx>; Maruthi Srinivas Bayyavarapu
> > > > <Maruthi.Bayyavarapu@xxxxxxx>; Mehta, Sanju
> > <Sanju.Mehta@xxxxxxx>;
> > > > Colin Ian King <colin.king@xxxxxxxxxxxxx>; Dan Carpenter
> > > > <dan.carpenter@xxxxxxxxxx>; moderated list:SOUND - SOC LAYER /
> > > > DYNAMIC AUDIO POWER MANAGEM... <alsa-devel@xxxxxxxxxxxxxxxx>;
> > open
> > > > list <linux-kernel@xxxxxxxxxxxxxxx>
> > > > Subject: Re: [PATCH 2/7] ASoC: amd: Registering device endpoints
> > > > using MFD framework
> > > >
> > > > On Tue, 01 Oct 2019, vishnu wrote:
> > > >
> > > > > Hi Jones,
> > > > >
> > > > > I am very Thankful to your review comments.
> > > > >
> > > > > Actually The driver is not totally based on MFD. It just uses
> > > > > mfd_add_hotplug_devices() and mfd_remove_devices() for adding
> > the
> > > > > devices automatically.
> > > > >
> > > > > Remaining code has nothing to do with MFD framework.
> > > > >
> > > > > So I thought It would not break the coding style and moved ahead
> > > > > by using the MFD API by adding its header file.
> > > > >
> > > > > If it is any violation of coding standard then I can move it to
> > > > > drivers/mfd.
> > > > >
> > > > > This patch could be a show stopper for us.Please suggest us how
> > > > > can we move ahead ASAP.
> > > >
> > > > Either move the MFD parts to drivers/mfd, or stop using the MFD API.
> > >
> > > There are more drivers outside of drivers/mfd using this API than
> > > drivers in drivers/mfd.
> >
> > People do wrong things all the time. It doesn't make them right.
> >
> > > In a lot of cases it doesn't make sense to move the driver to drivers/mfd.
> >
> > In those cases, the platform_device_*() API should be used.
>
> Why do we have both? It's not clear to me on when we should use one

The platform_device_*() API is the de facto API to use for registering
devices. mfd_*() is a framework built on-top of that for devices
which register sub-devices that do not reasonably reside elsewhere.

The mfd_*() helper functions should only be used by MFD devices.

> vs the other. These are not platforms per se, they are PCI devices
> that happen to have other devices on them. On previous projects, I
> was told to use mfd and no objections were raised at that time.

Who told you to use MFD API outside of drivers/mfd? That's a hack.

--
Lee Jones [æçæ]
Linaro Services Technical Lead
Linaro.org â Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog