Hi Tony, On Oct 31, 2012, at 7:52 PM, Tony Lindgren wrote: > * Pantelis Antoniou <panto@xxxxxxxxxxxxxxxxxxxxxxx> [121031 10:26]: >> It is painless to move the adapter DT devices to arch/arm/mach-omap2 >> >> However I got bit by the __init at omap_build_device family functions. >> If you don't remove it, crashes every time you instantiate a device >> at runtime, or you load the cape driver as a module. > > Hmm I think you misunderstood me. You only need to create the > platform_device under arch/arm/mach-omap2. The device creation > happens only at __init, so omap_build_device can stay as __init. > The driver itself should be under drivers. > > But is this bus on non-device-tree omaps? If not, just make it > device tree only. > I'm afraid that's not the case. The whole notion of capebus is that instantiation of the devices doesn't just happen early at the boot sequence. It is perfectly valid for a cape to be instantiated via loading a module, or by making an override by writing a sysfs file. When having the __init there, the function has been long removed and you get a crash by calling into the weeds. So the sequence is: <early boot> Register the adapter driver. <user> insmod bone-geiger-cape <cape-is-matched> call omap_build_device Please look into the capebus patches for the details. > Regards, > > Tony Regards -- Pantelis -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html