On Mon, Jul 17, 2023 at 10:02 PM Paul Cercueil <paul@xxxxxxxxxxxxxxx> wrote: > Le lundi 17 juillet 2023 à 20:28 +0300, Andy Shevchenko a écrit : ... > Unrelated change. OK. ... > So the correct way to update this driver would be to have a > conditionally-exported dev_pm_ops structure: > > EXPORT_GPL_DEV_PM_OPS(intel_pinctrl_pm_ops) = { > NOIRQ_SYSTEM_SLEEP_PM_OPS(intel_pinctrl_suspend_noirq, > intel_pinctrl_resume_noirq), > }; This looks ugly. I didn't know that EXPORT*PM_OPS designed that way, but it seems pm.h in such case needs EXPORT for NOIRQ case as well. > Then your two callbacks can be "static" and without #ifdef guards. > > The resulting "intel_pinctrl_pm_ops" can be marked as "extern" in the > pinctrl-intel.h without any guards, as long as it is only referenced > with the pm_ptr() macro. I'm not sure I got this. Currently drivers do not have any guards. Moreover, the correct one for noirq is pm_sleep_ptr(), isn't it? -- With Best Regards, Andy Shevchenko