Message ID | 1369995191-20855-2-git-send-email-gururaja.hebbar@ti.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Fri, May 31, 2013 at 12:13 PM, Hebbar Gururaja <gururaja.hebbar@ti.com> wrote: > Make pinctrl-single able to handle suspend/resume events and change > hogged pins states accordingly. > > Signed-off-by: Hebbar Gururaja <gururaja.hebbar@ti.com> > Cc: Linus Walleij <linus.walleij@linaro.org> Noone said anything about this patch, but it looks very straight-forward to me and seems sound so I have applied it. If Tony or Haojian has strong feelings about it I will dequeue it. Yours, Linus Walleij
* Linus Walleij <linus.walleij@linaro.org> [130617 04:38]: > On Fri, May 31, 2013 at 12:13 PM, Hebbar Gururaja > <gururaja.hebbar@ti.com> wrote: > > > Make pinctrl-single able to handle suspend/resume events and change > > hogged pins states accordingly. > > > > Signed-off-by: Hebbar Gururaja <gururaja.hebbar@ti.com> > > Cc: Linus Walleij <linus.walleij@linaro.org> > > Noone said anything about this patch, but it looks very straight-forward > to me and seems sound so I have applied it. > > If Tony or Haojian has strong feelings about it I will dequeue it. I don't like the hogged pins at all as they prevent me from unloading pinctrl-single.. But the patch seems fine to me: Acked-by: Tony Lindgren <tony@atomide.com>
On Mon, Jun 17, 2013 at 2:03 PM, Tony Lindgren <tony@atomide.com> wrote: > * Linus Walleij <linus.walleij@linaro.org> [130617 04:38]: >> On Fri, May 31, 2013 at 12:13 PM, Hebbar Gururaja >> <gururaja.hebbar@ti.com> wrote: >> >> > Make pinctrl-single able to handle suspend/resume events and change >> > hogged pins states accordingly. >> > >> > Signed-off-by: Hebbar Gururaja <gururaja.hebbar@ti.com> >> > Cc: Linus Walleij <linus.walleij@linaro.org> >> >> Noone said anything about this patch, but it looks very straight-forward >> to me and seems sound so I have applied it. >> >> If Tony or Haojian has strong feelings about it I will dequeue it. > > I don't like the hogged pins at all as they prevent me from unloading > pinctrl-single.. But the patch seems fine to me: Hm? I think the hogged pins are the *only* pins we can reliably release when unloading the driver, look: void pinctrl_unregister(struct pinctrl_dev *pctldev) { (...) if (!IS_ERR(pctldev->p)) pinctrl_put(pctldev->p); That releases all hogged pinctrl handles when unloading a pinctrl driver. Yours, Linus Walleij
* Linus Walleij <linus.walleij@linaro.org> [130617 09:14]: > On Mon, Jun 17, 2013 at 2:03 PM, Tony Lindgren <tony@atomide.com> wrote: > > * Linus Walleij <linus.walleij@linaro.org> [130617 04:38]: > >> On Fri, May 31, 2013 at 12:13 PM, Hebbar Gururaja > >> <gururaja.hebbar@ti.com> wrote: > >> > >> > Make pinctrl-single able to handle suspend/resume events and change > >> > hogged pins states accordingly. > >> > > >> > Signed-off-by: Hebbar Gururaja <gururaja.hebbar@ti.com> > >> > Cc: Linus Walleij <linus.walleij@linaro.org> > >> > >> Noone said anything about this patch, but it looks very straight-forward > >> to me and seems sound so I have applied it. > >> > >> If Tony or Haojian has strong feelings about it I will dequeue it. > > > > I don't like the hogged pins at all as they prevent me from unloading > > pinctrl-single.. But the patch seems fine to me: > > Hm? I think the hogged pins are the *only* pins we can > reliably release when unloading the driver, look: In most cases all the pins can be released reliably if the pinctrl driver won't do anything with the pins on release. After all that's what bootloaders have been doing for ages :) > void pinctrl_unregister(struct pinctrl_dev *pctldev) > { > (...) > if (!IS_ERR(pctldev->p)) > pinctrl_put(pctldev->p); > > That releases all hogged pinctrl handles when unloading > a pinctrl driver. Hmm maybe I need to try it again. The last time I tried I had to comment those out, but that was a while back. And I probably had also some other hack to release pins. Regards, Tony
diff --git a/drivers/pinctrl/pinctrl-single.c b/drivers/pinctrl/pinctrl-single.c index b9fa046..bfd4f6a 100644 --- a/drivers/pinctrl/pinctrl-single.c +++ b/drivers/pinctrl/pinctrl-single.c @@ -1346,6 +1346,29 @@ static int pcs_add_gpio_func(struct device_node *node, struct pcs_device *pcs) return ret; } +static int pinctrl_single_suspend(struct platform_device *pdev, + pm_message_t state) +{ + struct pcs_device *pcs; + + pcs = platform_get_drvdata(pdev); + if (!pcs) + return -EINVAL; + + return pinctrl_force_sleep(pcs->pctl); +} + +static int pinctrl_single_resume(struct platform_device *pdev) +{ + struct pcs_device *pcs; + + pcs = platform_get_drvdata(pdev); + if (!pcs) + return -EINVAL; + + return pinctrl_force_default(pcs->pctl); +} + static int pcs_probe(struct platform_device *pdev) { struct device_node *np = pdev->dev.of_node; @@ -1494,6 +1517,10 @@ static struct platform_driver pcs_driver = { .name = DRIVER_NAME, .of_match_table = pcs_of_match, }, +#ifdef CONFIG_PM + .suspend = pinctrl_single_suspend, + .resume = pinctrl_single_resume, +#endif }; module_platform_driver(pcs_driver);
Make pinctrl-single able to handle suspend/resume events and change hogged pins states accordingly. Signed-off-by: Hebbar Gururaja <gururaja.hebbar@ti.com> Cc: Linus Walleij <linus.walleij@linaro.org> --- :100644 100644 b9fa046... bfd4f6a... M drivers/pinctrl/pinctrl-single.c drivers/pinctrl/pinctrl-single.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+)