* Re: [PATCH] gpio: of_get_named_gpio_flags() return -EPROBE_DEFER if GPIO not yet available
[not found] ` <4FDF4D14.50203@wwwdotorg.org>
@ 2012-06-18 16:40 ` Roland Stigge
0 siblings, 0 replies; only message in thread
From: Roland Stigge @ 2012-06-18 16:40 UTC (permalink / raw)
To: Stephen Warren
Cc: cjb, grant.likely, rob.herring, rmk+kernel, ulf.hansson,
linus.walleij, linux-mmc, linux-kernel, aletes.xgr,
linux-arm-kernel, broonie, lrg, perex, tiwai, alsa-devel
On 06/18/2012 05:45 PM, Stephen Warren wrote:
>>>> Should be easy to fix (replacing the if (... == -ENODEV) to -EPROBE_DEFER.
>>>>
>>>> Will you provide patches as signalled, of should I? Which branch would
>>>> be the correct one to build on top?
>>>
>>> I'm happy either way. It'd probably be best to roll the change into your
>>> patch/series so you can manage all the dependencies in one series, but
>>> if you can't for some reason, I'm happy to provide a patch for this.
>>
>> I should be able ;-) - is broonie's sound.git, branch for-next the
>> correct one to patch against?
>
> Yes, that's the one. Thanks.
I'm posting this as a series of 2 for the sound changes only. Would be
easiest to merge separately via sound/for-next, and the gpiolib-of
change via gpio. However, this could break bisecting.
Since the respective precondition commits are only in the sound tree,
this would be the only one practical for merging a single combined
patch (combining those 3). Would this be OK for the GPIO maintainers?
It's practically only a one-line change in gpiolib-of.c that would come
in via sound.
Thanks in advance,
Roland
PS: Just for illustration purposes for the sound maintainers:
---
drivers/gpio/gpiolib-of.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
--- linux-2.6.orig/drivers/gpio/gpiolib-of.c
+++ linux-2.6/drivers/gpio/gpiolib-of.c
@@ -62,7 +62,10 @@ static int of_gpiochip_find_and_xlate(st
int of_get_named_gpio_flags(struct device_node *np, const char *propname,
int index, enum of_gpio_flags *flags)
{
- struct gg_data gg_data = { .flags = flags, .out_gpio = -ENODEV };
+ /* Return -EPROBE_DEFER to support probe() functions to be called
+ * later when the GPIO actually becomes available
+ */
+ struct gg_data gg_data = { .flags = flags, .out_gpio = -EPROBE_DEFER };
int ret;
/* .of_xlate might decide to not fill in the flags, so clear it. */
^ permalink raw reply [flat|nested] only message in thread