Messages in this thread Patch in this message | | | Date | Mon, 18 Jun 2012 18:40:48 +0200 | From | Roland Stigge <> | Subject | Re: [PATCH] gpio: of_get_named_gpio_flags() return -EPROBE_DEFER if GPIO not yet available |
| |
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. */
| |