Re: [PATCH v2] regulator: fixed: support deferred probe for DT GPIOs

From: Stephen Warren
Date: Mon Jul 02 2012 - 11:40:49 EST


On 07/01/2012 12:23 PM, Mark Brown wrote:
> On Fri, Jun 29, 2012 at 10:33:15AM -0600, Stephen Warren wrote:
>
>> of_get_named_gpio() needs the driver hosting the GPIO that the
>> DT property references to have been probed. Detect this specific
>> failure, and defer the probe of the whole regulator until this
>> API can complete.
>
> I've applied this but...

Thanks.

>> + /* + * of_get_named_gpio() currently returns ENODEV rather
>> than + * EPROBE_DEFER. This code attempts to be compatible with
>> both + * for now; the ENODEV check can be removed once the API
>> is fixed.
>
> ...this just seems rubbish, why aren't we just fixing the device
> tree code and why are we doing this at the device tree level rather
> than as a general gpiolib thing?

It is being fixed in the DT code:

https://lkml.org/lkml/2012/6/18/468

However, it seemed best to make the regulator code work both before
and after that patch.

This issue can't be fixed only in gpio_request(); of_get_named_gpio()
needs the GPIO driver to be probed/registered to even be able to parse
the GPIO ID out of the DT; it makes a call into the GPIO driver as
part of the parsing. So, the DT code will always have to handle
deferred probe, as well as gpio_request() (for the case where the GPIO
ID came from platform data and hence there was no earlier point where
deferred probed would be detected).
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/