LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Maxime Ripard <maxime@cerno.tech>
To: Robert Foss <robert.foss@linaro.org>,
	Andrzej Hajda <a.hajda@samsung.com>,
	Daniel Vetter <daniel.vetter@intel.com>,
	David Airlie <airlied@linux.ie>, Sam Ravnborg <sam@ravnborg.org>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Maxime Ripard <maxime@cerno.tech>,
	Neil Armstrong <narmstrong@baylibre.com>,
	Jonas Karlman <jonas@kwiboo.se>,
	Jernej Skrabec <jernej.skrabec@gmail.com>,
	Thierry Reding <thierry.reding@gmail.com>,
	Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org
Subject: [PATCH 05/10] drm/panel: Create attach and detach callbacks
Date: Tue, 20 Jul 2021 15:45:20 +0200	[thread overview]
Message-ID: <20210720134525.563936-6-maxime@cerno.tech> (raw)
In-Reply-To: <20210720134525.563936-1-maxime@cerno.tech>

In order to make the probe order expectation more consistent between
bridges, let's create attach and detach hooks for the panels as well to
match what is there for bridges.

Signed-off-by: Maxime Ripard <maxime@cerno.tech>
---
 drivers/gpu/drm/drm_panel.c | 20 ++++++++++++++++++++
 include/drm/drm_panel.h     |  6 ++++++
 2 files changed, 26 insertions(+)

diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c
index f634371c717a..23bca798a2f3 100644
--- a/drivers/gpu/drm/drm_panel.c
+++ b/drivers/gpu/drm/drm_panel.c
@@ -223,6 +223,26 @@ int drm_panel_get_modes(struct drm_panel *panel,
 }
 EXPORT_SYMBOL(drm_panel_get_modes);
 
+int drm_panel_attach(struct drm_panel *panel)
+{
+	if (!panel)
+		return -EINVAL;
+
+	if (panel->funcs && panel->funcs->attach)
+		return panel->funcs->attach(panel);
+
+	return -EOPNOTSUPP;
+}
+
+void drm_panel_detach(struct drm_panel *panel)
+{
+	if (!panel)
+		return;
+
+	if (panel->funcs && panel->funcs->detach)
+		panel->funcs->detach(panel);
+}
+
 #ifdef CONFIG_OF
 /**
  * of_drm_find_panel - look up a panel using a device tree node
diff --git a/include/drm/drm_panel.h b/include/drm/drm_panel.h
index 4602f833eb51..b9201d520754 100644
--- a/include/drm/drm_panel.h
+++ b/include/drm/drm_panel.h
@@ -68,6 +68,9 @@ enum drm_panel_orientation;
  * does not need to implement the functionality to enable/disable backlight.
  */
 struct drm_panel_funcs {
+	int (*attach)(struct drm_panel *panel);
+	void (*detach)(struct drm_panel *panel);
+
 	/**
 	 * @prepare:
 	 *
@@ -180,6 +183,9 @@ void drm_panel_init(struct drm_panel *panel, struct device *dev,
 void drm_panel_add(struct drm_panel *panel);
 void drm_panel_remove(struct drm_panel *panel);
 
+int drm_panel_attach(struct drm_panel *panel);
+void drm_panel_detach(struct drm_panel *panel);
+
 int drm_panel_prepare(struct drm_panel *panel);
 int drm_panel_unprepare(struct drm_panel *panel);
 
-- 
2.31.1


  parent reply	other threads:[~2021-07-20 13:53 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-20 13:45 [PATCH 00/10] drm/bridge: Make panel and bridge probe order consistent Maxime Ripard
2021-07-20 13:45 ` [PATCH 01/10] Revert "drm/vc4: dsi: Only register our component once a DSI device is attached" Maxime Ripard
2021-07-20 13:45 ` [PATCH 02/10] drm/bridge: Add a function to abstract away panels Maxime Ripard
2021-07-22  7:49   ` Jagan Teki
2021-07-20 13:45 ` [PATCH 03/10] drm/bridge: Add documentation sections Maxime Ripard
2021-07-20 13:45 ` [PATCH 04/10] drm/bridge: Document the probe issue with MIPI-DSI bridges Maxime Ripard
2021-07-21 12:05   ` Daniel Vetter
2021-07-21 12:06     ` Daniel Vetter
2021-07-26 15:16     ` Maxime Ripard
2021-07-27  9:20       ` Daniel Vetter
2021-07-28 13:27         ` Maxime Ripard
2021-07-27  9:42   ` Jagan Teki
2021-07-28 13:35     ` Maxime Ripard
2021-08-05 12:19       ` Jagan Teki
2021-07-20 13:45 ` Maxime Ripard [this message]
2021-07-22  7:53   ` [PATCH 05/10] drm/panel: Create attach and detach callbacks Jagan Teki
2021-07-20 13:45 ` [PATCH 06/10] drm/bridge: panel: Call attach and detach for the panel Maxime Ripard
2021-07-20 13:45 ` [PATCH 07/10] drm/vc4: dsi: Switch to drm_of_get_next Maxime Ripard
2021-07-20 13:45 ` [PATCH 08/10] drm/panel: raspberrypi-touchscreen: Prevent double-free Maxime Ripard
     [not found]   ` <YPcFrKLq1dhTcOUL@ravnborg.org>
2021-07-22  9:38     ` Maxime Ripard
2021-07-20 13:45 ` [PATCH 09/10] drm/panel: raspberrypi-touchscreen: Use the attach hook Maxime Ripard
2021-07-20 13:45 ` [PATCH 10/10] drm/panel: raspberrypi-touchscreen: Remove MIPI-DSI driver Maxime Ripard

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=20210720134525.563936-6-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=jernej.skrabec@gmail.com \
    --cc=jonas@kwiboo.se \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=narmstrong@baylibre.com \
    --cc=robert.foss@linaro.org \
    --cc=sam@ravnborg.org \
    --cc=thierry.reding@gmail.com \
    --cc=tzimmermann@suse.de \
    --subject='Re: [PATCH 05/10] drm/panel: Create attach and detach callbacks' \
    /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

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).