[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1302110209.2840.20.camel@bwh-desktop>
Date: Wed, 06 Apr 2011 18:16:49 +0100
From: Ben Hutchings <bhutchings@...arflare.com>
To: Samuel Ortiz <sameo@...ux.intel.com>
Cc: Greg KH <gregkh@...e.de>, Grant Likely <grant.likely@...retlab.ca>,
Andres Salomon <dilinger@...ued.net>,
linux-kernel@...r.kernel.org,
Mark Brown <broonie@...nsource.wolfsonmicro.com>,
khali@...ux-fr.org, ben-linux@...ff.org,
Peter Korsgaard <jacmet@...site.dk>,
Mauro Carvalho Chehab <mchehab@...radead.org>,
David Brownell <dbrownell@...rs.sourceforge.net>,
linux-i2c@...r.kernel.org, linux-media@...r.kernel.org,
netdev@...r.kernel.org, spi-devel-general@...ts.sourceforge.net,
Mocean Laboratories <info@...ean-labs.com>
Subject: Re: [PATCH 07/19] timberdale: mfd_cell is now implicitly available
to drivers
On Wed, 2011-04-06 at 19:05 +0200, Samuel Ortiz wrote:
> Hi Greg,
>
> On Wed, Apr 06, 2011 at 08:58:05AM -0700, Greg KH wrote:
> > On Wed, Apr 06, 2011 at 05:23:23PM +0200, Samuel Ortiz wrote:
> > > --- a/include/linux/device.h
> > > +++ b/include/linux/device.h
> > > @@ -33,6 +33,7 @@ struct class;
> > > struct subsys_private;
> > > struct bus_type;
> > > struct device_node;
> > > +struct mfd_cell;
> > >
> > > struct bus_attribute {
> > > struct attribute attr;
> > > @@ -444,6 +445,8 @@ struct device {
> > > struct device_node *of_node; /* associated device tree node */
> > > const struct of_device_id *of_match; /* matching of_device_id from driver */
> > >
> > > + struct mfd_cell *mfd_cell; /* MFD cell pointer */
> > > +
> >
> > What is a "MFD cell pointer" and why is it needed in struct device?
> An MFD cell is an MFD instantiated device.
> MFD (Multi Function Device) drivers instantiate platform devices. Those
> devices drivers sometimes need a platform data pointer, sometimes an MFD
> specific pointer, and sometimes both. Also, some of those drivers have been
> implemented as MFD sub drivers, while others know nothing about MFD and just
> expect a plain platform_data pointer.
>
> We've been faced with the problem of being able to pass both MFD related data
> and a platform_data pointer to some of those drivers. Squeezing the MFD bits
> in the sub driver platform_data pointer doesn't work for drivers that know
> nothing about MFDs. It also adds an additional dependency on the MFD API to
> all MFD sub drivers. That prevents any of those drivers to eventually be used
> as plain platform device drivers.
> So, adding an MFD cell pointer to the device structure allows us to cleanly
> pass both pieces of information, while keeping all the MFD sub drivers
> independant from the MFD core if they want/can.
Why isn't an MFD the parent of its component devices?
Ben.
--
Ben Hutchings, Senior Software Engineer, Solarflare
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists