public inbox for drm-ai-reviews@public-inbox.freedesktop.org
 help / color / mirror / Atom feed
* [PATCH v4 0/2] Enable mdss1 Display Port for Qualcomm lemans-ride platform
@ 2026-02-26 11:13 Mani Chandana Ballary Kuntumalla
  2026-02-26 11:13 ` [PATCH v4 1/2] arm64: dts: qcom: lemans: add mdss1 display device nodes Mani Chandana Ballary Kuntumalla
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Mani Chandana Ballary Kuntumalla @ 2026-02-26 11:13 UTC (permalink / raw)
  To: dmitry.baryshkov, marijn.suijten, swboyd, mripard, abel.vesa,
	andersson, konradybcio, robh, krzk+dt, conor+dt, robin.clark,
	jessica.zhang, abhinav.kumar, sean, airlied, simona,
	alex.vinarskis
  Cc: Mani Chandana Ballary Kuntumalla, linux-arm-msm, devicetree,
	linux-kernel, linux-arm-kernel, freedreno, quic_rajeevny,
	quic_vproddut, dri-devel, quic_riteshk

This series adds the DPTX0 and DPTX1 nodes, as a part of mdss1
on Qualcomm lemans SoC. It also enables Display Port on Qualcomm
lemans-ride platform.

---
This series is dependent on below series:
https://lore.kernel.org/all/20260128114853.2543416-1-quic_riteshk@quicinc.com/

Change in v4:
- Moved the OPP tables for DP and MDP one level up to make them common for both nodes. [Dmitry]
- Added an explanation for enabling dispcc1 in the commit message. [Dmitry]
- Removed unnecessary blank lines preceding 'reg'. [Konrad]
- Link to v3: https://lore.kernel.org/all/20260217071420.2240380-1-mkuntuma@qti.qualcomm.com/

Change in v3:
- Patchset v2 [1/3] got merged
  https://gitlab.freedesktop.org/lumag/msm/-/commit/1338e8ae4084
- Rebased on top of linux-next and picked the latest patch from the dependent series.
- Removed additional instance of opp table [Dmitry]
- Link to v2: https://lore.kernel.org/all/20251125105622.1755651-1-quic_mkuntuma@quicinc.com/

Change in v2:
- Added fixes tag for the DP driver patch [Dmitry]
- Included below patch in this series after addressing comments [Dmitry and Konrad]
  https://lore.kernel.org/all/20250925-lemans_dual-v1-1-9c371803198d@oss.qualcomm.com/
	- Removed the misleading comment: "same path used twice" [Konrad]
	- Removed unused label in 'display-controller' [Dmitry]
- Removed extra zeroes in dispcc1 node [Konrad]
- Enbaled dispcc1 by default in main dtsi file [Dmitry]
- Added EDP ref clock and updated dependency series.
- Link to v1: https://lore.kernel.org/all/20250926085956.2346179-1-quic_mkuntuma@quicinc.com/

---
Mani Chandana Ballary Kuntumalla (2):
  arm64: dts: qcom: lemans: add mdss1 display device nodes
  arm64: dts: qcom: lemans-ride: Enable mdss1 display Port

 .../boot/dts/qcom/lemans-ride-common.dtsi     |  80 ++++
 arch/arm64/boot/dts/qcom/lemans.dtsi          | 381 ++++++++++++++----
 2 files changed, 385 insertions(+), 76 deletions(-)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v4 1/2] arm64: dts: qcom: lemans: add mdss1 display device nodes
  2026-02-26 11:13 [PATCH v4 0/2] Enable mdss1 Display Port for Qualcomm lemans-ride platform Mani Chandana Ballary Kuntumalla
@ 2026-02-26 11:13 ` Mani Chandana Ballary Kuntumalla
  2026-02-26 14:43   ` Konrad Dybcio
  2026-02-27  2:26   ` Claude review: " Claude Code Review Bot
  2026-02-26 11:13 ` [PATCH v4 2/2] arm64: dts: qcom: lemans-ride: Enable mdss1 display Port Mani Chandana Ballary Kuntumalla
  2026-02-27  2:26 ` Claude review: Enable mdss1 Display Port for Qualcomm lemans-ride platform Claude Code Review Bot
  2 siblings, 2 replies; 8+ messages in thread
From: Mani Chandana Ballary Kuntumalla @ 2026-02-26 11:13 UTC (permalink / raw)
  To: dmitry.baryshkov, marijn.suijten, swboyd, mripard, abel.vesa,
	andersson, konradybcio, robh, krzk+dt, conor+dt, robin.clark,
	jessica.zhang, abhinav.kumar, sean, airlied, simona,
	alex.vinarskis
  Cc: Mani Chandana Ballary Kuntumalla, linux-arm-msm, devicetree,
	linux-kernel, linux-arm-kernel, freedreno, quic_rajeevny,
	quic_vproddut, dri-devel, quic_riteshk, Mahadevan P

Add devicetree changes to enable second Mobile Display Subsystem (mdss1),
Display Processing Unit(DPU), Display Port(DP), Display clock controller
(dispcc1) and eDP PHYs on the Qualcomm Lemans platform.

Signed-off-by: Mahadevan P <mahadevan.p@oss.qualcomm.com>
Signed-off-by: Mani Chandana Ballary Kuntumalla <quic_mkuntuma@quicinc.com>
---
 arch/arm64/boot/dts/qcom/lemans.dtsi | 381 +++++++++++++++++++++------
 1 file changed, 305 insertions(+), 76 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qcom/lemans.dtsi
index 1da8e7fb6775..fd4d524d0890 100644
--- a/arch/arm64/boot/dts/qcom/lemans.dtsi
+++ b/arch/arm64/boot/dts/qcom/lemans.dtsi
@@ -507,6 +507,30 @@ opp-2553600000 {
 		};
 	};
 
+	dp_opp_table: opp-table-dp {
+		compatible = "operating-points-v2";
+
+		opp-160000000 {
+			opp-hz = /bits/ 64 <160000000>;
+			required-opps = <&rpmhpd_opp_low_svs>;
+		};
+
+		opp-270000000 {
+			opp-hz = /bits/ 64 <270000000>;
+			required-opps = <&rpmhpd_opp_svs>;
+		};
+
+		opp-540000000 {
+			opp-hz = /bits/ 64 <540000000>;
+			required-opps = <&rpmhpd_opp_svs_l1>;
+		};
+
+		opp-810000000 {
+			opp-hz = /bits/ 64 <810000000>;
+			required-opps = <&rpmhpd_opp_nom>;
+		};
+	};
+
 	dummy-sink {
 		compatible = "arm,coresight-dummy-sink";
 
@@ -539,6 +563,30 @@ mc_virt: interconnect-mc-virt {
 		qcom,bcm-voters = <&apps_bcm_voter>;
 	};
 
+	mdss_mdp_opp_table: opp-table-mdp {
+		compatible = "operating-points-v2";
+
+		opp-375000000 {
+			opp-hz = /bits/ 64 <375000000>;
+			required-opps = <&rpmhpd_opp_svs_l1>;
+		};
+
+		opp-500000000 {
+			opp-hz = /bits/ 64 <500000000>;
+			required-opps = <&rpmhpd_opp_nom>;
+		};
+
+		opp-575000000 {
+			opp-hz = /bits/ 64 <575000000>;
+			required-opps = <&rpmhpd_opp_turbo>;
+		};
+
+		opp-650000000 {
+			opp-hz = /bits/ 64 <650000000>;
+			required-opps = <&rpmhpd_opp_turbo_l1>;
+		};
+	};
+
 	/* Will be updated by the bootloader. */
 	memory@80000000 {
 		device_type = "memory";
@@ -5065,7 +5113,7 @@ mdss0_mdp: display-controller@ae01000 {
 				assigned-clocks = <&dispcc0 MDSS_DISP_CC_MDSS_VSYNC_CLK>;
 				assigned-clock-rates = <19200000>;
 
-				operating-points-v2 = <&mdss0_mdp_opp_table>;
+				operating-points-v2 = <&mdss_mdp_opp_table>;
 				power-domains = <&rpmhpd SA8775P_MMCX>;
 
 				interrupt-parent = <&mdss0>;
@@ -5107,30 +5155,6 @@ dpu_intf2_out: endpoint {
 						};
 					};
 				};
-
-				mdss0_mdp_opp_table: opp-table {
-					compatible = "operating-points-v2";
-
-					opp-375000000 {
-						opp-hz = /bits/ 64 <375000000>;
-						required-opps = <&rpmhpd_opp_svs_l1>;
-					};
-
-					opp-500000000 {
-						opp-hz = /bits/ 64 <500000000>;
-						required-opps = <&rpmhpd_opp_nom>;
-					};
-
-					opp-575000000 {
-						opp-hz = /bits/ 64 <575000000>;
-						required-opps = <&rpmhpd_opp_turbo>;
-					};
-
-					opp-650000000 {
-						opp-hz = /bits/ 64 <650000000>;
-						required-opps = <&rpmhpd_opp_turbo_l1>;
-					};
-				};
 			};
 
 			mdss0_dsi0: dsi@ae94000 {
@@ -5404,30 +5428,6 @@ port@1 {
 						mdss0_dp0_out: endpoint { };
 					};
 				};
-
-				dp_opp_table: opp-table {
-					compatible = "operating-points-v2";
-
-					opp-160000000 {
-						opp-hz = /bits/ 64 <160000000>;
-						required-opps = <&rpmhpd_opp_low_svs>;
-					};
-
-					opp-270000000 {
-						opp-hz = /bits/ 64 <270000000>;
-						required-opps = <&rpmhpd_opp_svs>;
-					};
-
-					opp-540000000 {
-						opp-hz = /bits/ 64 <540000000>;
-						required-opps = <&rpmhpd_opp_svs_l1>;
-					};
-
-					opp-810000000 {
-						opp-hz = /bits/ 64 <810000000>;
-						required-opps = <&rpmhpd_opp_nom>;
-					};
-				};
 			};
 
 			mdss0_dp1: displayport-controller@af5c000 {
@@ -5467,7 +5467,7 @@ mdss0_dp1: displayport-controller@af5c000 {
 				phys = <&mdss0_dp1_phy>;
 				phy-names = "dp";
 
-				operating-points-v2 = <&dp1_opp_table>;
+				operating-points-v2 = <&dp_opp_table>;
 				power-domains = <&rpmhpd SA8775P_MMCX>;
 
 				#sound-dai-cells = <0>;
@@ -5492,30 +5492,6 @@ port@1 {
 						mdss0_dp1_out: endpoint { };
 					};
 				};
-
-				dp1_opp_table: opp-table {
-					compatible = "operating-points-v2";
-
-					opp-160000000 {
-						opp-hz = /bits/ 64 <160000000>;
-						required-opps = <&rpmhpd_opp_low_svs>;
-					};
-
-					opp-270000000 {
-						opp-hz = /bits/ 64 <270000000>;
-						required-opps = <&rpmhpd_opp_svs>;
-					};
-
-					opp-540000000 {
-						opp-hz = /bits/ 64 <540000000>;
-						required-opps = <&rpmhpd_opp_svs_l1>;
-					};
-
-					opp-810000000 {
-						opp-hz = /bits/ 64 <810000000>;
-						required-opps = <&rpmhpd_opp_nom>;
-					};
-				};
 			};
 		};
 
@@ -7048,6 +7024,259 @@ compute-cb@3 {
 			};
 		};
 
+		mdss1: display-subsystem@22000000 {
+			compatible = "qcom,sa8775p-mdss";
+			reg = <0x0 0x22000000 0x0 0x1000>;
+			reg-names = "mdss";
+
+			interconnects = <&mmss_noc MASTER_MDP_CORE1_0 QCOM_ICC_TAG_ALWAYS
+					 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+					<&mmss_noc MASTER_MDP_CORE1_1 QCOM_ICC_TAG_ALWAYS
+					 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+					<&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
+					 &config_noc SLAVE_DISPLAY_CFG QCOM_ICC_TAG_ACTIVE_ONLY>;
+			interconnect-names = "mdp0-mem",
+					     "mdp1-mem",
+					     "cpu-cfg";
+
+			resets = <&dispcc1 MDSS_DISP_CC_MDSS_CORE_BCR>;
+
+			power-domains = <&dispcc1 MDSS_DISP_CC_MDSS_CORE_GDSC>;
+
+			clocks = <&dispcc1 MDSS_DISP_CC_MDSS_AHB_CLK>,
+				 <&gcc GCC_DISP1_HF_AXI_CLK>,
+				 <&dispcc1 MDSS_DISP_CC_MDSS_MDP_CLK>;
+
+			interrupts = <GIC_SPI 865 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-controller;
+			#interrupt-cells = <1>;
+
+			iommus = <&apps_smmu 0x1800 0x402>;
+
+			#address-cells = <2>;
+			#size-cells = <2>;
+			ranges;
+
+			status = "disabled";
+
+			display-controller@22001000 {
+				compatible = "qcom,sa8775p-dpu";
+				reg = <0x0 0x22001000 0x0 0x8f000>,
+				      <0x0 0x220b0000 0x0 0x3000>;
+				reg-names = "mdp", "vbif";
+
+				clocks = <&gcc GCC_DISP1_HF_AXI_CLK>,
+					 <&dispcc1 MDSS_DISP_CC_MDSS_AHB_CLK>,
+					 <&dispcc1 MDSS_DISP_CC_MDSS_MDP_LUT_CLK>,
+					 <&dispcc1 MDSS_DISP_CC_MDSS_MDP_CLK>,
+					 <&dispcc1 MDSS_DISP_CC_MDSS_VSYNC_CLK>;
+				clock-names = "nrt_bus",
+					      "iface",
+					      "lut",
+					      "core",
+					      "vsync";
+
+				assigned-clocks = <&dispcc1 MDSS_DISP_CC_MDSS_VSYNC_CLK>;
+				assigned-clock-rates = <19200000>;
+
+				operating-points-v2 = <&mdss_mdp_opp_table>;
+				power-domains = <&rpmhpd SA8775P_MMCX>;
+
+				interrupt-parent = <&mdss1>;
+				interrupts = <0>;
+
+				ports {
+					#address-cells = <1>;
+					#size-cells = <0>;
+
+					port@0 {
+						reg = <0>;
+						dpu1_intf0_out: endpoint {
+							remote-endpoint = <&mdss1_dp0_in>;
+						};
+					};
+
+					port@1 {
+						reg = <1>;
+						dpu1_intf4_out: endpoint {
+							remote-endpoint = <&mdss1_dp1_in>;
+						};
+					};
+				};
+			};
+
+			mdss1_dp0_phy: phy@220c2a00 {
+				compatible = "qcom,sa8775p-edp-phy";
+				reg = <0x0 0x220c2a00 0x0 0x200>,
+				      <0x0 0x220c2200 0x0 0xd0>,
+				      <0x0 0x220c2600 0x0 0xd0>,
+				      <0x0 0x220c2000 0x0 0x1c8>;
+
+				clocks = <&dispcc1 MDSS_DISP_CC_MDSS_DPTX0_AUX_CLK>,
+					 <&dispcc1 MDSS_DISP_CC_MDSS_AHB_CLK>,
+					 <&gcc GCC_EDP_REF_CLKREF_EN>;
+				clock-names = "aux",
+					      "cfg_ahb",
+					      "ref";
+
+				#clock-cells = <1>;
+				#phy-cells = <0>;
+
+				status = "disabled";
+			};
+
+			mdss1_dp1_phy: phy@220c5a00 {
+				compatible = "qcom,sa8775p-edp-phy";
+				reg = <0x0 0x220c5a00 0x0 0x200>,
+				      <0x0 0x220c5200 0x0 0xd0>,
+				      <0x0 0x220c5600 0x0 0xd0>,
+				      <0x0 0x220c5000 0x0 0x1c8>;
+
+				clocks = <&dispcc1 MDSS_DISP_CC_MDSS_DPTX1_AUX_CLK>,
+					 <&dispcc1 MDSS_DISP_CC_MDSS_AHB_CLK>,
+					 <&gcc GCC_EDP_REF_CLKREF_EN>;
+				clock-names = "aux",
+					      "cfg_ahb",
+					      "ref";
+
+				#clock-cells = <1>;
+				#phy-cells = <0>;
+
+				status = "disabled";
+			};
+
+			mdss1_dp0: displayport-controller@22154000 {
+				compatible = "qcom,sa8775p-dp";
+				reg = <0x0 0x22154000 0x0 0x104>,
+				      <0x0 0x22154200 0x0 0x0c0>,
+				      <0x0 0x22155000 0x0 0x770>,
+				      <0x0 0x22156000 0x0 0x09c>,
+				      <0x0 0x22157000 0x0 0x09c>,
+				      <0x0 0x22158000 0x0 0x09c>,
+				      <0x0 0x22159000 0x0 0x09c>,
+				      <0x0 0x2215a000 0x0 0x23c>,
+				      <0x0 0x2215b000 0x0 0x23c>;
+
+				interrupt-parent = <&mdss1>;
+				interrupts = <12>;
+
+				clocks = <&dispcc1 MDSS_DISP_CC_MDSS_AHB_CLK>,
+					 <&dispcc1 MDSS_DISP_CC_MDSS_DPTX0_AUX_CLK>,
+					 <&dispcc1 MDSS_DISP_CC_MDSS_DPTX0_LINK_CLK>,
+					 <&dispcc1 MDSS_DISP_CC_MDSS_DPTX0_LINK_INTF_CLK>,
+					 <&dispcc1 MDSS_DISP_CC_MDSS_DPTX0_PIXEL0_CLK>,
+					 <&dispcc1 MDSS_DISP_CC_MDSS_DPTX0_PIXEL1_CLK>,
+					 <&dispcc1 MDSS_DISP_CC_MDSS_DPTX0_PIXEL2_CLK>,
+					 <&dispcc1 MDSS_DISP_CC_MDSS_DPTX0_PIXEL3_CLK>;
+				clock-names = "core_iface",
+					      "core_aux",
+					      "ctrl_link",
+					      "ctrl_link_iface",
+					      "stream_pixel",
+					      "stream_1_pixel",
+					      "stream_2_pixel",
+					      "stream_3_pixel";
+				assigned-clocks = <&dispcc1 MDSS_DISP_CC_MDSS_DPTX0_LINK_CLK_SRC>,
+						  <&dispcc1 MDSS_DISP_CC_MDSS_DPTX0_PIXEL0_CLK_SRC>,
+						  <&dispcc1 MDSS_DISP_CC_MDSS_DPTX0_PIXEL1_CLK_SRC>,
+						  <&dispcc1 MDSS_DISP_CC_MDSS_DPTX0_PIXEL2_CLK_SRC>,
+						  <&dispcc1 MDSS_DISP_CC_MDSS_DPTX0_PIXEL3_CLK_SRC>;
+				assigned-clock-parents = <&mdss1_dp0_phy 0>,
+							 <&mdss1_dp0_phy 1>,
+							 <&mdss1_dp0_phy 1>,
+							 <&mdss1_dp0_phy 1>,
+							 <&mdss1_dp0_phy 1>;
+				phys = <&mdss1_dp0_phy>;
+				phy-names = "dp";
+
+				operating-points-v2 = <&dp_opp_table>;
+				power-domains = <&rpmhpd SA8775P_MMCX>;
+
+				#sound-dai-cells = <0>;
+
+				status = "disabled";
+
+				ports {
+					#address-cells = <1>;
+					#size-cells = <0>;
+
+					port@0 {
+						reg = <0>;
+						mdss1_dp0_in: endpoint {
+							remote-endpoint = <&dpu1_intf0_out>;
+						};
+					};
+
+					port@1 {
+						reg = <1>;
+						mdss1_dp0_out: endpoint { };
+					};
+				};
+			};
+
+			mdss1_dp1: displayport-controller@2215c000 {
+				compatible = "qcom,sa8775p-dp";
+				reg = <0x0 0x2215c000 0x0 0x104>,
+				      <0x0 0x2215c200 0x0 0x0c0>,
+				      <0x0 0x2215d000 0x0 0x770>,
+				      <0x0 0x2215e000 0x0 0x09c>,
+				      <0x0 0x2215f000 0x0 0x09c>,
+				      <0x0 0x22160000 0x0 0x09c>,
+				      <0x0 0x22161000 0x0 0x09c>,
+				      <0x0 0x22162000 0x0 0x23c>,
+				      <0x0 0x22163000 0x0 0x23c>;
+
+				interrupt-parent = <&mdss1>;
+				interrupts = <13>;
+
+				clocks = <&dispcc1 MDSS_DISP_CC_MDSS_AHB_CLK>,
+					 <&dispcc1 MDSS_DISP_CC_MDSS_DPTX1_AUX_CLK>,
+					 <&dispcc1 MDSS_DISP_CC_MDSS_DPTX1_LINK_CLK>,
+					 <&dispcc1 MDSS_DISP_CC_MDSS_DPTX1_LINK_INTF_CLK>,
+					 <&dispcc1 MDSS_DISP_CC_MDSS_DPTX1_PIXEL0_CLK>,
+					 <&dispcc1 MDSS_DISP_CC_MDSS_DPTX1_PIXEL1_CLK>;
+				clock-names = "core_iface",
+					      "core_aux",
+					      "ctrl_link",
+					      "ctrl_link_iface",
+					      "stream_pixel",
+					      "stream_1_pixel";
+				assigned-clocks = <&dispcc1 MDSS_DISP_CC_MDSS_DPTX1_LINK_CLK_SRC>,
+						  <&dispcc1 MDSS_DISP_CC_MDSS_DPTX1_PIXEL0_CLK_SRC>,
+						  <&dispcc1 MDSS_DISP_CC_MDSS_DPTX1_PIXEL1_CLK_SRC>;
+				assigned-clock-parents = <&mdss1_dp1_phy 0>,
+							 <&mdss1_dp1_phy 1>,
+							 <&mdss1_dp1_phy 1>;
+				phys = <&mdss1_dp1_phy>;
+				phy-names = "dp";
+
+				operating-points-v2 = <&dp_opp_table>;
+				power-domains = <&rpmhpd SA8775P_MMCX>;
+
+				#sound-dai-cells = <0>;
+
+				status = "disabled";
+
+				ports {
+					#address-cells = <1>;
+					#size-cells = <0>;
+
+					port@0 {
+						reg = <0>;
+						mdss1_dp1_in: endpoint {
+							remote-endpoint = <&dpu1_intf4_out>;
+						};
+					};
+
+					port@1 {
+						reg = <1>;
+						mdss1_dp1_out: endpoint { };
+					};
+				};
+
+			};
+		};
+
 		dispcc1: clock-controller@22100000 {
 			compatible = "qcom,sa8775p-dispcc1";
 			reg = <0x0 0x22100000 0x0 0x20000>;
@@ -7055,13 +7284,13 @@ dispcc1: clock-controller@22100000 {
 				 <&rpmhcc RPMH_CXO_CLK>,
 				 <&rpmhcc RPMH_CXO_CLK_A>,
 				 <&sleep_clk>,
-				 <0>, <0>, <0>, <0>,
+				 <&mdss1_dp0_phy 0>, <&mdss1_dp0_phy 1>,
+				 <&mdss1_dp1_phy 0>, <&mdss1_dp1_phy 1>,
 				 <0>, <0>, <0>, <0>;
 			power-domains = <&rpmhpd SA8775P_MMCX>;
 			#clock-cells = <1>;
 			#reset-cells = <1>;
 			#power-domain-cells = <1>;
-			status = "disabled";
 		};
 
 		ethernet1: ethernet@23000000 {
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v4 2/2] arm64: dts: qcom: lemans-ride: Enable mdss1 display Port
  2026-02-26 11:13 [PATCH v4 0/2] Enable mdss1 Display Port for Qualcomm lemans-ride platform Mani Chandana Ballary Kuntumalla
  2026-02-26 11:13 ` [PATCH v4 1/2] arm64: dts: qcom: lemans: add mdss1 display device nodes Mani Chandana Ballary Kuntumalla
@ 2026-02-26 11:13 ` Mani Chandana Ballary Kuntumalla
  2026-02-26 14:37   ` Konrad Dybcio
  2026-02-27  2:26   ` Claude review: " Claude Code Review Bot
  2026-02-27  2:26 ` Claude review: Enable mdss1 Display Port for Qualcomm lemans-ride platform Claude Code Review Bot
  2 siblings, 2 replies; 8+ messages in thread
From: Mani Chandana Ballary Kuntumalla @ 2026-02-26 11:13 UTC (permalink / raw)
  To: dmitry.baryshkov, marijn.suijten, swboyd, mripard, abel.vesa,
	andersson, konradybcio, robh, krzk+dt, conor+dt, robin.clark,
	jessica.zhang, abhinav.kumar, sean, airlied, simona,
	alex.vinarskis
  Cc: Mani Chandana Ballary Kuntumalla, linux-arm-msm, devicetree,
	linux-kernel, linux-arm-kernel, freedreno, quic_rajeevny,
	quic_vproddut, dri-devel, quic_riteshk

This change enables DP controllers, DPTX0 and DPTX1 alongside
their corresponding PHYs of mdss1 which corresponds to edp2
and edp3.

Signed-off-by: Mani Chandana Ballary Kuntumalla <quic_mkuntuma@quicinc.com>
---
 .../boot/dts/qcom/lemans-ride-common.dtsi     | 80 +++++++++++++++++++
 1 file changed, 80 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/lemans-ride-common.dtsi b/arch/arm64/boot/dts/qcom/lemans-ride-common.dtsi
index 8fb7d1fc6d56..abeb4cca0a6e 100644
--- a/arch/arm64/boot/dts/qcom/lemans-ride-common.dtsi
+++ b/arch/arm64/boot/dts/qcom/lemans-ride-common.dtsi
@@ -180,6 +180,30 @@ dp1_connector_in: endpoint {
 		};
 	};
 
+	dp2-connector {
+		compatible = "dp-connector";
+		label = "eDP2";
+		type = "full-size";
+
+		port {
+			dp2_connector_in: endpoint {
+				remote-endpoint = <&mdss1_dp0_out>;
+			};
+		};
+	};
+
+	dp3-connector {
+		compatible = "dp-connector";
+		label = "eDP3";
+		type = "full-size";
+
+		port {
+			dp3_connector_in: endpoint {
+				remote-endpoint = <&mdss1_dp1_out>;
+			};
+		};
+	};
+
 	dp-dsi0-connector {
 		compatible = "dp-connector";
 		label = "DSI0";
@@ -639,6 +663,50 @@ &mdss0_dsi1_phy {
 	status = "okay";
 };
 
+&mdss1 {
+	status = "okay";
+};
+
+&mdss1_dp0 {
+	pinctrl-0 = <&dp2_hot_plug_det>;
+	pinctrl-names = "default";
+
+	status = "okay";
+};
+
+&mdss1_dp0_out {
+	data-lanes = <0 1 2 3>;
+	link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+	remote-endpoint = <&dp2_connector_in>;
+};
+
+&mdss1_dp0_phy {
+	vdda-phy-supply = <&vreg_l1c>;
+	vdda-pll-supply = <&vreg_l4a>;
+
+	status = "okay";
+};
+
+&mdss1_dp1 {
+	pinctrl-0 = <&dp3_hot_plug_det>;
+	pinctrl-names = "default";
+
+	status = "okay";
+};
+
+&mdss1_dp1_out {
+	data-lanes = <0 1 2 3>;
+	link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+	remote-endpoint = <&dp3_connector_in>;
+};
+
+&mdss1_dp1_phy {
+	vdda-phy-supply = <&vreg_l1c>;
+	vdda-pll-supply = <&vreg_l4a>;
+
+	status = "okay";
+};
+
 &pmm8654au_0_gpios {
 	gpio-line-names = "DS_EN",
 			  "POFF_COMPLETE",
@@ -816,6 +884,18 @@ dp1_hot_plug_det: dp1-hot-plug-det-state {
 		bias-disable;
 	};
 
+	dp2_hot_plug_det: dp2-hot-plug-det-state {
+		pins = "gpio104";
+		function = "edp2_hot";
+		bias-disable;
+	};
+
+	dp3_hot_plug_det: dp3-hot-plug-det-state {
+		pins = "gpio103";
+		function = "edp3_hot";
+		bias-disable;
+	};
+
 	io_expander_intr_active: io-expander-intr-active-state {
 		pins = "gpio98";
 		function = "gpio";
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH v4 2/2] arm64: dts: qcom: lemans-ride: Enable mdss1 display Port
  2026-02-26 11:13 ` [PATCH v4 2/2] arm64: dts: qcom: lemans-ride: Enable mdss1 display Port Mani Chandana Ballary Kuntumalla
@ 2026-02-26 14:37   ` Konrad Dybcio
  2026-02-27  2:26   ` Claude review: " Claude Code Review Bot
  1 sibling, 0 replies; 8+ messages in thread
From: Konrad Dybcio @ 2026-02-26 14:37 UTC (permalink / raw)
  To: Mani Chandana Ballary Kuntumalla, dmitry.baryshkov,
	marijn.suijten, swboyd, mripard, abel.vesa, andersson,
	konradybcio, robh, krzk+dt, conor+dt, robin.clark, jessica.zhang,
	abhinav.kumar, sean, airlied, simona, alex.vinarskis
  Cc: linux-arm-msm, devicetree, linux-kernel, linux-arm-kernel,
	freedreno, quic_rajeevny, quic_vproddut, dri-devel, quic_riteshk

On 2/26/26 12:13 PM, Mani Chandana Ballary Kuntumalla wrote:
> This change enables DP controllers, DPTX0 and DPTX1 alongside
> their corresponding PHYs of mdss1 which corresponds to edp2
> and edp3.
> 
> Signed-off-by: Mani Chandana Ballary Kuntumalla <quic_mkuntuma@quicinc.com>
> ---

Please switch to using b4, you omitted including a tag you received

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

Konrad

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v4 1/2] arm64: dts: qcom: lemans: add mdss1 display device nodes
  2026-02-26 11:13 ` [PATCH v4 1/2] arm64: dts: qcom: lemans: add mdss1 display device nodes Mani Chandana Ballary Kuntumalla
@ 2026-02-26 14:43   ` Konrad Dybcio
  2026-02-27  2:26   ` Claude review: " Claude Code Review Bot
  1 sibling, 0 replies; 8+ messages in thread
From: Konrad Dybcio @ 2026-02-26 14:43 UTC (permalink / raw)
  To: Mani Chandana Ballary Kuntumalla, dmitry.baryshkov,
	marijn.suijten, swboyd, mripard, abel.vesa, andersson,
	konradybcio, robh, krzk+dt, conor+dt, robin.clark, jessica.zhang,
	abhinav.kumar, sean, airlied, simona, alex.vinarskis
  Cc: linux-arm-msm, devicetree, linux-kernel, linux-arm-kernel,
	freedreno, quic_rajeevny, quic_vproddut, dri-devel, quic_riteshk,
	Mahadevan P

On 2/26/26 12:13 PM, Mani Chandana Ballary Kuntumalla wrote:
> Add devicetree changes to enable second Mobile Display Subsystem (mdss1),
> Display Processing Unit(DPU), Display Port(DP), Display clock controller
> (dispcc1) and eDP PHYs on the Qualcomm Lemans platform.
> 
> Signed-off-by: Mahadevan P <mahadevan.p@oss.qualcomm.com>
> Signed-off-by: Mani Chandana Ballary Kuntumalla <quic_mkuntuma@quicinc.com>
> ---
>  arch/arm64/boot/dts/qcom/lemans.dtsi | 381 +++++++++++++++++++++------
>  1 file changed, 305 insertions(+), 76 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qcom/lemans.dtsi
> index 1da8e7fb6775..fd4d524d0890 100644
> --- a/arch/arm64/boot/dts/qcom/lemans.dtsi
> +++ b/arch/arm64/boot/dts/qcom/lemans.dtsi
> @@ -507,6 +507,30 @@ opp-2553600000 {
>  		};
>  	};
>  
> +	dp_opp_table: opp-table-dp {

You don't have to move this table to the root of the DT, it can
stay where it was (now the nodes are not sorted:
'o'pp-table-dp > 'd'ummy-sink)

[...]

> +					port@0 {
> +						reg = <0>;
> +						mdss1_dp0_in: endpoint {

I'm sorry I didn't notice that before, but please keep a newline
between the last property and the following subnode (patch-wide)

Konrad

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Claude review: Enable mdss1 Display Port for Qualcomm lemans-ride platform
  2026-02-26 11:13 [PATCH v4 0/2] Enable mdss1 Display Port for Qualcomm lemans-ride platform Mani Chandana Ballary Kuntumalla
  2026-02-26 11:13 ` [PATCH v4 1/2] arm64: dts: qcom: lemans: add mdss1 display device nodes Mani Chandana Ballary Kuntumalla
  2026-02-26 11:13 ` [PATCH v4 2/2] arm64: dts: qcom: lemans-ride: Enable mdss1 display Port Mani Chandana Ballary Kuntumalla
@ 2026-02-27  2:26 ` Claude Code Review Bot
  2 siblings, 0 replies; 8+ messages in thread
From: Claude Code Review Bot @ 2026-02-27  2:26 UTC (permalink / raw)
  To: dri-devel-reviews

Overall Series Review

Subject: Enable mdss1 Display Port for Qualcomm lemans-ride platform
Author: Mani Chandana Ballary Kuntumalla <quic_mkuntuma@quicinc.com>
Patches: 5
Reviewed: 2026-02-27T12:26:29.297745

---

This 2-patch series adds device tree nodes for the second Mobile Display Subsystem (mdss1) on the Qualcomm SA8775P (Lemans) SoC, including DPTX0/DPTX1 controllers and eDP PHYs, and then enables them on the lemans-ride board.

The series is well-structured and closely follows the existing mdss0 patterns. The OPP table refactoring (moving them to root level for sharing between mdss0 and mdss1) is clean and was requested by the reviewer. The node structure, clock assignments, interrupt numbering, and port wiring all look correct and consistent with mdss0.

The series depends on an unmerged series (https://lore.kernel.org/all/20260128114853.2543416-1-quic_riteshk@quicinc.com/) which likely introduces `MASTER_MDP_CORE1_0`/`MASTER_MDP_CORE1_1` interconnect masters and `GCC_DISP1_HF_AXI_CLK`, and may also add the "ref" clock to the mdss0 PHYs. This dependency should be clearly noted for merge ordering.

**One notable concern**: The mdss1 eDP PHY nodes include a third clock (`GCC_EDP_REF_CLKREF_EN` / "ref") that the current upstream mdss0 eDP PHY nodes do not have. If the dependency series doesn't also add this clock to the mdss0 PHY nodes, this creates an inconsistency. Otherwise, the series looks ready to go.

---

---
Generated by Claude Code Patch Reviewer

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Claude review: arm64: dts: qcom: lemans: add mdss1 display device nodes
  2026-02-26 11:13 ` [PATCH v4 1/2] arm64: dts: qcom: lemans: add mdss1 display device nodes Mani Chandana Ballary Kuntumalla
  2026-02-26 14:43   ` Konrad Dybcio
@ 2026-02-27  2:26   ` Claude Code Review Bot
  1 sibling, 0 replies; 8+ messages in thread
From: Claude Code Review Bot @ 2026-02-27  2:26 UTC (permalink / raw)
  To: dri-devel-reviews

Patch Review

This patch does three things: (1) moves the DP and MDP OPP tables from inside mdss0 child nodes to root level for sharing, (2) adds the full mdss1 node hierarchy, and (3) wires up the dispcc1 clock controller to use the new mdss1 PHY clocks and removes its `status = "disabled"`.

**OPP table refactoring (good)**

The OPP tables are moved out and renamed:
- `mdss0_mdp_opp_table` → `mdss_mdp_opp_table` (root level)
- `dp_opp_table` stays at root level (was inside mdss0_dp0)
- `dp1_opp_table` (was inside mdss0_dp1) is removed; mdss0_dp1 now shares `dp_opp_table`

This is clean. The OPP values are identical across all DP controllers and both MDPs, so sharing makes sense.

```
-				operating-points-v2 = <&mdss0_mdp_opp_table>;
+				operating-points-v2 = <&mdss_mdp_opp_table>;
```
```
-				operating-points-v2 = <&dp1_opp_table>;
+				operating-points-v2 = <&dp_opp_table>;
```

**mdss1 node structure (correct)**

The mdss1 node mirrors mdss0 closely:
- Base address `0x22000000` (vs mdss0's `0x0ae00000`)
- GIC_SPI 865 (vs mdss0's 92)
- IOMMU SID `0x1800` (vs mdss0's `0x1000`)
- Uses `dispcc1` (vs `dispcc0`), `GCC_DISP1_HF_AXI_CLK` (vs `GCC_DISP_HF_AXI_CLK`)
- Interconnect masters `MASTER_MDP_CORE1_0`/`MASTER_MDP_CORE1_1` (vs `MASTER_MDP0`/`MASTER_MDP1`)

The DPU, DP controllers, and PHY nodes all follow the mdss0 pattern with the correct address offsets for the second instance.

**PHY "ref" clock inconsistency**

The mdss1 PHY nodes include a third clock not present in the upstream mdss0 PHYs:

```
+				clocks = <&dispcc1 MDSS_DISP_CC_MDSS_DPTX0_AUX_CLK>,
+					 <&dispcc1 MDSS_DISP_CC_MDSS_AHB_CLK>,
+					 <&gcc GCC_EDP_REF_CLKREF_EN>;
+				clock-names = "aux",
+					      "cfg_ahb",
+					      "ref";
```

The current upstream mdss0 PHY nodes only have "aux" and "cfg_ahb". If the dependency series adds this "ref" clock to mdss0 PHYs as well, this is fine. If not, please either add it to mdss0 in this series or explain the difference.

**DPU port numbering (correct)**

```
+					port@0 {
+						reg = <0>;
+						dpu1_intf0_out: endpoint {
+							remote-endpoint = <&mdss1_dp0_in>;
+						};
+					};
+
+					port@1 {
+						reg = <1>;
+						dpu1_intf4_out: endpoint {
+							remote-endpoint = <&mdss1_dp1_in>;
+						};
+					};
```

Port 0 (intf0) → DP0 and port 1 (intf4) → DP1 matches the mdss0 DPU port numbering convention. Since mdss1 has no DSI, only ports 0 and 1 are defined.

**dispcc1 changes (correct)**

```
-				 <0>, <0>, <0>, <0>,
+				 <&mdss1_dp0_phy 0>, <&mdss1_dp0_phy 1>,
+				 <&mdss1_dp1_phy 0>, <&mdss1_dp1_phy 1>,
 				 <0>, <0>, <0>, <0>;
```

Replacing the placeholder `<0>` entries for DP PHY clocks while leaving the DSI PHY clock slots as `<0>` (no DSI on mdss1) is correct. This matches how dispcc0 references mdss0 PHY clocks.

```
-			status = "disabled";
```

Removing `status = "disabled"` from dispcc1 makes it consistent with dispcc0 (which has no status property and is implicitly enabled).

**Minor style nit**: There is an extra blank line before the closing `};` of the `mdss1_dp1` node that isn't present in the `mdss1_dp0` node or any of the mdss0 DP nodes:

```
+				};
+
+			};
+		};
```

This is cosmetic but inconsistent.

---
Generated by Claude Code Patch Reviewer

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Claude review: arm64: dts: qcom: lemans-ride: Enable mdss1 display Port
  2026-02-26 11:13 ` [PATCH v4 2/2] arm64: dts: qcom: lemans-ride: Enable mdss1 display Port Mani Chandana Ballary Kuntumalla
  2026-02-26 14:37   ` Konrad Dybcio
@ 2026-02-27  2:26   ` Claude Code Review Bot
  1 sibling, 0 replies; 8+ messages in thread
From: Claude Code Review Bot @ 2026-02-27  2:26 UTC (permalink / raw)
  To: dri-devel-reviews

Patch Review

This patch enables the mdss1 subsystem on the lemans-ride board, adding DP connectors and configuring the PHY power supplies and hot-plug-detect pins.

**Connector definitions (correct)**

```
+	dp2-connector {
+		compatible = "dp-connector";
+		label = "eDP2";
+		type = "full-size";
```

The naming (dp2/dp3, labeled eDP2/eDP3) and `type = "full-size"` follow the existing dp0/dp1 connectors exactly.

**DP output configuration (correct)**

```
+&mdss1_dp0_out {
+	data-lanes = <0 1 2 3>;
+	link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+	remote-endpoint = <&dp2_connector_in>;
+};
```

4 data lanes and link frequencies matching the existing mdss0 DP outputs.

**PHY power supplies (correct)**

```
+&mdss1_dp0_phy {
+	vdda-phy-supply = <&vreg_l1c>;
+	vdda-pll-supply = <&vreg_l4a>;
+
+	status = "okay";
+};
```

Same supplies as the existing mdss0 DP PHYs in this board file.

**Hot-plug-detect pinctrl (looks reasonable)**

```
+	dp2_hot_plug_det: dp2-hot-plug-det-state {
+		pins = "gpio104";
+		function = "edp2_hot";
+		bias-disable;
+	};
+
+	dp3_hot_plug_det: dp3-hot-plug-det-state {
+		pins = "gpio103";
+		function = "edp3_hot";
+		bias-disable;
+	};
```

Uses `edp2_hot`/`edp3_hot` functions on gpio104/gpio103, consistent with the existing `edp0_hot`/`edp1_hot` pattern. The `bias-disable` setting matches the existing HPD pins.

**No issues found in this patch.** It's a clean board-level enablement that follows established patterns.

---
Generated by Claude Code Patch Reviewer

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2026-02-27  2:26 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-26 11:13 [PATCH v4 0/2] Enable mdss1 Display Port for Qualcomm lemans-ride platform Mani Chandana Ballary Kuntumalla
2026-02-26 11:13 ` [PATCH v4 1/2] arm64: dts: qcom: lemans: add mdss1 display device nodes Mani Chandana Ballary Kuntumalla
2026-02-26 14:43   ` Konrad Dybcio
2026-02-27  2:26   ` Claude review: " Claude Code Review Bot
2026-02-26 11:13 ` [PATCH v4 2/2] arm64: dts: qcom: lemans-ride: Enable mdss1 display Port Mani Chandana Ballary Kuntumalla
2026-02-26 14:37   ` Konrad Dybcio
2026-02-27  2:26   ` Claude review: " Claude Code Review Bot
2026-02-27  2:26 ` Claude review: Enable mdss1 Display Port for Qualcomm lemans-ride platform Claude Code Review Bot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox