-From 9ac3eedd8cda7d5f2429edc0bdba137c35e07157 Mon Sep 17 00:00:00 2001
+From 5ea6b17027810ffbdb5bea7d0a2b1d312dd1021c Mon Sep 17 00:00:00 2001
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
-Date: Wed, 23 Feb 2022 15:36:56 +0000
-Subject: [PATCH] drm/panel: Add prepare_upstream_first flag to
- drm_panel
+Date: Mon, 5 Dec 2022 17:33:27 +0000
+Subject: [PATCH] drm/panel: Add prepare_prev_first flag to drm_panel
-Mapping to the drm_bridge flag pre_enable_upstream_first,
-add a new flag prepare_upstream_first to drm_panel to allow
+Mapping to the drm_bridge flag pre_enable_prev_first,
+add a new flag prepare_prev_first to drm_panel to allow
the panel driver to request that the upstream bridge should
be pre_enabled before the panel prepare.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
+Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
+Link: https://lore.kernel.org/r/20221205173328.1395350-6-dave.stevenson@raspberrypi.com
+Signed-off-by: Maxime Ripard <maxime@cerno.tech>
---
- drivers/gpu/drm/bridge/panel.c | 3 +++
+ drivers/gpu/drm/bridge/panel.c | 2 ++
include/drm/drm_panel.h | 10 ++++++++++
- 2 files changed, 13 insertions(+)
+ 2 files changed, 12 insertions(+)
--- a/drivers/gpu/drm/bridge/panel.c
+++ b/drivers/gpu/drm/bridge/panel.c
-@@ -258,6 +258,9 @@ struct drm_bridge *drm_panel_bridge_add_
- panel_bridge->bridge.ops = DRM_BRIDGE_OP_MODES;
- panel_bridge->bridge.type = connector_type;
+@@ -368,6 +368,8 @@ struct drm_bridge *devm_drm_panel_bridge
+ devres_free(ptr);
+ }
-+ panel_bridge->bridge.pre_enable_upstream_first =
-+ panel->prepare_upstream_first;
++ bridge->pre_enable_prev_first = panel->prepare_prev_first;
+
- drm_bridge_add(&panel_bridge->bridge);
-
- return &panel_bridge->bridge;
+ return bridge;
+ }
+ EXPORT_SYMBOL(devm_drm_panel_bridge_add_typed);
--- a/include/drm/drm_panel.h
+++ b/include/drm/drm_panel.h
@@ -196,6 +196,16 @@ struct drm_panel {
struct list_head list;
+
+ /**
-+ * @prepare_upstream_first:
++ * @prepare_prev_first:
+ *
-+ * The upstream controller should be prepared first, before the prepare
++ * The previous controller should be prepared first, before the prepare
+ * for the panel is called. This is largely required for DSI panels
+ * where the DSI host controller should be initialised to LP-11 before
+ * the panel is powered up.
+ */
-+ bool prepare_upstream_first;
++ bool prepare_prev_first;
};
void drm_panel_init(struct drm_panel *panel, struct device *dev,