diff --git a/sys/compat/linuxkpi/common/include/linux/pm.h b/sys/compat/linuxkpi/common/include/linux/pm.h --- a/sys/compat/linuxkpi/common/include/linux/pm.h +++ b/sys/compat/linuxkpi/common/include/linux/pm.h @@ -53,20 +53,27 @@ #define PM_EVENT_FREEZE 0x0001 #define PM_EVENT_SUSPEND 0x0002 -#ifdef CONFIG_PM_SLEEP +#define pm_sleep_ptr(_p) \ + ((IS_ENABLED(CONFIG_PM_SLEEP)) ? (_p) : NULL) + #define SIMPLE_DEV_PM_OPS(_name, _suspendfunc, _resumefunc) \ const struct dev_pm_ops _name = { \ - .suspend = _suspendfunc, \ - .resume = _resumefunc, \ - .freeze = _suspendfunc, \ - .thaw = _resumefunc, \ - .poweroff = _suspendfunc, \ - .restore = _resumefunc, \ + .suspend = pm_sleep_ptr(_suspendfunc), \ + .resume = pm_sleep_ptr(_resumefunc), \ + .freeze = pm_sleep_ptr(_suspendfunc), \ + .thaw = pm_sleep_ptr(_resumefunc), \ + .poweroff = pm_sleep_ptr(_suspendfunc), \ + .restore = pm_sleep_ptr(_resumefunc), \ } -#else -#define SIMPLE_DEV_PM_OPS(_name, _suspendfunc, _resumefunc) \ + +#define DEFINE_SIMPLE_DEV_PM_OPS(_name, _suspendfunc, _resumefunc) \ const struct dev_pm_ops _name = { \ + .suspend = pm_sleep_ptr(_suspendfunc), \ + .resume = pm_sleep_ptr(_resumefunc), \ + .freeze = pm_sleep_ptr(_suspendfunc), \ + .thaw = pm_sleep_ptr(_resumefunc), \ + .poweroff = pm_sleep_ptr(_suspendfunc), \ + .restore = pm_sleep_ptr(_resumefunc), \ } -#endif #endif /* _LINUXKPI_LINUX_PM_H */