All of lore.kernel.org
 help / color / mirror / Atom feed
From: Maxime Ripard <maxime@cerno.tech>
To: Andrzej Hajda <a.hajda@samsung.com>,
	Sam Ravnborg <sam@ravnborg.org>,
	Daniel Vetter <daniel.vetter@intel.com>,
	David Airlie <airlied@linux.ie>, Jonas Karlman <jonas@kwiboo.se>,
	Laurent Pinchart <Laurent.pinchart@ideasonboard.com>,
	Thierry Reding <thierry.reding@gmail.com>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Maxime Ripard <maxime@cerno.tech>,
	Neil Armstrong <narmstrong@baylibre.com>,
	Robert Foss <robert.foss@linaro.org>,
	Jernej Skrabec <jernej.skrabec@gmail.com>
Cc: Sean Paul <sean@poorly.run>,
	freedreno@lists.freedesktop.org,
	Kyungmin Park <kyungmin.park@samsung.com>,
	linux-kernel@vger.kernel.org,
	Xinliang Liu <xinliang.liu@linaro.org>,
	Seung-Woo Kim <sw0312.kim@samsung.com>,
	Tian Tao <tiantao6@hisilicon.com>,
	Inki Dae <inki.dae@samsung.com>,
	linux-samsung-soc@vger.kernel.org, linux-arm-msm@vger.kernel.org,
	Rob Clark <robdclark@gmail.com>,
	dri-devel@lists.freedesktop.org,
	John Stultz <john.stultz@linaro.org>,
	Chen Feng <puck.chen@hisilicon.com>,
	Xinwei Kong <kong.kongxinwei@hisilicon.com>,
	Joonyoung Shim <jy0922.shim@samsung.com>
Subject: [PATCH v4 19/24] drm/bridge: sn65dsi86: Switch to devm MIPI-DSI helpers
Date: Fri, 10 Sep 2021 12:12:13 +0200	[thread overview]
Message-ID: <20210910101218.1632297-20-maxime@cerno.tech> (raw)
In-Reply-To: <20210910101218.1632297-1-maxime@cerno.tech>

Let's switch to the new devm MIPI-DSI function to register and attach
our secondary device. This also avoids leaking the device when we detach
the bridge.

Signed-off-by: Maxime Ripard <maxime@cerno.tech>
---
 drivers/gpu/drm/bridge/ti-sn65dsi86.c | 22 +++++++---------------
 1 file changed, 7 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
index 41d48a393e7f..b5662269ff95 100644
--- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c
+++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
@@ -674,6 +674,7 @@ static int ti_sn_bridge_attach(struct drm_bridge *bridge,
 	struct ti_sn65dsi86 *pdata = bridge_to_ti_sn65dsi86(bridge);
 	struct mipi_dsi_host *host;
 	struct mipi_dsi_device *dsi;
+	struct device *dev = pdata->dev;
 	const struct mipi_dsi_device_info info = { .type = "ti_sn_bridge",
 						   .channel = 0,
 						   .node = NULL,
@@ -713,7 +714,7 @@ static int ti_sn_bridge_attach(struct drm_bridge *bridge,
 		goto err_dsi_host;
 	}
 
-	dsi = mipi_dsi_device_register_full(host, &info);
+	dsi = devm_mipi_dsi_device_register_full(dev, host, &info);
 	if (IS_ERR(dsi)) {
 		DRM_ERROR("failed to create dsi device\n");
 		ret = PTR_ERR(dsi);
@@ -726,16 +727,16 @@ static int ti_sn_bridge_attach(struct drm_bridge *bridge,
 	dsi->mode_flags = MIPI_DSI_MODE_VIDEO;
 
 	/* check if continuous dsi clock is required or not */
-	pm_runtime_get_sync(pdata->dev);
+	pm_runtime_get_sync(dev);
 	regmap_read(pdata->regmap, SN_DPPLL_SRC_REG, &val);
-	pm_runtime_put_autosuspend(pdata->dev);
+	pm_runtime_put_autosuspend(dev);
 	if (!(val & DPPLL_CLK_SRC_DSICLK))
 		dsi->mode_flags |= MIPI_DSI_CLOCK_NON_CONTINUOUS;
 
-	ret = mipi_dsi_attach(dsi);
+	ret = devm_mipi_dsi_attach(dev, dsi);
 	if (ret < 0) {
 		DRM_ERROR("failed to attach dsi to host\n");
-		goto err_dsi_attach;
+		goto err_dsi_host;
 	}
 	pdata->dsi = dsi;
 
@@ -746,14 +747,10 @@ static int ti_sn_bridge_attach(struct drm_bridge *bridge,
 	ret = drm_bridge_attach(bridge->encoder, pdata->next_bridge,
 				&pdata->bridge, flags);
 	if (ret < 0)
-		goto err_dsi_detach;
+		goto err_dsi_host;
 
 	return 0;
 
-err_dsi_detach:
-	mipi_dsi_detach(dsi);
-err_dsi_attach:
-	mipi_dsi_device_unregister(dsi);
 err_dsi_host:
 	drm_connector_cleanup(&pdata->connector);
 err_conn_init:
@@ -1236,11 +1233,6 @@ static void ti_sn_bridge_remove(struct auxiliary_device *adev)
 	if (!pdata)
 		return;
 
-	if (pdata->dsi) {
-		mipi_dsi_detach(pdata->dsi);
-		mipi_dsi_device_unregister(pdata->dsi);
-	}
-
 	drm_bridge_remove(&pdata->bridge);
 
 	of_node_put(pdata->host_node);
-- 
2.31.1


  parent reply	other threads:[~2021-09-10 10:14 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-10 10:11 [PATCH v4 00/24] drm/bridge: Make panel and bridge probe order consistent Maxime Ripard
2021-09-10 10:11 ` [PATCH v4 01/24] drm/bridge: Add documentation sections Maxime Ripard
2021-09-24 17:52   ` (subset) " Maxime Ripard
2021-09-10 10:11 ` [PATCH v4 02/24] drm/bridge: Document the probe issue with MIPI-DSI bridges Maxime Ripard
2021-09-13  6:29   ` Andrzej Hajda
2021-09-14 14:35     ` Maxime Ripard
2021-09-14 14:35       ` Maxime Ripard
2021-09-14 19:00       ` Andrzej Hajda
2021-09-22  8:57         ` Maxime Ripard
2021-09-22  8:57           ` Maxime Ripard
2021-09-24 17:52   ` (subset) " Maxime Ripard
2021-09-10 10:11 ` [PATCH v4 03/24] drm/mipi-dsi: Create devm device registration Maxime Ripard
2021-09-24 17:52   ` (subset) " Maxime Ripard
2021-09-10 10:11 ` [PATCH v4 04/24] drm/mipi-dsi: Create devm device attachment Maxime Ripard
2021-09-24 17:52   ` (subset) " Maxime Ripard
2021-09-10 10:11 ` [PATCH v4 05/24] drm/bridge: adv7533: Switch to devm MIPI-DSI helpers Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 06/24] drm/bridge: adv7511: Register and attach our DSI device at probe Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 07/24] drm/bridge: anx7625: Switch to devm MIPI-DSI helpers Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 08/24] drm/bridge: anx7625: Register and attach our DSI device at probe Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 09/24] drm/bridge: lt8912b: Switch to devm MIPI-DSI helpers Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 10/24] drm/bridge: lt8912b: Register and attach our DSI device at probe Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 11/24] drm/bridge: lt9611: Switch to devm MIPI-DSI helpers Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 12/24] drm/bridge: lt9611: Register and attach our DSI device at probe Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 13/24] drm/bridge: lt9611uxc: Switch to devm MIPI-DSI helpers Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 14/24] drm/bridge: lt9611uxc: Register and attach our DSI device at probe Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 15/24] drm/bridge: ps8640: Switch to devm MIPI-DSI helpers Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 16/24] drm/bridge: ps8640: Register and attach our DSI device at probe Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 17/24] drm/bridge: sn65dsi83: Switch to devm MIPI-DSI helpers Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 18/24] drm/bridge: sn65dsi83: Register and attach our DSI device at probe Maxime Ripard
2021-09-10 10:12 ` Maxime Ripard [this message]
2021-09-10 10:12 ` [PATCH v4 20/24] drm/bridge: sn65dsi86: " Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 21/24] drm/bridge: tc358775: Switch to devm MIPI-DSI helpers Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 22/24] drm/bridge: tc358775: Register and attach our DSI device at probe Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 23/24] drm/kirin: dsi: Adjust probe order Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 24/24] drm/exynos: " Maxime Ripard
2021-09-13 10:30   ` Andrzej Hajda
2021-09-17 12:35     ` Marek Szyprowski
2021-09-22  8:53       ` Maxime Ripard
2021-09-22  8:53         ` Maxime Ripard
2021-09-23  8:14         ` Marek Szyprowski
2021-09-29 21:27 ` [PATCH v4 00/24] drm/bridge: Make panel and bridge probe order consistent John Stultz
2021-09-29 21:27   ` John Stultz
2021-09-29 21:32   ` John Stultz
2021-09-29 21:32     ` John Stultz
2021-09-29 21:51     ` John Stultz
2021-09-29 21:51       ` John Stultz
2021-09-29 23:25       ` Rob Clark
2021-09-29 23:25         ` Rob Clark
2021-09-29 23:25         ` John Stultz
2021-09-29 23:25           ` John Stultz
2021-09-30  2:30         ` John Stultz
2021-09-30  2:30           ` John Stultz
2021-09-30 19:49         ` Amit Pundir
2021-09-30 19:49           ` Amit Pundir
2021-09-30 20:20           ` Caleb Connolly
2021-09-30 20:20             ` Caleb Connolly
2021-10-13 14:16             ` Maxime Ripard
2021-10-14  0:16               ` [Freedreno] " Rob Clark
2021-10-18 12:34                 ` Maxime Ripard
2021-10-18 15:55                   ` Rob Clark
2021-09-29 23:29       ` John Stultz
2021-09-29 23:29         ` John Stultz
2021-10-13 13:45         ` Maxime Ripard
2021-09-29 21:56 ` Laurent Pinchart
2021-10-03 13:25   ` Laurent Pinchart
2021-10-16 10:03 ` Sam Ravnborg
2021-10-16 18:38 ` Sam Ravnborg

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=20210910101218.1632297-20-maxime@cerno.tech \
    --to=maxime@cerno.tech \
    --cc=Laurent.pinchart@ideasonboard.com \
    --cc=a.hajda@samsung.com \
    --cc=airlied@linux.ie \
    --cc=daniel.vetter@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=freedreno@lists.freedesktop.org \
    --cc=inki.dae@samsung.com \
    --cc=jernej.skrabec@gmail.com \
    --cc=john.stultz@linaro.org \
    --cc=jonas@kwiboo.se \
    --cc=jy0922.shim@samsung.com \
    --cc=kong.kongxinwei@hisilicon.com \
    --cc=kyungmin.park@samsung.com \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=narmstrong@baylibre.com \
    --cc=puck.chen@hisilicon.com \
    --cc=robdclark@gmail.com \
    --cc=robert.foss@linaro.org \
    --cc=sam@ravnborg.org \
    --cc=sean@poorly.run \
    --cc=sw0312.kim@samsung.com \
    --cc=thierry.reding@gmail.com \
    --cc=tiantao6@hisilicon.com \
    --cc=tzimmermann@suse.de \
    --cc=xinliang.liu@linaro.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.