2023-07-20 09:51:10 +00:00
|
|
|
From 5ea6b17027810ffbdb5bea7d0a2b1d312dd1021c Mon Sep 17 00:00:00 2001
|
2023-06-08 17:49:36 +00:00
|
|
|
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
2023-07-20 09:51:10 +00:00
|
|
|
Date: Mon, 5 Dec 2022 17:33:27 +0000
|
|
|
|
Subject: [PATCH] drm/panel: Add prepare_prev_first flag to drm_panel
|
2023-06-08 17:49:36 +00:00
|
|
|
|
2023-07-20 09:51:10 +00:00
|
|
|
Mapping to the drm_bridge flag pre_enable_prev_first,
|
|
|
|
add a new flag prepare_prev_first to drm_panel to allow
|
2023-06-08 17:49:36 +00:00
|
|
|
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>
|
2023-07-20 09:51:10 +00:00
|
|
|
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>
|
2023-06-08 17:49:36 +00:00
|
|
|
---
|
2023-07-20 09:51:10 +00:00
|
|
|
drivers/gpu/drm/bridge/panel.c | 2 ++
|
2023-06-08 17:49:36 +00:00
|
|
|
include/drm/drm_panel.h | 10 ++++++++++
|
2023-07-20 09:51:10 +00:00
|
|
|
2 files changed, 12 insertions(+)
|
2023-06-08 17:49:36 +00:00
|
|
|
|
|
|
|
--- a/drivers/gpu/drm/bridge/panel.c
|
|
|
|
+++ b/drivers/gpu/drm/bridge/panel.c
|
2023-07-20 09:51:10 +00:00
|
|
|
@@ -368,6 +368,8 @@ struct drm_bridge *devm_drm_panel_bridge
|
|
|
|
devres_free(ptr);
|
|
|
|
}
|
2023-06-08 17:49:36 +00:00
|
|
|
|
2023-07-20 09:51:10 +00:00
|
|
|
+ bridge->pre_enable_prev_first = panel->prepare_prev_first;
|
2023-06-08 17:49:36 +00:00
|
|
|
+
|
2023-07-20 09:51:10 +00:00
|
|
|
return bridge;
|
|
|
|
}
|
|
|
|
EXPORT_SYMBOL(devm_drm_panel_bridge_add_typed);
|
2023-06-08 17:49:36 +00:00
|
|
|
--- a/include/drm/drm_panel.h
|
|
|
|
+++ b/include/drm/drm_panel.h
|
|
|
|
@@ -196,6 +196,16 @@ struct drm_panel {
|
|
|
|
* Panel entry in registry.
|
|
|
|
*/
|
|
|
|
struct list_head list;
|
|
|
|
+
|
|
|
|
+ /**
|
2023-07-20 09:51:10 +00:00
|
|
|
+ * @prepare_prev_first:
|
2023-06-08 17:49:36 +00:00
|
|
|
+ *
|
2023-07-20 09:51:10 +00:00
|
|
|
+ * The previous controller should be prepared first, before the prepare
|
2023-06-08 17:49:36 +00:00
|
|
|
+ * 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.
|
|
|
|
+ */
|
2023-07-20 09:51:10 +00:00
|
|
|
+ bool prepare_prev_first;
|
2023-06-08 17:49:36 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
void drm_panel_init(struct drm_panel *panel, struct device *dev,
|