On Thu, Apr 11, 2024, Anand Moon wrote: > Hi Thinh, > > On Thu, 11 Apr 2024 at 04:56, Thinh Nguyen <Thinh.Nguyen@xxxxxxxxxxxx> wrote: > > > > On Wed, Apr 10, 2024, Anand Moon wrote: > > > Hi Thinh, > > > > > > On Tue, 9 Apr 2024 at 07:24, Thinh Nguyen <Thinh.Nguyen@xxxxxxxxxxxx> wrote: > > > > > > > > On Thu, Apr 04, 2024, Anand Moon wrote: > > > > > Use the new PM macros for the suspend and resume functions to be > > > > > automatically dropped by the compiler when CONFIG_PM_SLEEP are disabled, > > > > > without having to use #ifdef guards. If CONFIG_PM_SLEEP unused, > > > > > they will simply be discarded by the compiler. > > > > > > > > > > Signed-off-by: Anand Moon <linux.amoon@xxxxxxxxx> > > > > > --- > > > > > v2: add __maybe_unused to suspend/resume functions in case CONFIG_PM is > > > > > disabled. > > > > > > > > The compiler discards the code, yet we still need __maybe_unused? > > > > > > > Earlier version had not added this since but I removed the > > > guard.CONFIG_PM_SLEEP. > > > added __maybe_unused just to safeguard the function. > > > > > > I have tried to build with config by disabling CONFIG_PM and CONFIG_PM_SLEEP > > > but could get the warning compilation by adding flag W=1 > > > -Werror=unused-function. > > > > > > > <snip> > > > > > > > > But since these CONFIG_PM and CONFIG_PM_SLEEP cannot be disabled, > > > I am not getting any warning related to these functions. > > > > > > Do you want me to remove __maybe_unused ? > > > > > > > The warning was there as expected. You should to use it along with > > DEFINE_SIMPLE_DEV_PM_OPS(). Let me know if you still see the same > > warning. > > > > But the warnings are related to the following macros > > #define PTR_IF(cond, ptr) ((cond) ? (ptr) : NULL) > > #define pm_ptr(_ptr) PTR_IF(IS_ENABLED(CONFIG_PM), (_ptr)) > #define pm_sleep_ptr(_ptr) PTR_IF(IS_ENABLED(CONFIG_PM_SLEEP), (_ptr)) > > So if we can disable CONFIG_PM and CONFIG_PM_SLEEP options > the relevant function with the above macro will be set to NULL. > in this case, the compiler will discard the function in SET_SYSTEM_SLEEP_PM_OPS > There are differences if you use SET_SYSTEM_SLEEP_PM_OPS vs the new macro. It's noted in this commit: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1a3c7bb088266fa2db017be299f91f1c1894c857 Please try it out. Thanks, Thinh