[PATCHv3 5/7] ARM: OMAP4: clock data: add clockdomains for clocks used as main clocks

2012-06-18 Thread Paul Walmsley
Until the OMAP4 code is converted to disable the use of the clock
framework-based clockdomain enable/disable sequence, any clock used as
a hwmod main_clk must have a clockdomain associated with it.  This
patch populates some clock structure clockdomain names to resolve the
following warnings during kernel init:

omap_hwmod: dpll_mpu_m2_ck: missing clockdomain for dpll_mpu_m2_ck.
omap_hwmod: trace_clk_div_ck: missing clockdomain for trace_clk_div_ck.
omap_hwmod: l3_div_ck: missing clockdomain for l3_div_ck.
omap_hwmod: ddrphy_ck: missing clockdomain for ddrphy_ck.

Signed-off-by: Paul Walmsley p...@pwsan.com
Cc: Rajendra Nayak rna...@ti.com
Cc: Benoît Cousson b-cous...@ti.com
---
 arch/arm/mach-omap2/clock44xx_data.c |5 +
 1 file changed, 5 insertions(+)

diff --git a/arch/arm/mach-omap2/clock44xx_data.c 
b/arch/arm/mach-omap2/clock44xx_data.c
index 2172f66..e2b701e 100644
--- a/arch/arm/mach-omap2/clock44xx_data.c
+++ b/arch/arm/mach-omap2/clock44xx_data.c
@@ -84,6 +84,7 @@ static struct clk slimbus_clk = {
 
 static struct clk sys_32k_ck = {
.name   = sys_32k_ck,
+   .clkdm_name = prm_clkdm,
.rate   = 32768,
.ops= clkops_null,
 };
@@ -512,6 +513,7 @@ static struct clk ddrphy_ck = {
.name   = ddrphy_ck,
.parent = dpll_core_m2_ck,
.ops= clkops_null,
+   .clkdm_name = l3_emif_clkdm,
.fixed_div  = 2,
.recalc = omap_fixed_divisor_recalc,
 };
@@ -769,6 +771,7 @@ static const struct clksel dpll_mpu_m2_div[] = {
 static struct clk dpll_mpu_m2_ck = {
.name   = dpll_mpu_m2_ck,
.parent = dpll_mpu_ck,
+   .clkdm_name = cm_clkdm,
.clksel = dpll_mpu_m2_div,
.clksel_reg = OMAP4430_CM_DIV_M2_DPLL_MPU,
.clksel_mask= OMAP4430_DPLL_CLKOUT_DIV_MASK,
@@ -1149,6 +1152,7 @@ static const struct clksel l3_div_div[] = {
 static struct clk l3_div_ck = {
.name   = l3_div_ck,
.parent = div_core_ck,
+   .clkdm_name = cm_clkdm,
.clksel = l3_div_div,
.clksel_reg = OMAP4430_CM_CLKSEL_CORE,
.clksel_mask= OMAP4430_CLKSEL_L3_MASK,
@@ -2824,6 +2828,7 @@ static const struct clksel trace_clk_div_div[] = {
 static struct clk trace_clk_div_ck = {
.name   = trace_clk_div_ck,
.parent = pmd_trace_clk_mux_ck,
+   .clkdm_name = emu_sys_clkdm,
.clksel = trace_clk_div_div,
.clksel_reg = OMAP4430_CM_EMU_DEBUGSS_CLKCTRL,
.clksel_mask= OMAP4430_CLKSEL_PMD_TRACE_CLK_MASK,


--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCHv3 5/7] ARM: OMAP4: clock data: add clockdomains for clocks used as main clocks

2012-06-18 Thread Cousson, Benoit
Hi Paul,

On 6/18/2012 8:16 AM, Paul Walmsley wrote:
 Until the OMAP4 code is converted to disable the use of the clock
 framework-based clockdomain enable/disable sequence, any clock used as
 a hwmod main_clk must have a clockdomain associated with it.  This
 patch populates some clock structure clockdomain names to resolve the
 following warnings during kernel init:
 
 omap_hwmod: dpll_mpu_m2_ck: missing clockdomain for dpll_mpu_m2_ck.
 omap_hwmod: trace_clk_div_ck: missing clockdomain for trace_clk_div_ck.
 omap_hwmod: l3_div_ck: missing clockdomain for l3_div_ck.
 omap_hwmod: ddrphy_ck: missing clockdomain for ddrphy_ck.
 
 Signed-off-by: Paul Walmsley p...@pwsan.com
 Cc: Rajendra Nayak rna...@ti.com
 Cc: Benoît Cousson b-cous...@ti.com
 ---
   arch/arm/mach-omap2/clock44xx_data.c |5 +
   1 file changed, 5 insertions(+)
 
 diff --git a/arch/arm/mach-omap2/clock44xx_data.c 
 b/arch/arm/mach-omap2/clock44xx_data.c
 index 2172f66..e2b701e 100644
 --- a/arch/arm/mach-omap2/clock44xx_data.c
 +++ b/arch/arm/mach-omap2/clock44xx_data.c
 @@ -84,6 +84,7 @@ static struct clk slimbus_clk = {
   
   static struct clk sys_32k_ck = {
   .name   = sys_32k_ck,
 + .clkdm_name = prm_clkdm,

I guess that patch need to be revisited based on discussion we had and the 
patch you proposed in [1].
Assuming Tony is OK, it should be probably part of the -rc, because this domain 
should not have been introduced in 3.5-rc1 at all for OMAP4.
So it will be better to revert the patch that introduced that first before 
adding any new fix that will rely on a code that will disappear.


In fact, I think the proper way to fix that while maintaining the OMAP23 way 
of dealing with clkdm is to ensure that at least one clkdm is there in either 
hwmod or the main_clk.
That will fix these issues and the one that will append when the fake main_clk 
will be removed.

Here is a patch that is doing that.


Thanks,
Benoit

[1] http://www.mail-archive.com/linux-omap@vger.kernel.org/msg70177.html


--- 
From e5ffe6533236125c3c0b5eff883bfc1cf3cbe9f4 Mon Sep 17 00:00:00 2001
From: Benoit Cousson b-cous...@ti.com
Date: Fri, 15 Jun 2012 11:26:49 +0200
Subject: [PATCH] ARM: OMAP2+: hwmod: Do not check clkdm for main_clk if oh does 
have one

When a clkdm is handled directly at the hwmod level, there is no need to handle
it with the main_clk as well. It is thus useless to complain about the missing 
clkdm for the main_clk in that case.

Warn only if the clkdm is missing in both main_clk and hwmod.

Init hwmod clkdm first to ensure it will be there when the main_clk
will be initialized.

Signed-off-by: Benoit Cousson b-cous...@ti.com
Cc: Paul Walmsley p...@pwsan.com
---
 arch/arm/mach-omap2/omap_hwmod.c |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
index 162f9c7..f33f4e2 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -609,7 +609,7 @@ static int _init_main_clk(struct omap_hwmod *oh)
return -EINVAL;
}
 
-   if (!oh-_clk-clkdm)
+   if (!oh-_clk-clkdm  !oh-clkdm)
pr_warning(omap_hwmod: %s: missing clockdomain for %s.\n,
   oh-main_clk, oh-_clk-name);
 
@@ -1339,10 +1339,10 @@ static int _init_clocks(struct omap_hwmod *oh, void 
*data)
 
pr_debug(omap_hwmod: %s: looking up clocks\n, oh-name);
 
+   ret |= _init_clkdm(oh);
ret |= _init_main_clk(oh);
ret |= _init_interface_clks(oh);
ret |= _init_opt_clks(oh);
-   ret |= _init_clkdm(oh);
 
if (!ret)
oh-_state = _HWMOD_STATE_CLKS_INITED;
-- 
1.7.0.4



--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCHv3 5/7] ARM: OMAP4: clock data: add clockdomains for clocks used as main clocks

2012-06-18 Thread Paul Walmsley
Hi

On Mon, 18 Jun 2012, Cousson, Benoit wrote:

 I guess that patch need to be revisited based on discussion we had and 
 the patch you proposed in [1]. Assuming Tony is OK, it should be 
 probably part of the -rc, because this domain should not have been 
 introduced in 3.5-rc1 at all for OMAP4.

Well as mentioned already on the lists, these clockdomains clearly exist; 
they are documented in the TRM and functional specification, and make 
sense from a chip perspective.

For 3.6, I've already agreed to remove those clockdomains, even though it 
doesn't really match what's there on the chip.  But I think 3.6 is the 
right time to do that.

 So it will be better to revert the patch that introduced that first 
 before adding any new fix that will rely on a code that will disappear.

 In fact, I think the proper way to fix that while maintaining the 
 OMAP23 way of dealing with clkdm is to ensure that at least one clkdm 
 is there in either hwmod or the main_clk. That will fix these issues and 
 the one that will append when the fake main_clk will be removed.
 
 Here is a patch that is doing that.

Please document what systems this has been tested on.

 Thanks,
 Benoit
 
 [1] http://www.mail-archive.com/linux-omap@vger.kernel.org/msg70177.html
 
 
 --- 
 From e5ffe6533236125c3c0b5eff883bfc1cf3cbe9f4 Mon Sep 17 00:00:00 2001
 From: Benoit Cousson b-cous...@ti.com
 Date: Fri, 15 Jun 2012 11:26:49 +0200
 Subject: [PATCH] ARM: OMAP2+: hwmod: Do not check clkdm for main_clk if oh 
 does have one
 
 When a clkdm is handled directly at the hwmod level, there is no need to 
 handle
 it with the main_clk as well. It is thus useless to complain about the 
 missing clkdm for the main_clk in that case.
 
 Warn only if the clkdm is missing in both main_clk and hwmod.
 
 Init hwmod clkdm first to ensure it will be there when the main_clk
 will be initialized.
 
 Signed-off-by: Benoit Cousson b-cous...@ti.com
 Cc: Paul Walmsley p...@pwsan.com
 ---
  arch/arm/mach-omap2/omap_hwmod.c |4 ++--
  1 files changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/arch/arm/mach-omap2/omap_hwmod.c 
 b/arch/arm/mach-omap2/omap_hwmod.c
 index 162f9c7..f33f4e2 100644
 --- a/arch/arm/mach-omap2/omap_hwmod.c
 +++ b/arch/arm/mach-omap2/omap_hwmod.c
 @@ -609,7 +609,7 @@ static int _init_main_clk(struct omap_hwmod *oh)
   return -EINVAL;
   }
  
 - if (!oh-_clk-clkdm)
 + if (!oh-_clk-clkdm  !oh-clkdm)
   pr_warning(omap_hwmod: %s: missing clockdomain for %s.\n,
  oh-main_clk, oh-_clk-name);
  
 @@ -1339,10 +1339,10 @@ static int _init_clocks(struct omap_hwmod *oh, void 
 *data)
  
   pr_debug(omap_hwmod: %s: looking up clocks\n, oh-name);
  
 + ret |= _init_clkdm(oh);
   ret |= _init_main_clk(oh);
   ret |= _init_interface_clks(oh);
   ret |= _init_opt_clks(oh);
 - ret |= _init_clkdm(oh);
  
   if (!ret)
   oh-_state = _HWMOD_STATE_CLKS_INITED;
 -- 
 1.7.0.4
 
 
 


- Paul
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCHv3 5/7] ARM: OMAP4: clock data: add clockdomains for clocks used as main clocks

2012-06-18 Thread Cousson, Benoit

Hi Paul,

On 6/18/2012 5:45 PM, Paul Walmsley wrote:

Hi

On Mon, 18 Jun 2012, Cousson, Benoit wrote:


I guess that patch need to be revisited based on discussion we had and
the patch you proposed in [1]. Assuming Tony is OK, it should be
probably part of the -rc, because this domain should not have been
introduced in 3.5-rc1 at all for OMAP4.


Well as mentioned already on the lists, these clockdomains clearly exist;
they are documented in the TRM and functional specification, and make
sense from a chip perspective.


OK, let's clarify: These are not clock domains for PRCM standpoint. 
These are the clock generators inside the PRCM, but they do not follow 
the functional clock domain mechanism at all.


Because of that they do not have any regular clkdm registers and that's 
why it does not worth using the current clkdm infrastructure since there 
is no SW control for them.


What is missing to make these domains valid is to extend the current 
definition to handle both the clock consumer domains and the clock 
generators.



For 3.6, I've already agreed to remove those clockdomains, even though it
doesn't really match what's there on the chip.  But I think 3.6 is the
right time to do that.


OK, fair enough. I'll base the further cleanup series on that one.


So it will be better to revert the patch that introduced that first
before adding any new fix that will rely on a code that will disappear.

In fact, I think the proper way to fix that while maintaining the
OMAP23 way of dealing with clkdm is to ensure that at least one clkdm
is there in either hwmod or the main_clk. That will fix these issues and
the one that will append when the fake main_clk will be removed.

Here is a patch that is doing that.


Please document what systems this has been tested on.


For the moment, Thunderbird 13.0.1 only since I do not have any board 
accessible :-(.


Regards,
Benoit
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html