Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp839708pxf; Thu, 8 Apr 2021 14:00:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJznW6dYyG2Mrdr/xPjpiru/hynaLcrmCcO+VunSzHfzHE14qTLRm3Ek5dWcHcEH/C75NA2X X-Received: by 2002:a17:90b:4b87:: with SMTP id lr7mr9710229pjb.5.1617915642954; Thu, 08 Apr 2021 14:00:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617915642; cv=none; d=google.com; s=arc-20160816; b=tv8g1CT7FkJHfp4wHqFXxELt3p603dUKXbnojLgmKHSMxArAiYx96V6krt5jc1FGWf apLQPMQ9i3NxLkaRVyBdU3jf+mM/oQ8zsITG3E3Dem5Fm5Dr69QjkK+/ctJxYszlmyx5 dYe9YiKeAsVPexusbJw5R/NzOOMtbQV6ScFABaTyy0+F/kDSEjg/eFBCLN+Y6pjhSGYd luqltfXev1wKC56ZBbDS63FBHgMF7iFTaoVxdpmg4pji5ommAIUlPgbVjiUl/pR3dYls 0FB6thzLnbDKGTzYWWy6WdTlPUFPlDvwmmoZ/PDulZFKyo+Dgiq4Qhl/ShbpgQE0dFa+ er7Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-filter; bh=piA+8z078kwb/KfPJ/8L0g75CBWXThZTe0VPYso6g/U=; b=gwZN0Oy7hM+i5y7CRhmi6NrDkN87ZSL8Qd2FhmboIp6NeDZzHUnOc/TUSqs0iJoOV3 51xutaNsnQVg5dzjhSPcOIkjG2FDy2BbdvwFTP8z9yQ1tfRJbLX4nA6cQY+ZjaMyaRLs LYVqtpgRdGgOguP4lETyb9Lhoy2u97+jM8PyiLiuqKQCoVwXEVBbps8QM9nuxI6pzPFn 4ULFxo984FfYBwteDhIssO45AT6UfjcZeV+OeH9Vp0Gp/MzobDVYPOdD6ZTrqPVAZjkT rU2zITjayVP5uJMyGinzh+n9cP6f6WlS+2UwdxkaC1jrUH/1s4UHUY3+gaHKGwgE9ysN aG/g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nifty.com header.s=dec2015msa header.b=E65GbUOU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id o12si507467pgj.23.2021.04.08.14.00.28; Thu, 08 Apr 2021 14:00:42 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@nifty.com header.s=dec2015msa header.b=E65GbUOU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232435AbhDHVAI (ORCPT + 99 others); Thu, 8 Apr 2021 17:00:08 -0400 Received: from conuserg-09.nifty.com ([210.131.2.76]:46606 "EHLO conuserg-09.nifty.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232373AbhDHVAI (ORCPT ); Thu, 8 Apr 2021 17:00:08 -0400 Received: from localhost.localdomain (133-32-232-101.west.xps.vectant.ne.jp [133.32.232.101]) (authenticated) by conuserg-09.nifty.com with ESMTP id 138Kx471002644; Fri, 9 Apr 2021 05:59:06 +0900 DKIM-Filter: OpenDKIM Filter v2.10.3 conuserg-09.nifty.com 138Kx471002644 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.com; s=dec2015msa; t=1617915546; bh=piA+8z078kwb/KfPJ/8L0g75CBWXThZTe0VPYso6g/U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=E65GbUOUKULlL/mKzA0AVQ65w88zN1o5uif53wxAmxGkhdZqItC49y4rWkJOjItNJ tLVX6tAyd6DCAdOQi4Q9iODqSvyhaZpq1G3MGyCAqWx9BS7IxNeVuPI52RwF/I1mKM +0V0UVCeASxlppgX6piANkaMLhn4EPqvs4OyKv+2eE8tUq2MLgR84FxMdKuVYsh+fS OocOwD5+NGyVq5Oz29d3cGRt56StEw9e0mB4RldDJE5kU0GuJmHDbWYmjsMzuVJPyR WcNIsANqTZ2NaqQ7xrAM3Z36qfPcbMNMYisubExgEllrLizap3fossetR+MCScZVMA MLPM5V2rgSV5g== X-Nifty-SrcIP: [133.32.232.101] From: Masahiro Yamada To: linux-kbuild@vger.kernel.org Cc: linux-gpio@vger.kernel.org, Arnd Bergmann , Paul Cercueil , Masahiro Yamada , Len Brown , Pavel Machek , "Rafael J. Wysocki" , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org Subject: [PATCH 2/2] pm: allow drivers to drop #ifdef and __maybe_unused from pm callbacks Date: Fri, 9 Apr 2021 05:58:58 +0900 Message-Id: <20210408205858.51751-3-masahiroy@kernel.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210408205858.51751-1-masahiroy@kernel.org> References: <20210408205858.51751-1-masahiroy@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Drivers typically surround suspend and resume callbacks with #ifdef CONFIG_PM(_SLEEP) or mark them as __maybe_unused in order to avoid -Wunused-const-variable warnings. With this commit, drivers will be able to remove #ifdef CONFIG_PM(_SLEEP) and __maybe_unsed because unused functions are dropped by the compiler instead of the preprocessor. Signed-off-by: Masahiro Yamada --- include/linux/pm.h | 67 +++++++++++++++++----------------------------- 1 file changed, 24 insertions(+), 43 deletions(-) diff --git a/include/linux/pm.h b/include/linux/pm.h index 482313a8ccfc..ca764566692a 100644 --- a/include/linux/pm.h +++ b/include/linux/pm.h @@ -301,50 +301,37 @@ struct dev_pm_ops { int (*runtime_idle)(struct device *dev); }; -#ifdef CONFIG_PM_SLEEP +#define pm_ptr(_ptr) PTR_IF(IS_ENABLED(CONFIG_PM), _ptr) +#define pm_sleep_ptr(_ptr) PTR_IF(IS_ENABLED(CONFIG_PM_SLEEP), _ptr) + #define SET_SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn) \ - .suspend = suspend_fn, \ - .resume = resume_fn, \ - .freeze = suspend_fn, \ - .thaw = resume_fn, \ - .poweroff = suspend_fn, \ - .restore = resume_fn, -#else -#define SET_SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn) -#endif + .suspend = pm_sleep_ptr(suspend_fn), \ + .resume = pm_sleep_ptr(resume_fn), \ + .freeze = pm_sleep_ptr(suspend_fn), \ + .thaw = pm_sleep_ptr(resume_fn), \ + .poweroff = pm_sleep_ptr(suspend_fn), \ + .restore = pm_sleep_ptr(resume_fn), -#ifdef CONFIG_PM_SLEEP #define SET_LATE_SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn) \ - .suspend_late = suspend_fn, \ - .resume_early = resume_fn, \ - .freeze_late = suspend_fn, \ - .thaw_early = resume_fn, \ - .poweroff_late = suspend_fn, \ - .restore_early = resume_fn, -#else -#define SET_LATE_SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn) -#endif + .suspend_late = pm_sleep_ptr(suspend_fn), \ + .resume_early = pm_sleep_ptr(resume_fn), \ + .freeze_late = pm_sleep_ptr(suspend_fn), \ + .thaw_early = pm_sleep_ptr(resume_fn), \ + .poweroff_late = pm_sleep_ptr(suspend_fn), \ + .restore_early = pm_sleep_ptr(resume_fn), -#ifdef CONFIG_PM_SLEEP #define SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn) \ - .suspend_noirq = suspend_fn, \ - .resume_noirq = resume_fn, \ - .freeze_noirq = suspend_fn, \ - .thaw_noirq = resume_fn, \ - .poweroff_noirq = suspend_fn, \ - .restore_noirq = resume_fn, -#else -#define SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn) -#endif + .suspend_noirq = pm_sleep_ptr(suspend_fn), \ + .resume_noirq = pm_sleep_ptr(resume_fn), \ + .freeze_noirq = pm_sleep_ptr(suspend_fn), \ + .thaw_noirq = pm_sleep_ptr(resume_fn), \ + .poweroff_noirq = pm_sleep_ptr(suspend_fn), \ + .restore_noirq = pm_sleep_ptr(resume_fn), -#ifdef CONFIG_PM #define SET_RUNTIME_PM_OPS(suspend_fn, resume_fn, idle_fn) \ - .runtime_suspend = suspend_fn, \ - .runtime_resume = resume_fn, \ - .runtime_idle = idle_fn, -#else -#define SET_RUNTIME_PM_OPS(suspend_fn, resume_fn, idle_fn) -#endif + .runtime_suspend = pm_ptr(suspend_fn), \ + .runtime_resume = pm_ptr(resume_fn), \ + .runtime_idle = pm_ptr(idle_fn), /* * Use this if you want to use the same suspend and resume callbacks for suspend @@ -374,12 +361,6 @@ const struct dev_pm_ops __maybe_unused name = { \ SET_RUNTIME_PM_OPS(suspend_fn, resume_fn, idle_fn) \ } -#ifdef CONFIG_PM -#define pm_ptr(_ptr) (_ptr) -#else -#define pm_ptr(_ptr) NULL -#endif - /* * PM_EVENT_ messages * -- 2.27.0