Skip to contentSkip to conversation

drm/tegra: dsi: remove tegra_output_probe use

RFC PATCH In review Svyatoslav Ryhel 2 participants 5 messages Mar 5 – Mar 12

Subsystems (5)
lore
Share & tools
lore
#0 lore raw

cover drm/tegra: dsi: remove tegra_output_probe use

The tegra_output_probe() function parses DC, DSI, HDMI, and SOR nodes for panel phandles, OF graph endpoints, EDID, HPD GPIOs, and DDC buses. However, this function is redundant for DSI controllers that define the panel as a child node.

Furthermore, it creates conflicts with modern dual-mode panel bindings that use OF graph links to both DSI controllers. The function incorrectly treats these links as standard panel links and attempts to resolve a panel that should not be handled there. For example, this causes the Mi Pad panel to fail initialization.

Testing shows that bypassing this function allows the Mi Pad to work correctly while maintaining compatibility with other Tegra20 and Tegra114 DSI devices.

Svyatoslav Ryhel (2):
dt-bindings: display: tegra: document Tegra20 DSI port [RFC] drm/tegra: dsi: remove tegra_output_probe use

 .../bindings/display/tegra/nvidia,tegra20-dsi.yaml          | 6 ++++++
 drivers/gpu/drm/tegra/dsi.c                                 | 4 ----
 2 files changed, 6 insertions(+), 4 deletions(-)
Signature · 1 line
2.51.0
#1 lore raw

PATCH 1/2 dt-bindings: display: tegra: document Tegra20 DSI port

Document the optional port node, which is required for correctly modeling a dual-mode panel.

---
 .../bindings/display/tegra/nvidia,tegra20-dsi.yaml          | 6 ++++++
 1 file changed, 6 insertions(+)
Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-dsi.yaml +6 -0
index 59e1dc0813e7..0f4837648d17 100644
@@ -83,6 +83,12 @@ properties:
       gang up with in order to support up to 8 data lanes
     $ref: /schemas/types.yaml#/definitions/phandle
 
+  port:
+    description: specifies the connection port for the dual-mode panel
+      and is required only when the panel is operating in dual-mode
+      configuration.
+    $ref: /schemas/graph.yaml#/properties/port
+
 allOf:
   - $ref: ../dsi-controller.yaml#
   - if:
Signature · 1 line
2.51.0
maintainer
#2 lore raw

Re: [PATCH v1 1/2] dt-bindings: display: tegra: document Tegra20 DSI port

Quoted 2 lines · Svyatoslav Ryhel

Document the optional port node, which is required for correctly modeling a dual-mode panel.

Dual mode as in command mode and sync mode? Or do you mean dual link like panel-common-dual.yaml defines?

Quoted 26 lines
---
 .../bindings/display/tegra/nvidia,tegra20-dsi.yaml          | 6 ++++++
 1 file changed, 6 insertions(+)
Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-dsi.yaml +6 -0
index 59e1dc0813e7..0f4837648d17 100644
@@ -83,6 +83,12 @@ properties:
       gang up with in order to support up to 8 data lanes
     $ref: /schemas/types.yaml#/definitions/phandle
 
+  port:
+    description: specifies the connection port for the dual-mode panel
+      and is required only when the panel is operating in dual-mode
+      configuration.
+    $ref: /schemas/graph.yaml#/properties/port
+
 allOf:
   - $ref: ../dsi-controller.yaml#
   - if:
Signature · 1 line
2.51.0
#3 lore raw

Re: [PATCH v1 1/2] dt-bindings: display: tegra: document Tegra20 DSI port

чт, 12 бер. 2026 р. о 16:57 Rob Herring <[email protected]> пише:

Quoted 8 lines · Svyatoslav Ryhel
Quoted 2 lines

Document the optional port node, which is required for correctly modeling a dual-mode panel.

Dual mode as in command mode and sync mode? Or do you mean dual link like panel-common-dual.yaml defines?

Dual link like in panel-common-dual but that panel-common-dual should not be suitable for DSI controller/host. Tegra DSI expects panel to be defined as in dsi-controller.yaml while this port node is solely to cover dual-link mode panels.

Command mode and video/sync mode usually refer to how driver should work and usually are not mentioned in the schema.

Quoted 26 lines
Quoted 26 lines
---
 .../bindings/display/tegra/nvidia,tegra20-dsi.yaml          | 6 ++++++
 1 file changed, 6 insertions(+)
Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-dsi.yaml +6 -1
index 59e1dc0813e7..0f4837648d17 100644
@@ -83,6 +83,12 @@ properties:
       gang up with in order to support up to 8 data lanes
     $ref: /schemas/types.yaml#/definitions/phandle
 
+  port:
+    description: specifies the connection port for the dual-mode panel
+      and is required only when the panel is operating in dual-mode
+      configuration.
+    $ref: /schemas/graph.yaml#/properties/port
+
 allOf:
   - $ref: ../dsi-controller.yaml#
   - if:
--

2.51.0

#4 lore raw

RFC PATCH 2/2 drm/tegra: dsi: remove tegra_output_probe use

In reply to Svyatoslav Ryhel

The tegra_output_probe() function parses DC, DSI, HDMI, and SOR nodes for panel phandles, OF graph endpoints, EDID, HPD GPIOs, and DDC buses. However, this function is redundant for DSI controllers that define the panel as a child node.

Furthermore, it creates conflicts with modern dual-mode panel bindings that use OF graph links to both DSI controllers. The function incorrectly treats these links as standard panel links and attempts to resolve a panel that should not be handled there. For example, this causes the Mi Pad panel to fail initialization.

Testing shows that bypassing this function allows the Mi Pad to work correctly while maintaining compatibility with other Tegra20 and Tegra114 DSI devices.

---
 drivers/gpu/drm/tegra/dsi.c | 4 ----
 1 file changed, 4 deletions(-)
drivers/gpu/drm/tegra/dsi.c +0 -4
index 55259b68c933..5fbce17ea1fa 100644
@@ -1594,10 +1594,6 @@ static int tegra_dsi_probe(struct platform_device *pdev)
 	if (err < 0)
 		return err;
 
-	err = tegra_output_probe(&dsi->output);
-	if (err < 0)
-		return err;
-
 	dsi->output.connector.polled = DRM_CONNECTOR_POLL_HPD;
 
 	/*
Signature · 1 line
2.51.0