2015-06-25 08:29:34

by Michal Simek

[permalink] [raw]
Subject: [PATCH] gpio: zynq: Fix problem with unbalanced pm_runtime_enable

Add missing pm_runtime_disabled to remove().

Error log:
root@zynqmp:~# modprobe gpio_zynq
root@zynqmp:~# lsmod
Not tainted
gpio_zynq 7086 0 - Live 0xffffffbffc00a000
root@zynqmp:~# rmmod gpio_zynq
root@zynqmp:~# lsmod
Not tainted
root@zynqmp:~# modprobe gpio_zynq
[ 246.924438] zynq-gpio ff0a0000.gpio: Unbalanced pm_runtime_enable!
root@zynqmp:~# rmmod gpio_zynq
root@zynqmp:~# lsmod
Not tainted

Signed-off-by: Michal Simek <[email protected]>
---

drivers/gpio/gpio-zynq.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/gpio/gpio-zynq.c b/drivers/gpio/gpio-zynq.c
index 2e87c4b8da26..a78882389836 100644
--- a/drivers/gpio/gpio-zynq.c
+++ b/drivers/gpio/gpio-zynq.c
@@ -757,6 +757,7 @@ static int zynq_gpio_remove(struct platform_device *pdev)
gpiochip_remove(&gpio->chip);
clk_disable_unprepare(gpio->clk);
device_set_wakeup_capable(&pdev->dev, 0);
+ pm_runtime_disable(&pdev->dev);
return 0;
}

--
2.3.5


2015-06-30 13:47:20

by Alexandre Courbot

[permalink] [raw]
Subject: Re: [PATCH] gpio: zynq: Fix problem with unbalanced pm_runtime_enable

On Thu, Jun 25, 2015 at 5:29 PM, Michal Simek <[email protected]> wrote:
> Add missing pm_runtime_disabled to remove().
>
> Error log:
> root@zynqmp:~# modprobe gpio_zynq
> root@zynqmp:~# lsmod
> Not tainted
> gpio_zynq 7086 0 - Live 0xffffffbffc00a000
> root@zynqmp:~# rmmod gpio_zynq
> root@zynqmp:~# lsmod
> Not tainted
> root@zynqmp:~# modprobe gpio_zynq
> [ 246.924438] zynq-gpio ff0a0000.gpio: Unbalanced pm_runtime_enable!
> root@zynqmp:~# rmmod gpio_zynq
> root@zynqmp:~# lsmod
> Not tainted

Yup, this was missing indeed.

Reviewed-by: Alexandre Courbot <[email protected]>

>
> Signed-off-by: Michal Simek <[email protected]>
> ---
>
> drivers/gpio/gpio-zynq.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpio/gpio-zynq.c b/drivers/gpio/gpio-zynq.c
> index 2e87c4b8da26..a78882389836 100644
> --- a/drivers/gpio/gpio-zynq.c
> +++ b/drivers/gpio/gpio-zynq.c
> @@ -757,6 +757,7 @@ static int zynq_gpio_remove(struct platform_device *pdev)
> gpiochip_remove(&gpio->chip);
> clk_disable_unprepare(gpio->clk);
> device_set_wakeup_capable(&pdev->dev, 0);
> + pm_runtime_disable(&pdev->dev);
> return 0;
> }
>
> --
> 2.3.5
>

2015-07-16 11:01:27

by Linus Walleij

[permalink] [raw]
Subject: Re: [PATCH] gpio: zynq: Fix problem with unbalanced pm_runtime_enable

On Thu, Jun 25, 2015 at 10:29 AM, Michal Simek <[email protected]> wrote:

> Add missing pm_runtime_disabled to remove().
>
> Error log:
> root@zynqmp:~# modprobe gpio_zynq
> root@zynqmp:~# lsmod
> Not tainted
> gpio_zynq 7086 0 - Live 0xffffffbffc00a000
> root@zynqmp:~# rmmod gpio_zynq
> root@zynqmp:~# lsmod
> Not tainted
> root@zynqmp:~# modprobe gpio_zynq
> [ 246.924438] zynq-gpio ff0a0000.gpio: Unbalanced pm_runtime_enable!
> root@zynqmp:~# rmmod gpio_zynq
> root@zynqmp:~# lsmod
> Not tainted
>
> Signed-off-by: Michal Simek <[email protected]>

Patch applied with Alex' ACK.

Yours,
Linus Walleij