mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-29 18:19:02 +00:00
20ea6adbf1
Build system: x86_64 Build-tested: bcm2708, bcm2709, bcm2710, bcm2711 Run-tested: bcm2708/RPiB+, bcm2709/RPi3B, bcm2710/RPi3B, bcm2711/RPi4B Signed-off-by: Marty Jones <mj8263788@gmail.com> Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
49 lines
1.6 KiB
Diff
49 lines
1.6 KiB
Diff
From b5a2faf6deb6e7accec2c121840a72bdf6e97b4c 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
|
|
|
|
Mapping to the drm_bridge flag pre_enable_upstream_first,
|
|
add a new flag prepare_upstream_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>
|
|
---
|
|
drivers/gpu/drm/bridge/panel.c | 3 +++
|
|
include/drm/drm_panel.h | 10 ++++++++++
|
|
2 files changed, 13 insertions(+)
|
|
|
|
--- a/drivers/gpu/drm/bridge/panel.c
|
|
+++ b/drivers/gpu/drm/bridge/panel.c
|
|
@@ -225,6 +225,9 @@ struct drm_bridge *drm_panel_bridge_add_
|
|
panel_bridge->bridge.ops = DRM_BRIDGE_OP_MODES;
|
|
panel_bridge->bridge.type = connector_type;
|
|
|
|
+ panel_bridge->bridge.pre_enable_upstream_first =
|
|
+ panel->prepare_upstream_first;
|
|
+
|
|
drm_bridge_add(&panel_bridge->bridge);
|
|
|
|
return &panel_bridge->bridge;
|
|
--- a/include/drm/drm_panel.h
|
|
+++ b/include/drm/drm_panel.h
|
|
@@ -179,6 +179,16 @@ struct drm_panel {
|
|
* Panel entry in registry.
|
|
*/
|
|
struct list_head list;
|
|
+
|
|
+ /**
|
|
+ * @prepare_upstream_first:
|
|
+ *
|
|
+ * The upstream 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;
|
|
};
|
|
|
|
void drm_panel_init(struct drm_panel *panel, struct device *dev,
|