ARM: OMAP2+: Remove suspend_set_ops from common pm late init
In omap2_common_pm_late_init suspend_set_ops was called to set common suspend handling functions for all omap platforms. This created two problems. First, these suspend ops were being set for all platforms, regardless of whether or not suspend support has been integrated so in the case of AM33XX, suspend to mem was presented as available but failed every time. Second, some platforms will need to define a completely separate set of suspend ops, such as AM33XX, due to differences from previous omap platforms so there is no need to always set the common omap ops. This patch moves the suspend_set_ops call from omap2_common_pm_late_init into a separate function that then gets called in the omap*_pm_init functions for each platform. Signed-off-by: Dave Gerlach <d-gerlach@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
This commit is contained in:

committed by
Tony Lindgren

parent
059d95c46c
commit
2e4b62dc5e
@@ -32,11 +32,13 @@
|
||||
#include "pm.h"
|
||||
#include "twl-common.h"
|
||||
|
||||
#ifdef CONFIG_SUSPEND
|
||||
/*
|
||||
* omap_pm_suspend: points to a function that does the SoC-specific
|
||||
* suspend work
|
||||
*/
|
||||
int (*omap_pm_suspend)(void);
|
||||
static int (*omap_pm_suspend)(void);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
/**
|
||||
@@ -243,6 +245,15 @@ static const struct platform_suspend_ops omap_pm_ops = {
|
||||
.valid = suspend_valid_only_mem,
|
||||
};
|
||||
|
||||
/**
|
||||
* omap_common_suspend_init - Set common suspend routines for OMAP SoCs
|
||||
* @pm_suspend: function pointer to SoC specific suspend function
|
||||
*/
|
||||
void omap_common_suspend_init(void *pm_suspend)
|
||||
{
|
||||
omap_pm_suspend = pm_suspend;
|
||||
suspend_set_ops(&omap_pm_ops);
|
||||
}
|
||||
#endif /* CONFIG_SUSPEND */
|
||||
|
||||
static void __init omap3_init_voltages(void)
|
||||
@@ -310,9 +321,5 @@ int __init omap2_common_pm_late_init(void)
|
||||
/* cpufreq dummy device instantiation */
|
||||
omap_init_cpufreq();
|
||||
|
||||
#ifdef CONFIG_SUSPEND
|
||||
suspend_set_ops(&omap_pm_ops);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user