Changes in v2:
Fixed the handling of freq_table_users in Patch 1/2 as
suggested by Santosh. Patch 2/2 is unchanged.
Hi Kevin,
While testing cpufreq on 3.6-rc1, I noticed strange issues on OMAP4,
like a lockup when booting with 'performace' governer as default,
and crashes when using 'usespace' (which booted up) and switching
to higher OPPs.
It took me a while to realise I was using a 4460 device. The OPPs
registered though seemed to be for 4430 and hence were causing
issues on the 4460 device.
This series basically avoids registering the 4430 OPPs on other
varients like 4460 and 4470 (and hence causing random issues)
and also fixes a subsequent bug uncovered by doing this in
OMAP cpufreq driver.
regards,
Rajendra
Rajendra Nayak (2):
cpufreq: OMAP: Handle missing frequency table on SMP systems
ARM: OMAP4: Register the OPP table only for 4430 device
arch/arm/mach-omap2/opp4xxx_data.c | 2 +-
drivers/cpufreq/omap-cpufreq.c | 4 +++-
2 files changed, 4 insertions(+), 2 deletions(-)
--
1.7.9.5
On OMAP4, if the first CPU fails to get a valid frequency table (this
could happen if the platform does not register any OPP table), the
subsequent CPU instances end up dealing with a NULL freq_table and
crash.
Check for an already existing freq_table, before trying to create one,
and increment the freq_table_users only if the table is sucessfully
created.
Signed-off-by: Rajendra Nayak <redacted>
Signed-off-by: Santosh Shilimkar <redacted>
Cc: <redacted>
---
drivers/cpufreq/omap-cpufreq.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
The 4430 OPP table was being registered for all other OMAP4 variants
too, like 4460 and 4470 causing issues with cpufreq driver
enabled. 4460 and 4470 devices have different OPPs as compared to
4430, and they should be populated seperately. As long as that
happens, let the OPP table registeration happen only on 4430 device.
Signed-off-by: Rajendra Nayak <redacted>
---
arch/arm/mach-omap2/opp4xxx_data.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
On Thu, Aug 9, 2012 at 12:38 PM, Rajendra Nayak [off-list ref] wrote:
The 4430 OPP table was being registered for all other OMAP4 variants
too, like 4460 and 4470 causing issues with cpufreq driver
enabled. 4460 and 4470 devices have different OPPs as compared to
4430, and they should be populated seperately. As long as that
happens, let the OPP table registeration happen only on 4430 device.
Signed-off-by: Rajendra Nayak <redacted>
---
From: Rafael J. Wysocki <hidden> Date: 2012-08-09 09:32:14
On Thursday, August 09, 2012, Rajendra Nayak wrote:
On OMAP4, if the first CPU fails to get a valid frequency table (this
could happen if the platform does not register any OPP table), the
subsequent CPU instances end up dealing with a NULL freq_table and
crash.
Check for an already existing freq_table, before trying to create one,
and increment the freq_table_users only if the table is sucessfully
created.
Signed-off-by: Rajendra Nayak <redacted>
Signed-off-by: Santosh Shilimkar <redacted>
Cc: <redacted>