ARM: OMAP2+: OPP: allow OPP enumeration to continue if device is not present
authorNishanth Menon <nm@ti.com>
Fri, 16 Mar 2012 16:19:09 +0000 (11:19 -0500)
committerKevin Hilman <khilman@ti.com>
Thu, 22 Mar 2012 23:11:17 +0000 (16:11 -0700)
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>
Signed-off-by: Kevin Hilman <khilman@ti.com>
arch/arm/mach-omap2/opp.c

index 9262a6b47702582d30a2a75d21cb3637c2252a24..de6d46451746eaa19f2ba2a28c6385531acddce3 100644 (file)
@@ -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;