From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7EA28C433EF for ; Sun, 27 Feb 2022 17:46:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229912AbiB0RrF convert rfc822-to-8bit (ORCPT ); Sun, 27 Feb 2022 12:47:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35792 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229664AbiB0RrE (ORCPT ); Sun, 27 Feb 2022 12:47:04 -0500 Received: from aposti.net (aposti.net [89.234.176.197]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 662F9192B8 for ; Sun, 27 Feb 2022 09:46:26 -0800 (PST) Date: Sun, 27 Feb 2022 17:46:12 +0000 From: Paul Cercueil Subject: Re: [PATCH -next] misc: rtsx: fix build for CONFIG_PM not set To: Arnd Bergmann Cc: Randy Dunlap , Linux Kernel Mailing List , Wei WANG , Kai-Heng Feng , Greg Kroah-Hartman , "Rafael J. Wysocki" , Jonathan Cameron Message-Id: <0D5Z7R.NUOWBMRT4GQ2@crapouillou.net> In-Reply-To: References: <20220226222457.13668-1-rdunlap@infradead.org> <449d6ceb-7308-9543-c23c-831bebffda21@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1; format=flowed Content-Transfer-Encoding: 8BIT Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Le dim., févr. 27 2022 at 18:30:16 +0100, Arnd Bergmann a écrit : > On Sun, Feb 27, 2022 at 5:57 PM Randy Dunlap > wrote: >> On 2/27/22 04:04, Arnd Bergmann wrote: >> > On Sat, Feb 26, 2022 at 11:24 PM Randy Dunlap >> 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