On Thu, 2018-04-26 at 13:49 +0100, Javier Arteaga wrote: > On Thu, Apr 26, 2018 at 10:55:49AM +0300, Andy Shevchenko wrote: > > On Thu, 2018-04-26 at 03:34 +0100, Javier Arteaga wrote: > > > My understanding was that in this context, __init allows this > > > probe() > > > to > > > be dropped from memory after module load. > > > > > > What am I doing wrong there? > > > > Just give another thought about it. The keyword(s) here is(are): > > time to > > live of the objects in question. It's good to get knowing what > > unbind- > > bind means (for built-in drivers). > > So this is the bit that I _believed_ applied to the platform drivers > for > these MFD-registered devices (from driver-model/platform.txt): > > Or, in common situations where the device is known not to be hot- > pluggable, > the probe() routine can live in an init section to reduce the > driver's > runtime memory footprint: > > int platform_driver_probe(struct platform_driver *drv, > int (*probe)(struct platform_device *)) > > I'm thinking my misunderstanding probably stems from assuming that > these > leds/pinctrl drivers will always find all devices registered at init > time. Can't say I've validated that assumption - I just didn't see > anything obviously blowing up in my tests so far :) > > I'll keep reading and test out a few more things so I fully > understand. > Until then, I've taken out __init annotations from next version. Just do one small test. Try to unbind the (built-in) driver and bind it back. Would it work? Would kernel survive this? -- Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> Intel Finland Oy -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html