[RFC PATCH v3] drivercore: Add driver probe deferral mechanism
grant.likely at secretlab.ca
Tue Oct 4 11:58:10 EDT 2011
On Tue, Oct 4, 2011 at 8:51 AM, G, Manjunath Kondaiah <manjugk at ti.com> wrote:
> On Thu, Sep 22, 2011 at 12:51:23PM -0600, Grant Likely wrote:
>> Hi Manjunath,
>> Here's the current state of the patch. The major think that needs to
>> be done is to convert it to use a separate workqueue as described in
>> the TODO above. It also needs some users adapted to it. One of the
>> gpio drivers would work; preferably one of the newer drivers that
>> doesn't have a lot of drivers depending on the early_initcall()
>> behaviour yet.
> I have tested this patch on omap3 beagle board by making:
> 1. omap-gpio driver init as late_initcall instead of postcore_initcall
> 2. mmc driver probe will request gpio through gpio_request and gpio driver
> returns -EDEFER_PROBE which in turn makes mmc driver to request deferral probe.
> 3. When deferral probe gets activated, it scans driver entries and it will not
> find any match for mmc driver probe.
Looks like drivers/mmc/host/omap.c is using platform_driver_probe()
instead of platform_driver_register(). Add the probe hook to the
platform_driver structure and change it to call
platform_driver_register() and it should work. Don't forget to change
mmc_omap_probe from __init to __devinit.
More information about the linux-arm-kernel