[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <0D5Z7R.NUOWBMRT4GQ2@crapouillou.net>
Date: Sun, 27 Feb 2022 17:46:12 +0000
From: Paul Cercueil <paul@...pouillou.net>
To: Arnd Bergmann <arnd@...db.de>
Cc: Randy Dunlap <rdunlap@...radead.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Wei WANG <wei_wang@...lsil.com.cn>,
Kai-Heng Feng <kai.heng.feng@...onical.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
"Rafael J. Wysocki" <rafael.j.wysocki@...el.com>,
Jonathan Cameron <Jonathan.Cameron@...wei.com>
Subject: Re: [PATCH -next] misc: rtsx: fix build for CONFIG_PM not set
Hi,
Le dim., févr. 27 2022 at 18:30:16 +0100, Arnd Bergmann
<arnd@...db.de> a écrit :
> On Sun, Feb 27, 2022 at 5:57 PM Randy Dunlap <rdunlap@...radead.org>
> wrote:
>> On 2/27/22 04:04, Arnd Bergmann wrote:
>> > On Sat, Feb 26, 2022 at 11:24 PM Randy Dunlap
>> <rdunlap@...radead.org> wrote:
>> >
>> >> ---
>> >> drivers/misc/cardreader/rtsx_pcr.c | 2 ++
>> >> 1 file changed, 2 insertions(+)
>> >>
>> >> --- linux-next-20220225.orig/drivers/misc/cardreader/rtsx_pcr.c
>> >> +++ linux-next-20220225/drivers/misc/cardreader/rtsx_pcr.c
>> >> @@ -1054,6 +1054,7 @@ static int rtsx_pci_acquire_irq(struct r
>> >> return 0;
>> >> }
>> >>
>> >> +#ifdef CONFIG_PM
>> >> static void rtsx_enable_aspm(struct rtsx_pcr *pcr)
>> >> {
>> >> if (pcr->ops->set_aspm)
>> >> @@ -1085,6 +1086,7 @@ static void rtsx_pm_power_saving(struct
>> >> {
>> >> rtsx_comm_pm_power_saving(pcr);
>> >> }
>> >> +#endif
>> >
>> > Now that we have DEFINE_SIMPLE_DEV_PM_OPS() etc, I think we should
>> > no longer add more __maybe_unused annotations or #ifdef CONFIG_PM
>> checks
>> > but just use the new macros for any new files or whenever a
>> warning like
>> > this shows up.
>>
>> In this case it looks like DEFINE_RUNTIME_DEV_PM_OPS() is better.
>> Using DEFINE_SIMPLE_DEV_PM_OPS() still produces build
>> warnings/errors
>> for unused functions. And I do see 4 drivers that are already using
>> DEFINE_RUNTIME_DEV_PM_OPS().
>>
>> Patch coming right up.
>
> DEFINE_RUNTIME_DEV_PM_OPS() only references the three runtime
> functions
> (rtsx_pci_runtime_suspend, rtsx_pci_runtime_resume and
> rtsx_pci_runtime_idle)
> but not the pm-sleep functions (rtsx_pci_suspend and
> rtsx_pci_resume), so your
> second patch doesn't look correct either.
>
> I see there is a _DEFINE_DEV_PM_OPS() helper that appears to do
> what we want here, but I'm not sure this is considered an official
> API. Adding
> Rafael, Paul and Jonathan to Cc for extra input. As the macros are
> still
> fairly new, I suspect the idea was to add more as needed, so maybe
> should
> add a DEFINE_DEV_PM_OPS() to wrap _DEFINE_DEV_PM_OPS()?
There could be a DEFINE_DEV_PM_OPS(), but I don't think that's really
needed - you can very well declare your struct dev_pm_ops without using
one of these macros. Just make sure to use the SYSTEM_SLEEP_PM_OPS /
RUNTIME_PM_OPS macros for the callbacks and pm_ptr() for the device.pm
pointer.
Cheers,
-Paul
Powered by blists - more mailing lists