[PATCH] gpio: of_get_named_gpio_flags() return -EPROBE_DEFER if GPIO not yet available
From: Roland Stigge <hidden>
Date: 2012-06-18 16:40:53
Also in:
alsa-devel, linux-mmc, lkml
On 06/18/2012 05:45 PM, Stephen Warren wrote:
quoted
quoted
quoted
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. */