diff mbox

ARM: OMAP2: Fix missing omap2xxx_clkt_vps_xxx function calls

Message ID 1357851209-5332-1-git-send-email-jon-hunter@ti.com (mailing list archive)
State New, archived
Headers show

Commit Message

Hunter, Jon Jan. 10, 2013, 8:53 p.m. UTC
During the migration to the common clock framework, calls to the
functions omap2xxx_clkt_vps_late_init() and
omap2xxx_clkt_vps_check_bootloader_rates() were not preserved for
OMAP2420 and OMAP2430. This causes the variables "sys_ck_rate" and
"curr_prcm_set" to be uninitialised on boot. On reboot, this causes the
following error message to be displayed because the appropriate MPU
clock frequency (derived from sys_ck_rate) cannot be found.

"Could not set MPU rate to 4294MHz"

Fix this by adding back calls to omap2xxx_clkt_vps_late_init() and
omap2xxx_clkt_vps_check_bootloader_rates() in the OMAP2420 and OMAP2430
clock initialisation code.

Signed-off-by: Jon Hunter <jon-hunter@ti.com>
---

Tested on OMAP2420 H4 board only.

 arch/arm/mach-omap2/cclock2420_data.c |    5 +++++
 arch/arm/mach-omap2/cclock2430_data.c |    5 +++++
 2 files changed, 10 insertions(+)

Comments

Paul Walmsley Jan. 17, 2013, 6:51 p.m. UTC | #1
Hi Jon

On Thu, 10 Jan 2013, Jon Hunter wrote:

> During the migration to the common clock framework, calls to the
> functions omap2xxx_clkt_vps_late_init() and
> omap2xxx_clkt_vps_check_bootloader_rates() were not preserved for
> OMAP2420 and OMAP2430. This causes the variables "sys_ck_rate" and
> "curr_prcm_set" to be uninitialised on boot. On reboot, this causes the
> following error message to be displayed because the appropriate MPU
> clock frequency (derived from sys_ck_rate) cannot be found.
> 
> "Could not set MPU rate to 4294MHz"

I don't see this message on 2430sdp or n800 with v3.8-rc3, but maybe 
that's due to sys_clk differences.  Do you still see this on v3.8-rc3 
with H4?

Also, there's already a call to omap2xxx_clkt_vps_check_bootloader_rates() 
-- is it necessary to add another one?

	
- Paul
Hunter, Jon Jan. 17, 2013, 7:27 p.m. UTC | #2
Hi Paul,

On 01/17/2013 12:51 PM, Paul Walmsley wrote:
> Hi Jon
> 
> On Thu, 10 Jan 2013, Jon Hunter wrote:
> 
>> During the migration to the common clock framework, calls to the
>> functions omap2xxx_clkt_vps_late_init() and
>> omap2xxx_clkt_vps_check_bootloader_rates() were not preserved for
>> OMAP2420 and OMAP2430. This causes the variables "sys_ck_rate" and
>> "curr_prcm_set" to be uninitialised on boot. On reboot, this causes the
>> following error message to be displayed because the appropriate MPU
>> clock frequency (derived from sys_ck_rate) cannot be found.
>>
>> "Could not set MPU rate to 4294MHz"
> 
> I don't see this message on 2430sdp or n800 with v3.8-rc3, but maybe 
> that's due to sys_clk differences.  Do you still see this on v3.8-rc3 
> with H4?

Yes I still see it. You don't see it on reboot?

The reason why there is such a large number is because
omap2_round_to_table_rate() is returning the value -EINVAL. You could
add a print to omap2_round_to_table_rate() to see what it returns on
reboot. Or we could add a WARN to the function is sys_ck_rate is 0 for
testing.

> Also, there's already a call to omap2xxx_clkt_vps_check_bootloader_rates() 
> -- is it necessary to add another one?

Thanks. I see that now and so that is not needed then.

Cheers
Jon
Paul Walmsley Jan. 17, 2013, 10:31 p.m. UTC | #3
Hi Jon,

On Thu, 17 Jan 2013, Jon Hunter wrote:

> Yes I still see it. You don't see it on reboot?

Ah that's probably explains the discrepancy - I missed the part about the 
reboot.

> The reason why there is such a large number is because
> omap2_round_to_table_rate() is returning the value -EINVAL. You could
> add a print to omap2_round_to_table_rate() to see what it returns on
> reboot. Or we could add a WARN to the function is sys_ck_rate is 0 for
> testing.
> 
> > Also, there's already a call to omap2xxx_clkt_vps_check_bootloader_rates() 
> > -- is it necessary to add another one?
> 
> Thanks. I see that now and so that is not needed then.

OK, I'll queue your patch for 3.8-rc fixes, dropping the 
omap2xxx_clkt_vps_check_bootloader_rates() calls.


- Paul
diff mbox

Patch

diff --git a/arch/arm/mach-omap2/cclock2420_data.c b/arch/arm/mach-omap2/cclock2420_data.c
index 7e5febe..0dadfb9 100644
--- a/arch/arm/mach-omap2/cclock2420_data.c
+++ b/arch/arm/mach-omap2/cclock2420_data.c
@@ -1935,8 +1935,13 @@  int __init omap2420_clk_init(void)
 			omap2_init_clk_hw_omap_clocks(c->lk.clk);
 	}
 
+	omap2xxx_clkt_vps_late_init();
+
 	omap2_clk_disable_autoidle_all();
 
+	/* XXX Can this be done from the virt_prcm_set clk init function? */
+	omap2xxx_clkt_vps_check_bootloader_rates();
+
 	omap2_clk_enable_init_clocks(enable_init_clks,
 				     ARRAY_SIZE(enable_init_clks));
 
diff --git a/arch/arm/mach-omap2/cclock2430_data.c b/arch/arm/mach-omap2/cclock2430_data.c
index eda079b..722ff84 100644
--- a/arch/arm/mach-omap2/cclock2430_data.c
+++ b/arch/arm/mach-omap2/cclock2430_data.c
@@ -2050,8 +2050,13 @@  int __init omap2430_clk_init(void)
 			omap2_init_clk_hw_omap_clocks(c->lk.clk);
 	}
 
+	omap2xxx_clkt_vps_late_init();
+
 	omap2_clk_disable_autoidle_all();
 
+	/* XXX Can this be done from the virt_prcm_set clk init function? */
+	omap2xxx_clkt_vps_check_bootloader_rates();
+
 	omap2_clk_enable_init_clocks(enable_init_clks,
 				     ARRAY_SIZE(enable_init_clks));