linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Paul Cercueil <paul@crapouillou.net>
To: Lee Jones <lee@kernel.org>
Cc: linux-kernel@vger.kernel.org,
	Paul Cercueil <paul@crapouillou.net>,
	Charles Keepax <ckeepax@opensource.cirrus.com>
Subject: [PATCH v3 19/28] mfd: arizona: Remove #ifdef guards for PM related functions
Date: Sun, 23 Oct 2022 10:48:43 +0100	[thread overview]
Message-ID: <20221023094852.8035-20-paul@crapouillou.net> (raw)
In-Reply-To: <20221023094852.8035-1-paul@crapouillou.net>

Only export the arizona_pm_ops if CONFIG_PM is set, but leave the
suspend/resume functions (and related code) outside #ifdef guards.

If CONFIG_PM is not set, the arizona_pm_ops will be defined as
"static __maybe_unused", and the structure plus all the callbacks will
be automatically dropped by the compiler.

This has the advantage of always compiling these functions in,
independently of any Kconfig option. Thanks to that, bugs and other
regressions are subsequently easier to catch.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
---

V2: Use new EXPORT_GPL_DEV_PM_OPS() macro
V3: No change

 drivers/mfd/arizona-core.c | 19 +++++++------------
 drivers/mfd/arizona-i2c.c  |  2 +-
 drivers/mfd/arizona-spi.c  |  2 +-
 3 files changed, 9 insertions(+), 14 deletions(-)

diff --git a/drivers/mfd/arizona-core.c b/drivers/mfd/arizona-core.c
index cbf1dd90b70d..bd7ee3260d53 100644
--- a/drivers/mfd/arizona-core.c
+++ b/drivers/mfd/arizona-core.c
@@ -480,7 +480,6 @@ static int wm5102_clear_write_sequencer(struct arizona *arizona)
 	return 0;
 }
 
-#ifdef CONFIG_PM
 static int arizona_isolate_dcvdd(struct arizona *arizona)
 {
 	int ret;
@@ -742,9 +741,7 @@ static int arizona_runtime_suspend(struct device *dev)
 
 	return 0;
 }
-#endif
 
-#ifdef CONFIG_PM_SLEEP
 static int arizona_suspend(struct device *dev)
 {
 	struct arizona *arizona = dev_get_drvdata(dev);
@@ -784,17 +781,15 @@ static int arizona_resume(struct device *dev)
 
 	return 0;
 }
-#endif
 
-const struct dev_pm_ops arizona_pm_ops = {
-	SET_RUNTIME_PM_OPS(arizona_runtime_suspend,
-			   arizona_runtime_resume,
-			   NULL)
-	SET_SYSTEM_SLEEP_PM_OPS(arizona_suspend, arizona_resume)
-	SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(arizona_suspend_noirq,
-				      arizona_resume_noirq)
+EXPORT_GPL_DEV_PM_OPS(arizona_pm_ops) = {
+	RUNTIME_PM_OPS(arizona_runtime_suspend,
+		       arizona_runtime_resume,
+		       NULL)
+	SYSTEM_SLEEP_PM_OPS(arizona_suspend, arizona_resume)
+	NOIRQ_SYSTEM_SLEEP_PM_OPS(arizona_suspend_noirq,
+				  arizona_resume_noirq)
 };
-EXPORT_SYMBOL_GPL(arizona_pm_ops);
 
 #ifdef CONFIG_OF
 static int arizona_of_get_core_pdata(struct arizona *arizona)
diff --git a/drivers/mfd/arizona-i2c.c b/drivers/mfd/arizona-i2c.c
index 6d83e6b9a692..8799d9183bee 100644
--- a/drivers/mfd/arizona-i2c.c
+++ b/drivers/mfd/arizona-i2c.c
@@ -119,7 +119,7 @@ static const struct of_device_id arizona_i2c_of_match[] = {
 static struct i2c_driver arizona_i2c_driver = {
 	.driver = {
 		.name	= "arizona",
-		.pm	= &arizona_pm_ops,
+		.pm	= pm_ptr(&arizona_pm_ops),
 		.of_match_table	= of_match_ptr(arizona_i2c_of_match),
 	},
 	.probe		= arizona_i2c_probe,
diff --git a/drivers/mfd/arizona-spi.c b/drivers/mfd/arizona-spi.c
index 941b0267d09d..da05b966d48c 100644
--- a/drivers/mfd/arizona-spi.c
+++ b/drivers/mfd/arizona-spi.c
@@ -282,7 +282,7 @@ static const struct of_device_id arizona_spi_of_match[] = {
 static struct spi_driver arizona_spi_driver = {
 	.driver = {
 		.name	= "arizona",
-		.pm	= &arizona_pm_ops,
+		.pm	= pm_ptr(&arizona_pm_ops),
 		.of_match_table	= of_match_ptr(arizona_spi_of_match),
 		.acpi_match_table = ACPI_PTR(arizona_acpi_match),
 	},
-- 
2.35.1


  parent reply	other threads:[~2022-10-23  9:53 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-23  9:48 [PATCH v3 00/28] mfd: Remove #ifdef guards for PM functions Paul Cercueil
2022-10-23  9:48 ` [PATCH v3 01/28] mfd: 88pm80x: Remove #ifdef guards for PM related functions Paul Cercueil
2022-10-23  9:48 ` [PATCH v3 02/28] mfd: aat2870: " Paul Cercueil
2022-10-23  9:48 ` [PATCH v3 03/28] mfd: adp5520: " Paul Cercueil
2022-10-23  9:48 ` [PATCH v3 04/28] mfd: max8925-i2c: " Paul Cercueil
2022-10-23  9:48 ` [PATCH v3 05/28] mfd: mt6397-irq: " Paul Cercueil
2022-10-23  9:48 ` [PATCH v3 06/28] mfd: pcf50633: " Paul Cercueil
2022-10-23  9:48 ` [PATCH v3 07/28] mfd: rc5t583-irq: " Paul Cercueil
2022-10-23  9:48 ` [PATCH v3 08/28] mfd: stpmic1: " Paul Cercueil
2022-10-23  9:48 ` [PATCH v3 09/28] mfd: ucb1x00: " Paul Cercueil
2022-10-23  9:48 ` [PATCH v3 10/28] mfd: 88pm860x: " Paul Cercueil
2022-10-23  9:48 ` [PATCH v3 11/28] mfd: mcp-sa11x0: " Paul Cercueil
2022-10-23  9:48 ` [PATCH v3 12/28] mfd: sec: " Paul Cercueil
2022-10-23  9:48 ` [PATCH v3 13/28] mfd: sm501: " Paul Cercueil
2022-10-23  9:48 ` [PATCH v3 14/28] mfd: tc6387xb: " Paul Cercueil
2022-10-23  9:48 ` [PATCH v3 15/28] mfd: tps6586x: " Paul Cercueil
2022-10-23  9:48 ` [PATCH v3 16/28] mfd: wm8994: " Paul Cercueil
2022-10-23  9:48 ` [PATCH v3 17/28] mfd: max77620: " Paul Cercueil
2022-10-23  9:48 ` [PATCH v3 18/28] mfd: t7l66xb: " Paul Cercueil
2022-10-23  9:48 ` Paul Cercueil [this message]
2022-10-23  9:48 ` [PATCH v3 20/28] mfd: max14577: " Paul Cercueil
2022-10-23  9:48 ` [PATCH v3 21/28] mfd: max77686: " Paul Cercueil
2022-10-23  9:48 ` [PATCH v3 22/28] mfd: motorola-cpcap: " Paul Cercueil
2022-10-23  9:48 ` [PATCH v3 23/28] mfd: sprd-sc27xx: " Paul Cercueil
2022-10-23  9:48 ` [PATCH v3 24/28] mfd: stmfx: " Paul Cercueil
2022-10-23  9:48 ` [PATCH v3 25/28] mfd: stmpe: " Paul Cercueil
2022-10-23  9:48 ` [PATCH v3 26/28] mfd: tc3589x: " Paul Cercueil
2022-10-23  9:48 ` [PATCH v3 27/28] mfd: tc6393xb: " Paul Cercueil
2022-10-23  9:48 ` [PATCH v3 28/28] mfd: intel-lpss: " Paul Cercueil
2022-10-23 12:55   ` kernel test robot
2022-10-31 14:59     ` Lee Jones
2022-10-31 15:03       ` Nathan Chancellor
2022-10-31 15:11         ` Paul Cercueil
2022-10-31 15:43           ` Lee Jones
2022-10-31 15:53             ` Paul Cercueil
2022-11-01 10:27               ` Lee Jones
2022-11-07  9:44 ` [PATCH v3 00/28] mfd: Remove #ifdef guards for PM functions Lee Jones

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221023094852.8035-20-paul@crapouillou.net \
    --to=paul@crapouillou.net \
    --cc=ckeepax@opensource.cirrus.com \
    --cc=lee@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).