Re: [RFC PATCH v3] drivercore: Add driver probe deferral mechanism

Grant Likely
2011-10-04T15:58:34Z

On Tue, Oct 4, 2011 at 8:51 AM, G, Manjunath Kondaiah <manjugk@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.

g.