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-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html