clk: rockchip: Add pclk_peri to critical clocks on RK3066/RK3188
diff mbox

Message ID 1440180627-4566-1-git-send-email-romain.perier@gmail.com
State New
Headers show

Commit Message

Romain Perier Aug. 21, 2015, 6:10 p.m. UTC
Clocks for bank GPIO3 and GPIO4 are supplied by pclk_peri. These clocks need to
stay on, otherwise pinctrl hangs the system when the driver is probed.

Signed-off-by: Romain Perier <romain.perier@gmail.com>
---
 drivers/clk/rockchip/clk-rk3188.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Heiko Stuebner Aug. 21, 2015, 6:24 p.m. UTC | #1
Hi Romain,

Am Freitag, 21. August 2015, 18:10:27 schrieb Romain Perier:
> Clocks for bank GPIO3 and GPIO4 are supplied by pclk_peri. These clocks need
> to stay on, otherwise pinctrl hangs the system when the driver is probed.

I don't agree with the commit message.

The issue you see does not originate from the pinctrl driver itself. Instead 
only the new flexible clock handling causes some other (still unhandled) 
component reyling on pclk_peri to hang the system.

In the past the clocks for the gpio banks were simply enabled once during 
probe, so pclk_peri as parent clock would also stay enabled for eternity. Now 
we enable the gpio clocks only when necessary, which results in that pclk_peri 
might get disabled too when no other component has claimed it - hence its 
addition to critical clocks.

Also, please note that Stephen Boyd is now also clock maintainer.


> 
> Signed-off-by: Romain Perier <romain.perier@gmail.com>
> ---
>  drivers/clk/rockchip/clk-rk3188.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/clk/rockchip/clk-rk3188.c
> b/drivers/clk/rockchip/clk-rk3188.c index f63a642..596be81 100644
> --- a/drivers/clk/rockchip/clk-rk3188.c
> +++ b/drivers/clk/rockchip/clk-rk3188.c
> @@ -717,6 +717,7 @@ static const char *const rk3188_critical_clocks[]
> __initconst = { "aclk_peri",
>  	"hclk_peri",
>  	"pclk_cpu",
> +	"pclk_peri",
>  };
> 
>  static void __init rk3188_common_clk_init(struct device_node *np)
Michael Niewöhner Aug. 22, 2015, 3:05 p.m. UTC | #2
Am 21.08.2015 um 20:10 schrieb Romain Perier <romain.perier@gmail.com>:

> Clocks for bank GPIO3 and GPIO4 are supplied by pclk_peri. These clocks need to
> stay on, otherwise pinctrl hangs the system when the driver is probed.
> 
> Signed-off-by: Romain Perier <romain.perier@gmail.com>
Tested-by: Michael Niewoehner <linux@mniewoehner.de>
> ---
> drivers/clk/rockchip/clk-rk3188.c | 1 +
> 1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/clk/rockchip/clk-rk3188.c b/drivers/clk/rockchip/clk-rk3188.c
> index f63a642..596be81 100644
> --- a/drivers/clk/rockchip/clk-rk3188.c
> +++ b/drivers/clk/rockchip/clk-rk3188.c
> @@ -717,6 +717,7 @@ static const char *const rk3188_critical_clocks[] __initconst = {
> 	"aclk_peri",
> 	"hclk_peri",
> 	"pclk_cpu",
> +	"pclk_peri",
> };
> 
> static void __init rk3188_common_clk_init(struct device_node *np)
> -- 
> 2.1.4
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

Patch
diff mbox

diff --git a/drivers/clk/rockchip/clk-rk3188.c b/drivers/clk/rockchip/clk-rk3188.c
index f63a642..596be81 100644
--- a/drivers/clk/rockchip/clk-rk3188.c
+++ b/drivers/clk/rockchip/clk-rk3188.c
@@ -717,6 +717,7 @@  static const char *const rk3188_critical_clocks[] __initconst = {
 	"aclk_peri",
 	"hclk_peri",
 	"pclk_cpu",
+	"pclk_peri",
 };
 
 static void __init rk3188_common_clk_init(struct device_node *np)