Message ID | 1440787489-15992-1-git-send-email-tony@atomide.com |
---|---|
State | New |
Headers | show |
8/28/2015 11:44 AM, Tony Lindgren wrote: > Currently we gpio-omap breaks if gpiochip_add() returns -EPROBE_DEFER: > > [ 0.570000] gpiochip_add: GPIOs 0..31 (gpio) failed to register > [ 0.570000] omap_gpio 48310000.gpio: Could not register gpio chip -517 > ... > [ 3.670000] omap_gpio 48310000.gpio: Unbalanced pm_runtime_enable! > > Let's fix the issue by adding the missing pm_runtime_put() on error. > > Cc: Grygorii Strashko <grygorii.strashko@ti.com> > Cc: Javier Martinez Canillas <javier@dowhile0.org> > Cc: Kevin Hilman <khilman@deeprootsystems.com> > Cc: Santosh Shilimkar <ssantosh@kernel.org> > Signed-off-by: Tony Lindgren <tony@atomide.com> > --- > drivers/gpio/gpio-omap.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > Acked-by: Santosh Shilimkar <ssantosh@kernel.org> -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Tony, On 08/28/2015 09:44 PM, Tony Lindgren wrote: > Currently we gpio-omap breaks if gpiochip_add() returns -EPROBE_DEFER: > > [ 0.570000] gpiochip_add: GPIOs 0..31 (gpio) failed to register > [ 0.570000] omap_gpio 48310000.gpio: Could not register gpio chip -517 > ... > [ 3.670000] omap_gpio 48310000.gpio: Unbalanced pm_runtime_enable! I have no objection to the patch itself. But I curious, How have you got this error output? Was it simulated? > > Let's fix the issue by adding the missing pm_runtime_put() on error. > > Cc: Grygorii Strashko <grygorii.strashko@ti.com> > Cc: Javier Martinez Canillas <javier@dowhile0.org> > Cc: Kevin Hilman <khilman@deeprootsystems.com> > Cc: Santosh Shilimkar <ssantosh@kernel.org> > Signed-off-by: Tony Lindgren <tony@atomide.com> > --- > drivers/gpio/gpio-omap.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c > index b0c57d5..f09bf0b 100644 > --- a/drivers/gpio/gpio-omap.c > +++ b/drivers/gpio/gpio-omap.c > @@ -1232,8 +1232,11 @@ static int omap_gpio_probe(struct platform_device *pdev) > omap_gpio_mod_init(bank); > > ret = omap_gpio_chip_init(bank, irqc); > - if (ret) > + if (ret) { > + pm_runtime_put_sync(bank->dev); > + pm_runtime_disable(bank->dev); > return ret; > + } > > omap_gpio_show_rev(bank); > >
* Grygorii Strashko <grygorii.strashko@ti.com> [150831 02:07]: > Hi Tony, > > On 08/28/2015 09:44 PM, Tony Lindgren wrote: > >Currently we gpio-omap breaks if gpiochip_add() returns -EPROBE_DEFER: > > > >[ 0.570000] gpiochip_add: GPIOs 0..31 (gpio) failed to register > >[ 0.570000] omap_gpio 48310000.gpio: Could not register gpio chip -517 > >... > >[ 3.670000] omap_gpio 48310000.gpio: Unbalanced pm_runtime_enable! > > I have no objection to the patch itself. > > But I curious, How have you got this error output? Was it simulated? I ran into it when trying to get rid of all the custom initcalls for various drivers. And especially if adding dts mappings for gpio-ranges to try to find some solution for the 1.158 issue that keeps me from having a mainline GPIO PM regresion test with pinging wl12xx during off idle :) Regards, Tony -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 08/31/2015 05:11 PM, Tony Lindgren wrote: > * Grygorii Strashko <grygorii.strashko@ti.com> [150831 02:07]: >> Hi Tony, >> >> On 08/28/2015 09:44 PM, Tony Lindgren wrote: >>> Currently we gpio-omap breaks if gpiochip_add() returns -EPROBE_DEFER: >>> >>> [ 0.570000] gpiochip_add: GPIOs 0..31 (gpio) failed to register >>> [ 0.570000] omap_gpio 48310000.gpio: Could not register gpio chip -517 >>> ... >>> [ 3.670000] omap_gpio 48310000.gpio: Unbalanced pm_runtime_enable! >> >> I have no objection to the patch itself. >> >> But I curious, How have you got this error output? Was it simulated? > > I ran into it when trying to get rid of all the custom initcalls > for various drivers. And especially if adding dts mappings for > gpio-ranges to try to find some solution for the 1.158 issue that > keeps me from having a mainline GPIO PM regresion test with > pinging wl12xx during off idle :) > Ah. So, -EPROBE_DEFER was returned by of_gpiochip_add_pin_range(), I was not able to find a place where gpiochip_add() can return -EPROBE_DEFER ;) Thanks for clarification.
On Fri, Aug 28, 2015 at 8:44 PM, Tony Lindgren <tony@atomide.com> wrote: > Currently we gpio-omap breaks if gpiochip_add() returns -EPROBE_DEFER: > > [ 0.570000] gpiochip_add: GPIOs 0..31 (gpio) failed to register > [ 0.570000] omap_gpio 48310000.gpio: Could not register gpio chip -517 > ... > [ 3.670000] omap_gpio 48310000.gpio: Unbalanced pm_runtime_enable! > > Let's fix the issue by adding the missing pm_runtime_put() on error. > > Cc: Grygorii Strashko <grygorii.strashko@ti.com> > Cc: Javier Martinez Canillas <javier@dowhile0.org> > Cc: Kevin Hilman <khilman@deeprootsystems.com> > Cc: Santosh Shilimkar <ssantosh@kernel.org> > Signed-off-by: Tony Lindgren <tony@atomide.com> > --- > drivers/gpio/gpio-omap.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c > index b0c57d5..f09bf0b 100644 > --- a/drivers/gpio/gpio-omap.c > +++ b/drivers/gpio/gpio-omap.c > @@ -1232,8 +1232,11 @@ static int omap_gpio_probe(struct platform_device *pdev) > omap_gpio_mod_init(bank); > > ret = omap_gpio_chip_init(bank, irqc); > - if (ret) > + if (ret) { > + pm_runtime_put_sync(bank->dev); > + pm_runtime_disable(bank->dev); > return ret; > + } > > omap_gpio_show_rev(bank); Patch applied for fixes with Santosh's ACK. Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c index b0c57d5..f09bf0b 100644 --- a/drivers/gpio/gpio-omap.c +++ b/drivers/gpio/gpio-omap.c @@ -1232,8 +1232,11 @@ static int omap_gpio_probe(struct platform_device *pdev) omap_gpio_mod_init(bank); ret = omap_gpio_chip_init(bank, irqc); - if (ret) + if (ret) { + pm_runtime_put_sync(bank->dev); + pm_runtime_disable(bank->dev); return ret; + } omap_gpio_show_rev(bank);
Currently we gpio-omap breaks if gpiochip_add() returns -EPROBE_DEFER: [ 0.570000] gpiochip_add: GPIOs 0..31 (gpio) failed to register [ 0.570000] omap_gpio 48310000.gpio: Could not register gpio chip -517 ... [ 3.670000] omap_gpio 48310000.gpio: Unbalanced pm_runtime_enable! Let's fix the issue by adding the missing pm_runtime_put() on error. Cc: Grygorii Strashko <grygorii.strashko@ti.com> Cc: Javier Martinez Canillas <javier@dowhile0.org> Cc: Kevin Hilman <khilman@deeprootsystems.com> Cc: Santosh Shilimkar <ssantosh@kernel.org> Signed-off-by: Tony Lindgren <tony@atomide.com> --- drivers/gpio/gpio-omap.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)