Hi, On Mon, Oct 1, 2012 at 5:14 PM, Mark Brown <broonie@xxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote: > On Mon, Oct 01, 2012 at 05:00:06PM +0530, ABRAHAM, KISHON VIJAY wrote: >> On Mon, Oct 1, 2012 at 4:31 PM, Sourav Poddar <sourav.poddar@xxxxxx> wrote: > > Delete irrelevant context from your replies, it makes it much easier to > find new text. > >> > +static int smsc_i2c_remove(struct i2c_client *i2c) >> > +{ >> > + struct smsc *smsc = i2c_get_clientdata(i2c); >> > + >> > + mfd_remove_devices(smsc->dev); > >> IMO, this should have resulted in an abort (hint: see >> mfd_remove_devices_fn()). Trying to do mfd_remove_devices without >> mfd_add_devices(). Use device_for_each_child here to remove the >> device. > > No, this is not at all sensible - if there's an mfd_remove_devices() > function we really ought to be able to use it to remove the children. > If we can't do that we should fix the API usability, not open code the > same stuff in every user. What makes more sense to me is extend mfd_add_devices to create child devices from dt data. Then for removing devices, one can use mfd_remove_devices(). Thanks Kishon -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html