OMAP: hwmod: allow omap_hwmod_late_init() caller to skip module idle in _setup()
On kernels that don't use the omap_device_enable() calls to enable devices, leave all on-chip devices enabled in hwmod _setup(). Otherwise, accesses to those devices are likely to fail, crashing the system. It's expected that kernels built without CONFIG_PM_RUNTIME will be the primary use-case for this. This functionality is controlled by adding an extra parameter to omap_hwmod_late_init(). This patch is based on the patch "OMAP: hwmod: don't auto-disable hwmod when !CONFIG_PM_RUNTIME" by Kevin Hilman <khilman@deeprootsystems.com>. Cc: Kevin Hilman <khilman@deeprootsystems.com> Signed-off-by: Paul Walmsley <paul@pwsan.com>
This commit is contained in:
@@ -316,6 +316,8 @@ static int __init _omap2_init_reprogram_sdrc(void)
|
||||
void __init omap2_init_common_hw(struct omap_sdrc_params *sdrc_cs0,
|
||||
struct omap_sdrc_params *sdrc_cs1)
|
||||
{
|
||||
u8 skip_setup_idle = 0;
|
||||
|
||||
pwrdm_init(powerdomains_omap);
|
||||
clkdm_init(clockdomains_omap, clkdm_autodeps);
|
||||
if (cpu_is_omap242x())
|
||||
@@ -340,8 +342,13 @@ void __init omap2_init_common_hw(struct omap_sdrc_params *sdrc_cs0,
|
||||
pr_err("Could not init clock framework - unknown CPU\n");
|
||||
|
||||
omap_serial_early_init();
|
||||
|
||||
#ifndef CONFIG_PM_RUNTIME
|
||||
skip_setup_idle = 1;
|
||||
#endif
|
||||
if (cpu_is_omap24xx() || cpu_is_omap34xx()) /* FIXME: OMAP4 */
|
||||
omap_hwmod_late_init();
|
||||
omap_hwmod_late_init(skip_setup_idle);
|
||||
|
||||
omap_pm_if_init();
|
||||
if (cpu_is_omap24xx() || cpu_is_omap34xx()) {
|
||||
omap2_sdrc_init(sdrc_cs0, sdrc_cs1);
|
||||
|
Reference in New Issue
Block a user