ARM: OMAP3: Beagle: fix OPP customization and initcall ordering
authorKevin Hilman <khilman@ti.com>
Mon, 22 Oct 2012 18:08:27 +0000 (11:08 -0700)
committerKevin Hilman <khilman@ti.com>
Mon, 22 Oct 2012 23:01:42 +0000 (16:01 -0700)
commit65bf7ca0005d7d827596d5df28583c83c9158da6
tree5ee6aa3df3055e1f4cc3cdf4e7182b1b1232e5d6
parent44b1d42a60f9daeb0070f7766d11711d1be06a8b
ARM: OMAP3: Beagle: fix OPP customization and initcall ordering

After commit 24d7b40a60cf19008334bcbcbd98da374d4d9c64 (ARM: OMAP2+:
PM: MPU DVFS: use generic CPU device for MPU-SS), OPPs are registered
using an existing CPU device, not the omap_device for MPU-SS.

First, fix the board file to use get_cpu_device() as required by the
above commit, otherwise custom OPPs will be added to the wrong device.

Second, the board files OPP init is called from the its init_machine
method, and the generic CPU devices are not yet created when
init_machine is run.  Therefore OPP initialization will fail.  To fix,
use a device_initcall() for the board file's OPP customization, and
make the device_initcall board-specific by using a machine_is check.

Reported-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
arch/arm/mach-omap2/board-omap3beagle.c