aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/base/platform.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/base/platform.c')
-rw-r--r--drivers/base/platform.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/drivers/base/platform.c b/drivers/base/platform.c
index 579906f88b09..a01abf9ebf7b 100644
--- a/drivers/base/platform.c
+++ b/drivers/base/platform.c
@@ -976,6 +976,41 @@ struct bus_type platform_bus_type = {
976}; 976};
977EXPORT_SYMBOL_GPL(platform_bus_type); 977EXPORT_SYMBOL_GPL(platform_bus_type);
978 978
979/**
980 * platform_bus_get_pm_ops() - return pointer to busses dev_pm_ops
981 *
982 * This function can be used by platform code to get the current
983 * set of dev_pm_ops functions used by the platform_bus_type.
984 */
985const struct dev_pm_ops * __init platform_bus_get_pm_ops(void)
986{
987 return platform_bus_type.pm;
988}
989
990/**
991 * platform_bus_set_pm_ops() - update dev_pm_ops for the platform_bus_type
992 *
993 * @pm: pointer to new dev_pm_ops struct to be used for platform_bus_type
994 *
995 * Platform code can override the dev_pm_ops methods of
996 * platform_bus_type by using this function. It is expected that
997 * platform code will first do a platform_bus_get_pm_ops(), then
998 * kmemdup it, then customize selected methods and pass a pointer to
999 * the new struct dev_pm_ops to this function.
1000 *
1001 * Since platform-specific code is customizing methods for *all*
1002 * devices (not just platform-specific devices) it is expected that
1003 * any custom overrides of these functions will keep existing behavior
1004 * and simply extend it. For example, any customization of the
1005 * runtime PM methods should continue to call the pm_generic_*
1006 * functions as the default ones do in addition to the
1007 * platform-specific behavior.
1008 */
1009void __init platform_bus_set_pm_ops(const struct dev_pm_ops *pm)
1010{
1011 platform_bus_type.pm = pm;
1012}
1013
979int __init platform_bus_init(void) 1014int __init platform_bus_init(void)
980{ 1015{
981 int error; 1016 int error;