diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-11 10:21:48 +0900 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-11 10:21:48 +0900 |
commit | da06a8d7bed2f3bfc12979384b2d1247ec4873db (patch) | |
tree | ed60bec05c7d69d94ad048d404321ce759a48868 /arch/arm/mach-omap2/opp.c | |
parent | 49999ab27eab6289a8e4f450e148bdab521361b2 (diff) | |
parent | 6bd5dbda2adeabba69c969886511e501a65b6e3c (diff) |
Merge tag 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC fixes from Olof Johansson:
"A series of fixes (and in some cases, some cleanups):
Via Tony Lindgren:
- A collection of OMAP regression fixes, in particular because
firmware no longer sets up all pin states before starting the
kernel.
- cpufreq fixes for OMAP (Rafael is on vacation and this was
pre-agreed).
- A longer series of misc regression fixes and cleanups, warning
removals, etc for OMAP
From Arnd Bergmann:
- A series of warning fixes for various platforms (defconfig builds)
Misc:
- A couple of tegra fixes, one for i.MX, some vt8500 fixes, etc."
* tag 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (73 commits)
ARM: pxa: armcore: fix PCI PIO warnings
ARM: integrator: use __iomem pointers for MMIO, part 2
ARM: assabet: fix bogus warning in get_assabet_scr (again)
ARM: shmobile: mark shmobile_init_late as __init
ARM: integrator_cp: fix build failure
ARM: OMAP4/AM335x: hwmod: fix disable_module regression in hardreset handling
ARM: OMAP3: fix workaround for EMU clockdomain
arm/omap: Replace board_ref_clock with enum values
ARM: OMAP2+: remove duplicated include from board-omap3stalker.c
arch/arm/plat-omap/omap-pm-noop.c: Remove unecessary semicolon
arch/arm/mach-omap2: Remove unecessary semicolon
arch/arm/mach-omap1/devices.c: Remove unecessary semicolon
ARM/dts: omap5-evm: pinmux configuration for audio
ARM/dts: Add pinctrl driver entries for omap5
ARM/dts: omap4-panda: pinmux configuration for audio
ARM/dts: omap4-sdp: pinmux configuration for audio
ARM/dts: omap5-evm: Disable unused McBSP3
ARM/dts: omap4-sdp: Disable unused McBSP3
ARM/dts: omap4-panda: Disable unused audio IPs
ARM: OMAP: board-omap4panda: Pin mux configuration for audio needs
...
Diffstat (limited to 'arch/arm/mach-omap2/opp.c')
-rw-r--r-- | arch/arm/mach-omap2/opp.c | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/arch/arm/mach-omap2/opp.c b/arch/arm/mach-omap2/opp.c index 45ad7f74f35..58e16aef40b 100644 --- a/arch/arm/mach-omap2/opp.c +++ b/arch/arm/mach-omap2/opp.c @@ -18,6 +18,7 @@ */ #include <linux/module.h> #include <linux/opp.h> +#include <linux/cpu.h> #include <plat/omap_device.h> @@ -62,13 +63,23 @@ int __init omap_init_opp_table(struct omap_opp_def *opp_def, __func__, i); return -EINVAL; } - oh = omap_hwmod_lookup(opp_def->hwmod_name); - if (!oh || !oh->od) { - pr_debug("%s: no hwmod or odev for %s, [%d] cannot add OPPs.\n", - __func__, opp_def->hwmod_name, i); - continue; + + if (!strncmp(opp_def->hwmod_name, "mpu", 3)) { + /* + * All current OMAPs share voltage rail and + * clock source, so CPU0 is used to represent + * the MPU-SS. + */ + dev = get_cpu_device(0); + } else { + oh = omap_hwmod_lookup(opp_def->hwmod_name); + if (!oh || !oh->od) { + pr_debug("%s: no hwmod or odev for %s, [%d] cannot add OPPs.\n", + __func__, opp_def->hwmod_name, i); + continue; + } + dev = &oh->od->pdev->dev; } - dev = &oh->od->pdev->dev; r = opp_add(dev, opp_def->freq, opp_def->u_volt); if (r) { |