All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ARM: imx: correct usecount of IPG, ARM and MMDC clk on i.mx6sl
@ 2014-01-20 10:44 Anson Huang
  2014-01-21 10:05 ` Lucas Stach
  0 siblings, 1 reply; 3+ messages in thread
From: Anson Huang @ 2014-01-20 10:44 UTC (permalink / raw)
  To: linux-arm-kernel

IPG, ARM and MMDC's clock should be enabled during kernel boot up,
so we need to maintain their use count, otherwise, they may be
disabled unexpectedly if their children's clock are turned off,
which is not allowed.

Signed-off-by: Anson Huang <b20788@freescale.com>
---
 arch/arm/mach-imx/clk-imx6sl.c |   15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/arch/arm/mach-imx/clk-imx6sl.c b/arch/arm/mach-imx/clk-imx6sl.c
index 78f3bd6..8d720f9 100644
--- a/arch/arm/mach-imx/clk-imx6sl.c
+++ b/arch/arm/mach-imx/clk-imx6sl.c
@@ -291,6 +291,21 @@ static void __init imx6sl_clocks_init(struct device_node *ccm_node)
 		pr_warn("%s: failed to set AHB clock rate %d!\n",
 			__func__, ret);
 
+	/* Correct usecount of IPG clk */
+	ret = clk_prepare_enable(clks[IMX6SL_CLK_IPG]);
+	if (ret)
+		pr_warn("%s: failed to enable IPG clock %d\n", __func__, ret);
+
+	/* Correct usecount of ARM clk */
+	ret = clk_prepare_enable(clks[IMX6SL_CLK_ARM]);
+	if (ret)
+		pr_warn("%s: failed to enable ARM clock %d\n", __func__, ret);
+
+	/* Correct usecount of MMDC clk */
+	ret = clk_prepare_enable(clks[IMX6SL_CLK_MMDC_ROOT]);
+	if (ret)
+		pr_warn("%s: failed to enable MMDC clock %d\n", __func__, ret);
+
 	if (IS_ENABLED(CONFIG_USB_MXS_PHY)) {
 		clk_prepare_enable(clks[IMX6SL_CLK_USBPHY1_GATE]);
 		clk_prepare_enable(clks[IMX6SL_CLK_USBPHY2_GATE]);
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH] ARM: imx: correct usecount of IPG, ARM and MMDC clk on i.mx6sl
  2014-01-20 10:44 [PATCH] ARM: imx: correct usecount of IPG, ARM and MMDC clk on i.mx6sl Anson Huang
@ 2014-01-21 10:05 ` Lucas Stach
  2014-01-21 10:52   ` Anson.Huang at freescale.com
  0 siblings, 1 reply; 3+ messages in thread
From: Lucas Stach @ 2014-01-21 10:05 UTC (permalink / raw)
  To: linux-arm-kernel

Am Montag, den 20.01.2014, 18:44 +0800 schrieb Anson Huang:
> IPG, ARM and MMDC's clock should be enabled during kernel boot up,
> so we need to maintain their use count, otherwise, they may be
> disabled unexpectedly if their children's clock are turned off,
> which is not allowed.
> 
> Signed-off-by: Anson Huang <b20788@freescale.com>
> ---
>  arch/arm/mach-imx/clk-imx6sl.c |   15 +++++++++++++++
>  1 file changed, 15 insertions(+)
> 
> diff --git a/arch/arm/mach-imx/clk-imx6sl.c b/arch/arm/mach-imx/clk-imx6sl.c
> index 78f3bd6..8d720f9 100644
> --- a/arch/arm/mach-imx/clk-imx6sl.c
> +++ b/arch/arm/mach-imx/clk-imx6sl.c
> @@ -291,6 +291,21 @@ static void __init imx6sl_clocks_init(struct device_node *ccm_node)
>  		pr_warn("%s: failed to set AHB clock rate %d!\n",
>  			__func__, ret);
>  
> +	/* Correct usecount of IPG clk */

You don't really correct anything here, so this comment is misleading.
If those are always on clocks, like you suggest in the commit message,
please put this in the comment instead.

Regards,
Lucas

> +	ret = clk_prepare_enable(clks[IMX6SL_CLK_IPG]);
> +	if (ret)
> +		pr_warn("%s: failed to enable IPG clock %d\n", __func__, ret);
> +
> +	/* Correct usecount of ARM clk */
> +	ret = clk_prepare_enable(clks[IMX6SL_CLK_ARM]);
> +	if (ret)
> +		pr_warn("%s: failed to enable ARM clock %d\n", __func__, ret);
> +
> +	/* Correct usecount of MMDC clk */
> +	ret = clk_prepare_enable(clks[IMX6SL_CLK_MMDC_ROOT]);
> +	if (ret)
> +		pr_warn("%s: failed to enable MMDC clock %d\n", __func__, ret);
> +
>  	if (IS_ENABLED(CONFIG_USB_MXS_PHY)) {
>  		clk_prepare_enable(clks[IMX6SL_CLK_USBPHY1_GATE]);
>  		clk_prepare_enable(clks[IMX6SL_CLK_USBPHY2_GATE]);

-- 
Pengutronix e.K.                           | Lucas Stach                 |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-5076 |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH] ARM: imx: correct usecount of IPG, ARM and MMDC clk on i.mx6sl
  2014-01-21 10:05 ` Lucas Stach
@ 2014-01-21 10:52   ` Anson.Huang at freescale.com
  0 siblings, 0 replies; 3+ messages in thread
From: Anson.Huang at freescale.com @ 2014-01-21 10:52 UTC (permalink / raw)
  To: linux-arm-kernel

Hi, Lucas
	Thanks for the comment, already improved the comment in V2 patch.

Best Regards.
Anson huang ???
?
Freescale Semiconductor Shanghai
?????????192?A?2?
201203
Tel:021-28937058


>-----Original Message-----
>From: Lucas Stach [mailto:l.stach at pengutronix.de]
>Sent: Tuesday, January 21, 2014 6:05 PM
>To: Huang Yongcai-B20788
>Cc: shawn.guo at linaro.org; kernel at pengutronix.de; linux-arm-
>kernel at lists.infradead.org
>Subject: Re: [PATCH] ARM: imx: correct usecount of IPG, ARM and MMDC clk on
>i.mx6sl
>
>Am Montag, den 20.01.2014, 18:44 +0800 schrieb Anson Huang:
>> IPG, ARM and MMDC's clock should be enabled during kernel boot up, so
>> we need to maintain their use count, otherwise, they may be disabled
>> unexpectedly if their children's clock are turned off, which is not
>> allowed.
>>
>> Signed-off-by: Anson Huang <b20788@freescale.com>
>> ---
>>  arch/arm/mach-imx/clk-imx6sl.c |   15 +++++++++++++++
>>  1 file changed, 15 insertions(+)
>>
>> diff --git a/arch/arm/mach-imx/clk-imx6sl.c
>> b/arch/arm/mach-imx/clk-imx6sl.c index 78f3bd6..8d720f9 100644
>> --- a/arch/arm/mach-imx/clk-imx6sl.c
>> +++ b/arch/arm/mach-imx/clk-imx6sl.c
>> @@ -291,6 +291,21 @@ static void __init imx6sl_clocks_init(struct
>device_node *ccm_node)
>>  		pr_warn("%s: failed to set AHB clock rate %d!\n",
>>  			__func__, ret);
>>
>> +	/* Correct usecount of IPG clk */
>
>You don't really correct anything here, so this comment is misleading.
>If those are always on clocks, like you suggest in the commit message, please
>put this in the comment instead.
>
>Regards,
>Lucas
>
>> +	ret = clk_prepare_enable(clks[IMX6SL_CLK_IPG]);
>> +	if (ret)
>> +		pr_warn("%s: failed to enable IPG clock %d\n", __func__, ret);
>> +
>> +	/* Correct usecount of ARM clk */
>> +	ret = clk_prepare_enable(clks[IMX6SL_CLK_ARM]);
>> +	if (ret)
>> +		pr_warn("%s: failed to enable ARM clock %d\n", __func__, ret);
>> +
>> +	/* Correct usecount of MMDC clk */
>> +	ret = clk_prepare_enable(clks[IMX6SL_CLK_MMDC_ROOT]);
>> +	if (ret)
>> +		pr_warn("%s: failed to enable MMDC clock %d\n", __func__, ret);
>> +
>>  	if (IS_ENABLED(CONFIG_USB_MXS_PHY)) {
>>  		clk_prepare_enable(clks[IMX6SL_CLK_USBPHY1_GATE]);
>>  		clk_prepare_enable(clks[IMX6SL_CLK_USBPHY2_GATE]);
>
>--
>Pengutronix e.K.                           | Lucas Stach                 |
>Industrial Linux Solutions                 | http://www.pengutronix.de/  |
>Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-5076 |
>Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
>
>

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-01-21 10:52 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-01-20 10:44 [PATCH] ARM: imx: correct usecount of IPG, ARM and MMDC clk on i.mx6sl Anson Huang
2014-01-21 10:05 ` Lucas Stach
2014-01-21 10:52   ` Anson.Huang at freescale.com

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.