dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
From: Paul Cercueil <paul@crapouillou.net>
To: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Maxime Ripard <mripard@kernel.org>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	David Airlie <airlied@gmail.com>, Daniel Vetter <daniel@ffwll.ch>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
	Paul Cercueil <paul@crapouillou.net>,
	NXP Linux Team <linux-imx@nxp.com>,
	Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>,
	Shawn Guo <shawnguo@kernel.org>,
	linux-arm-kernel@lists.infradead.org
Subject: [PATCH 10/26] drm: imx/dcss: Remove #ifdef guards for PM related functions
Date: Mon,  7 Nov 2022 17:50:50 +0000	[thread overview]
Message-ID: <20221107175106.360578-11-paul@crapouillou.net> (raw)
In-Reply-To: <20221107175106.360578-1-paul@crapouillou.net>

Use the EXPORT_GPL_DEV_PM_OPS() and pm_ptr() macros to handle the PM
callbacks.

These macros allow the PM functions to be automatically dropped by the
compiler when CONFIG_PM is disabled, without having to use #ifdef
guards.

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>
---
Cc: Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
Cc: Lucas Stach <l.stach@pengutronix.de>
Cc: Philipp Zabel <p.zabel@pengutronix.de>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: NXP Linux Team <linux-imx@nxp.com>
Cc: linux-arm-kernel@lists.infradead.org
---
 drivers/gpu/drm/imx/dcss/dcss-dev.c | 17 +++++++++--------
 drivers/gpu/drm/imx/dcss/dcss-dev.h |  7 +++----
 drivers/gpu/drm/imx/dcss/dcss-drv.c |  8 +-------
 3 files changed, 13 insertions(+), 19 deletions(-)

diff --git a/drivers/gpu/drm/imx/dcss/dcss-dev.c b/drivers/gpu/drm/imx/dcss/dcss-dev.c
index 3f5750cc2673..66d9233ffb98 100644
--- a/drivers/gpu/drm/imx/dcss/dcss-dev.c
+++ b/drivers/gpu/drm/imx/dcss/dcss-dev.c
@@ -249,8 +249,7 @@ void dcss_dev_destroy(struct dcss_dev *dcss)
 	kfree(dcss);
 }
 
-#ifdef CONFIG_PM_SLEEP
-int dcss_dev_suspend(struct device *dev)
+static int dcss_dev_suspend(struct device *dev)
 {
 	struct dcss_dev *dcss = dcss_drv_dev_to_dcss(dev);
 	struct drm_device *ddev = dcss_drv_dev_to_drm(dev);
@@ -273,7 +272,7 @@ int dcss_dev_suspend(struct device *dev)
 	return 0;
 }
 
-int dcss_dev_resume(struct device *dev)
+static int dcss_dev_resume(struct device *dev)
 {
 	struct dcss_dev *dcss = dcss_drv_dev_to_dcss(dev);
 	struct drm_device *ddev = dcss_drv_dev_to_drm(dev);
@@ -296,10 +295,8 @@ int dcss_dev_resume(struct device *dev)
 
 	return 0;
 }
-#endif /* CONFIG_PM_SLEEP */
 
-#ifdef CONFIG_PM
-int dcss_dev_runtime_suspend(struct device *dev)
+static int dcss_dev_runtime_suspend(struct device *dev)
 {
 	struct dcss_dev *dcss = dcss_drv_dev_to_dcss(dev);
 	int ret;
@@ -313,7 +310,7 @@ int dcss_dev_runtime_suspend(struct device *dev)
 	return 0;
 }
 
-int dcss_dev_runtime_resume(struct device *dev)
+static int dcss_dev_runtime_resume(struct device *dev)
 {
 	struct dcss_dev *dcss = dcss_drv_dev_to_dcss(dev);
 
@@ -325,4 +322,8 @@ int dcss_dev_runtime_resume(struct device *dev)
 
 	return 0;
 }
-#endif /* CONFIG_PM */
+
+EXPORT_GPL_DEV_PM_OPS(dcss_dev_pm_ops) = {
+	RUNTIME_PM_OPS(dcss_dev_runtime_suspend, dcss_dev_runtime_resume, NULL)
+	SYSTEM_SLEEP_PM_OPS(dcss_dev_suspend, dcss_dev_resume)
+};
diff --git a/drivers/gpu/drm/imx/dcss/dcss-dev.h b/drivers/gpu/drm/imx/dcss/dcss-dev.h
index 1e582270c6ea..f27b87c09599 100644
--- a/drivers/gpu/drm/imx/dcss/dcss-dev.h
+++ b/drivers/gpu/drm/imx/dcss/dcss-dev.h
@@ -9,6 +9,7 @@
 #include <drm/drm_fourcc.h>
 #include <drm/drm_plane.h>
 #include <linux/io.h>
+#include <linux/pm.h>
 #include <video/videomode.h>
 
 #define SET			0x04
@@ -95,13 +96,11 @@ struct dcss_dev *dcss_drv_dev_to_dcss(struct device *dev);
 struct drm_device *dcss_drv_dev_to_drm(struct device *dev);
 struct dcss_dev *dcss_dev_create(struct device *dev, bool hdmi_output);
 void dcss_dev_destroy(struct dcss_dev *dcss);
-int dcss_dev_runtime_suspend(struct device *dev);
-int dcss_dev_runtime_resume(struct device *dev);
-int dcss_dev_suspend(struct device *dev);
-int dcss_dev_resume(struct device *dev);
 void dcss_enable_dtg_and_ss(struct dcss_dev *dcss);
 void dcss_disable_dtg_and_ss(struct dcss_dev *dcss);
 
+extern const struct dev_pm_ops dcss_dev_pm_ops;
+
 /* BLKCTL */
 int dcss_blkctl_init(struct dcss_dev *dcss, unsigned long blkctl_base);
 void dcss_blkctl_cfg(struct dcss_blkctl *blkctl);
diff --git a/drivers/gpu/drm/imx/dcss/dcss-drv.c b/drivers/gpu/drm/imx/dcss/dcss-drv.c
index 1c70f70247f6..431510bd811b 100644
--- a/drivers/gpu/drm/imx/dcss/dcss-drv.c
+++ b/drivers/gpu/drm/imx/dcss/dcss-drv.c
@@ -117,19 +117,13 @@ static const struct of_device_id dcss_of_match[] = {
 
 MODULE_DEVICE_TABLE(of, dcss_of_match);
 
-static const struct dev_pm_ops dcss_dev_pm = {
-	SET_SYSTEM_SLEEP_PM_OPS(dcss_dev_suspend, dcss_dev_resume)
-	SET_RUNTIME_PM_OPS(dcss_dev_runtime_suspend,
-			   dcss_dev_runtime_resume, NULL)
-};
-
 static struct platform_driver dcss_platform_driver = {
 	.probe	= dcss_drv_platform_probe,
 	.remove	= dcss_drv_platform_remove,
 	.driver	= {
 		.name = "imx-dcss",
 		.of_match_table	= dcss_of_match,
-		.pm = &dcss_dev_pm,
+		.pm = pm_ptr(&dcss_dev_pm_ops),
 	},
 };
 
-- 
2.35.1


  parent reply	other threads:[~2022-11-07 17:52 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-07 17:50 [PATCH 00/26] drm: Get rid of #ifdef CONFIG_PM* guards Paul Cercueil
2022-11-07 17:50 ` [PATCH 01/26] drm: modeset-helper: Export dev_pm_ops for simple drivers Paul Cercueil
2022-11-08 12:10   ` Thomas Zimmermann
2022-11-08 12:33     ` Paul Cercueil
2022-11-07 17:50 ` [PATCH 02/26] drm: bochs: Use the dev_pm_ops provided by modeset helper Paul Cercueil
2022-11-07 17:50 ` [PATCH 03/26] drm: imx: " Paul Cercueil
2022-11-07 17:50 ` [PATCH 04/26] drm: rockchip: " Paul Cercueil
2022-11-07 17:50 ` [PATCH 05/26] drm: tegra: " Paul Cercueil
2022-11-07 17:50 ` [PATCH 06/26] drm: sun4i: " Paul Cercueil
2022-11-14  0:34   ` Samuel Holland
2022-11-07 17:50 ` [PATCH 07/26] drm: msxfb: " Paul Cercueil
2022-11-07 17:50 ` [PATCH 08/26] drm: atmel-hlcdc: Remove #ifdef guards for PM related functions Paul Cercueil
2022-11-07 17:53   ` Sam Ravnborg
2022-11-10 15:28   ` Claudiu.Beznea
2022-11-07 17:50 ` [PATCH 09/26] drm: exynos: " Paul Cercueil
2022-11-21  4:25   ` Inki Dae
2022-11-07 17:50 ` Paul Cercueil [this message]
2022-11-11 14:27   ` [PATCH 10/26] drm: imx/dcss: " Laurentiu Palcu
2022-11-07 17:52 ` [PATCH 11/26] drm: bridge/dw-hdmi: " Paul Cercueil
2022-11-07 17:52   ` [PATCH 12/26] drm: etnaviv: " Paul Cercueil
2022-11-07 18:07     ` Lucas Stach
2022-11-07 21:03       ` Paul Cercueil
2022-11-07 17:52   ` [PATCH 13/26] drm: fsl-dcu: " Paul Cercueil
2022-11-07 17:52   ` [PATCH 14/26] drm: mediatek: " Paul Cercueil
2022-11-07 17:52   ` [PATCH 15/26] drm: omap: " Paul Cercueil
2022-11-07 17:52   ` [PATCH 16/26] drm: panfrost: " Paul Cercueil
2022-11-09 15:16     ` Steven Price
2022-11-07 17:52   ` [PATCH 17/26] drm: rcar-du: " Paul Cercueil
2022-11-16 13:41     ` Kieran Bingham
2022-11-07 17:52   ` [PATCH 18/26] drm: rockchip: " Paul Cercueil
2022-11-07 17:52   ` [PATCH 19/26] drm: shmobile: " Paul Cercueil
2022-11-16 13:41     ` Kieran Bingham
2022-11-07 17:52   ` [PATCH 20/26] drm: tegra: " Paul Cercueil
2022-11-07 17:52   ` [PATCH 21/26] drm: tilcdc: " Paul Cercueil
2022-11-07 17:52   ` [PATCH 22/26] drm: vboxvideo: " Paul Cercueil
2022-11-07 19:43     ` Hans de Goede
2022-11-07 17:52   ` [PATCH 23/26] drm: vc4: " Paul Cercueil
2022-11-07 20:27   ` [PATCH 21/26] drm: tilcdc: " sarha
2022-11-07 17:55 ` [PATCH 24/26] drm: gm12u320: " Paul Cercueil
2022-11-07 17:55   ` [PATCH 25/26] drm: tidss: " Paul Cercueil
2022-11-07 17:55   ` [PATCH 26/26] drm/i915/gt: " Paul Cercueil
2022-11-07 20:31     ` Rodrigo Vivi
2022-11-07 20:59       ` Paul Cercueil
2022-11-07 19:43   ` [PATCH 24/26] drm: gm12u320: " Hans de Goede

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=20221107175106.360578-11-paul@crapouillou.net \
    --to=paul@crapouillou.net \
    --cc=airlied@gmail.com \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=kernel@pengutronix.de \
    --cc=laurentiu.palcu@oss.nxp.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-imx@nxp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=mripard@kernel.org \
    --cc=s.hauer@pengutronix.de \
    --cc=shawnguo@kernel.org \
    --cc=tzimmermann@suse.de \
    /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).