[PATCHv3 5/7] ARM: OMAP4: clock data: add clockdomains for clocks used as main clocks
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
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
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
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