mirror of
https://git.yoctoproject.org/meta-ti
synced 2026-04-20 19:53:43 +00:00
Backport Nishants OPP/hwmod fix to get more than 600MHz out of 37xx, but don't activate it yet. 3630ES1.2 derived silicon gets misdetected: xM revision A: [ 0.000000] OMAP3630 ES1.0 (l2cache iva sgx neon isp 192mhz_clk ) new xM revision C: [ 0.000000] OMAP3630 ES1.2 (l2cache neon isp 192mhz_clk ) Since the iva hwmod is missing the OPP tables will fail and clock it back to 600MHz. But with the patch the kernel hangs in early init. This problem isn't specific to this kernel update, it just coincided with ES1.2 silicon arriving on my desk. Signed-off-by: Koen Kooi <koen@dominion.thruhere.net> Signed-off-by: Denys Dmytriyenko <denys@ti.com>
44 lines
1.5 KiB
Diff
44 lines
1.5 KiB
Diff
From c15f217f7d07c460763a092f31f61b1975a18563 Mon Sep 17 00:00:00 2001
|
|
From: Nishanth Menon <nm@ti.com>
|
|
Date: Fri, 16 Mar 2012 11:19:09 -0500
|
|
Subject: [PATCH 2/2] OMAP2+: OPP: allow OPP enumeration to continue if device is not present
|
|
|
|
On platforms such as OMAP3, certain variants may not have IVA, SGX
|
|
or some specific component. We currently have a check to aid fixing
|
|
wrong population of OPP entries for issues such as typos. This however
|
|
causes a conflict with valid requirement where the SoC variant does
|
|
not actually have the module present.
|
|
|
|
So, reduce the severity of the print to a debug statement and skip
|
|
registering that specific OPP, but continue down the list.
|
|
|
|
Reported-by: Steve Sakoman <steve@sakoman.com>
|
|
Reported-by: Maximilian Schwerin <mvs@tigris.de>
|
|
Acked-by: Steve Sakoman <steve@sakoman.com>
|
|
Tested-by: Maximilian Schwerin <mvs@tigris.de>
|
|
Signed-off-by: Nishanth Menon <nm@ti.com>
|
|
---
|
|
arch/arm/mach-omap2/opp.c | 4 ++--
|
|
1 files changed, 2 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/arch/arm/mach-omap2/opp.c b/arch/arm/mach-omap2/opp.c
|
|
index ab8b35b..f111b82 100644
|
|
--- a/arch/arm/mach-omap2/opp.c
|
|
+++ b/arch/arm/mach-omap2/opp.c
|
|
@@ -64,10 +64,10 @@ int __init omap_init_opp_table(struct omap_opp_def *opp_def,
|
|
}
|
|
oh = omap_hwmod_lookup(opp_def->hwmod_name);
|
|
if (!oh || !oh->od) {
|
|
- pr_warn("%s: no hwmod or odev for %s, [%d] "
|
|
+ pr_debug("%s: no hwmod or odev for %s, [%d] "
|
|
"cannot add OPPs.\n", __func__,
|
|
opp_def->hwmod_name, i);
|
|
- return -EINVAL;
|
|
+ continue;
|
|
}
|
|
dev = &oh->od->pdev.dev;
|
|
|
|
--
|
|
1.7.2.5
|
|
|