On 08/09/2016 10:50 PM, Lee Jones wrote:
On Tue, 09 Aug 2016, Sylwester Nawrocki wrote:
On 08/09/2016 05:05 PM, Lee Jones wrote:
> +static SIMPLE_DEV_PM_OPS(lpass_pm_ops, exynos_lpass_suspend, >> > + exynos_lpass_resume);
Put this up by the PM functions.
Sorry, I don't understand this comment, which PM functions do you mean exactly?
*_suspend and *_resume. PM == Power Management.
You also need to place the functions in side some CONFIG_PM_SLEEP guards. Grep around, you'll see what I mean.
OK, but couldn't we just leave it with that SIMPLE_DEV_PM_OPS() macro? It saves us an #ifdef ugliness and if I actually grep drivers/mfd most of the drivers use either SIMPLE_DEV_PM_OPS() or SET_SYSTEM_SLEEP_PM_OPS. Are you asking me to change the above to:
static const struct dev_pm_ops exynos_lpass_pm_ops = { #ifdef CONFIG_PM_SLEEP .suspend = exynos_lpass_suspend, .resume = exynos_lpass_resume, .freeze = exynos_lpass_suspend, .thaw = exynos_lpass_resume, .poweroff = exynos_lpass_suspend, .restore = exynos_lpass_resume, #endif }
or perhaps
static const struct dev_pm_ops exynos_lpass_pm_ops = { SET_SYSTEM_SLEEP_PM_OPS(exynos_lpass_suspend, exynos_lpass_resume) }
?
I agree about the CONFIG_PM_SLEEP guards. There is very little chance though the LPASS driver will ever be used with CONFIG_PM_SLEEP disabled. How about adding __maybe_unused attribute to the *_suspend/*_resume functions then? I can see this pattern used already in drivers/mfd.