[PATCH] arm64: dts: qcom: x1e80100-hp-x14: drop bogus USB retimer

Johan Hovold posted 1 patch 8 months, 3 weeks ago
.../dts/qcom/x1e80100-hp-omnibook-x14.dts     | 146 +-----------------
1 file changed, 2 insertions(+), 144 deletions(-)
[PATCH] arm64: dts: qcom: x1e80100-hp-x14: drop bogus USB retimer
Posted by Johan Hovold 8 months, 3 weeks ago
Jens reported that the sanity checks added to the new ps883x USB retimer
driver breaks USB and display on the HP X14. Turns out the X14 only has
a retimer on one of the ports, but this initially went unnoticed due to
the missing sanity check (and error handling) in the retimer driver.

Drop the non-existing retimer from the devicetree to enable the second
USB port and the display subsystem.

Note that this also matches the ACPI tables.

Fixes: 6f18b8d4142c ("arm64: dts: qcom: x1e80100-hp-x14: dt for HP Omnibook X Laptop 14")
Cc: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
---

The devicetree went upstream before the retimer driver so the display
would already be broken in 6.14 and there's no need to backport this
one (but it should go into 6.15).

Note that the SBU mux can be added later when/if someone figures out how
it is connected.

Johan


 .../dts/qcom/x1e80100-hp-omnibook-x14.dts     | 146 +-----------------
 1 file changed, 2 insertions(+), 144 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/x1e80100-hp-omnibook-x14.dts b/arch/arm64/boot/dts/qcom/x1e80100-hp-omnibook-x14.dts
index 05ad07d90b97..03bbebff4576 100644
--- a/arch/arm64/boot/dts/qcom/x1e80100-hp-omnibook-x14.dts
+++ b/arch/arm64/boot/dts/qcom/x1e80100-hp-omnibook-x14.dts
@@ -150,15 +150,7 @@ port@1 {
 					reg = <1>;
 
 					pmic_glink_ss1_ss_in: endpoint {
-						remote-endpoint = <&retimer_ss1_ss_out>;
-					};
-				};
-
-				port@2 {
-					reg = <2>;
-
-					pmic_glink_ss1_con_sbu_in: endpoint {
-						remote-endpoint = <&retimer_ss1_con_sbu_out>;
+						remote-endpoint = <&usb_1_ss1_qmpphy_out>;
 					};
 				};
 			};
@@ -370,54 +362,6 @@ vreg_rtmr0_3p3: regulator-rtmr0-3p3 {
 		regulator-boot-on;
 	};
 
-	vreg_rtmr1_1p15: regulator-rtmr1-1p15 {
-		compatible = "regulator-fixed";
-
-		regulator-name = "VREG_RTMR1_1P15";
-		regulator-min-microvolt = <1150000>;
-		regulator-max-microvolt = <1150000>;
-
-		gpio = <&tlmm 188 GPIO_ACTIVE_HIGH>;
-		enable-active-high;
-
-		pinctrl-0 = <&usb1_pwr_1p15_reg_en>;
-		pinctrl-names = "default";
-
-		regulator-boot-on;
-	};
-
-	vreg_rtmr1_1p8: regulator-rtmr1-1p8 {
-		compatible = "regulator-fixed";
-
-		regulator-name = "VREG_RTMR1_1P8";
-		regulator-min-microvolt = <1800000>;
-		regulator-max-microvolt = <1800000>;
-
-		gpio = <&tlmm 175 GPIO_ACTIVE_HIGH>;
-		enable-active-high;
-
-		pinctrl-0 = <&usb1_pwr_1p8_reg_en>;
-		pinctrl-names = "default";
-
-		regulator-boot-on;
-	};
-
-	vreg_rtmr1_3p3: regulator-rtmr1-3p3 {
-		compatible = "regulator-fixed";
-
-		regulator-name = "VREG_RTMR1_3P3";
-		regulator-min-microvolt = <3300000>;
-		regulator-max-microvolt = <3300000>;
-
-		gpio = <&tlmm 186 GPIO_ACTIVE_HIGH>;
-		enable-active-high;
-
-		pinctrl-0 = <&usb1_pwr_3p3_reg_en>;
-		pinctrl-names = "default";
-
-		regulator-boot-on;
-	};
-
 	vreg_vph_pwr: regulator-vph-pwr {
 		compatible = "regulator-fixed";
 
@@ -1027,64 +971,6 @@ eusb3_repeater: redriver@47 {
 	};
 };
 
-&i2c7 {
-	clock-frequency = <400000>;
-
-	status = "okay";
-
-	typec-mux@8 {
-		compatible = "parade,ps8830";
-		reg = <0x8>;
-
-		clocks = <&rpmhcc RPMH_RF_CLK4>;
-
-		vdd-supply = <&vreg_rtmr1_1p15>;
-		vdd33-supply = <&vreg_rtmr1_3p3>;
-		vdd33-cap-supply = <&vreg_rtmr1_3p3>;
-		vddar-supply = <&vreg_rtmr1_1p15>;
-		vddat-supply = <&vreg_rtmr1_1p15>;
-		vddio-supply = <&vreg_rtmr1_1p8>;
-
-		reset-gpios = <&tlmm 176 GPIO_ACTIVE_LOW>;
-
-		pinctrl-0 = <&rtmr1_default>;
-		pinctrl-names = "default";
-
-		orientation-switch;
-		retimer-switch;
-
-		ports {
-			#address-cells = <1>;
-			#size-cells = <0>;
-
-			port@0 {
-				reg = <0>;
-
-				retimer_ss1_ss_out: endpoint {
-					remote-endpoint = <&pmic_glink_ss1_ss_in>;
-				};
-			};
-
-			port@1 {
-				reg = <1>;
-
-				retimer_ss1_ss_in: endpoint {
-					remote-endpoint = <&usb_1_ss1_qmpphy_out>;
-				};
-			};
-
-			port@2 {
-				reg = <2>;
-
-				retimer_ss1_con_sbu_out: endpoint {
-					remote-endpoint = <&pmic_glink_ss1_con_sbu_in>;
-				};
-			};
-
-		};
-	};
-};
-
 &i2c8 {
 	clock-frequency = <400000>;
 
@@ -1519,13 +1405,6 @@ wake-n-pins {
 		};
 	};
 
-	rtmr1_default: rtmr1-reset-n-active-state {
-		pins = "gpio176";
-		function = "gpio";
-		drive-strength = <2>;
-		bias-disable;
-	};
-
 	tpad_default: tpad-default-state {
 		pins = "gpio3";
 		function = "gpio";
@@ -1547,27 +1426,6 @@ reset-n-pins {
 		};
 	};
 
-	usb1_pwr_1p15_reg_en: usb1-pwr-1p15-reg-en-state {
-		pins = "gpio188";
-		function = "gpio";
-		drive-strength = <2>;
-		bias-disable;
-	};
-
-	usb1_pwr_1p8_reg_en: usb1-pwr-1p8-reg-en-state {
-		pins = "gpio175";
-		function = "gpio";
-		drive-strength = <2>;
-		bias-disable;
-	};
-
-	usb1_pwr_3p3_reg_en: usb1-pwr-3p3-reg-en-state {
-		pins = "gpio186";
-		function = "gpio";
-		drive-strength = <2>;
-		bias-disable;
-	};
-
 	wcd_default: wcd-reset-n-active-state {
 		pins = "gpio191";
 		function = "gpio";
@@ -1670,7 +1528,7 @@ &usb_1_ss1_dwc3_hs {
 };
 
 &usb_1_ss1_qmpphy_out {
-	remote-endpoint = <&retimer_ss1_ss_in>;
+	remote-endpoint = <&pmic_glink_ss1_ss_in>;
 };
 
 &usb_mp {
-- 
2.48.1
Re: [PATCH] arm64: dts: qcom: x1e80100-hp-x14: drop bogus USB retimer
Posted by Bjorn Andersson 7 months ago
On Fri, 28 Mar 2025 09:41:54 +0100, Johan Hovold wrote:
> Jens reported that the sanity checks added to the new ps883x USB retimer
> driver breaks USB and display on the HP X14. Turns out the X14 only has
> a retimer on one of the ports, but this initially went unnoticed due to
> the missing sanity check (and error handling) in the retimer driver.
> 
> Drop the non-existing retimer from the devicetree to enable the second
> USB port and the display subsystem.
> 
> [...]

Applied, thanks!

[1/1] arm64: dts: qcom: x1e80100-hp-x14: drop bogus USB retimer
      commit: 9c6ee9a760c52207eae64cb6b20cd1d93c3761ff

Best regards,
-- 
Bjorn Andersson <andersson@kernel.org>
Re: [PATCH] arm64: dts: qcom: x1e80100-hp-x14: drop bogus USB retimer
Posted by Jens Glathe 8 months, 1 week ago
On 28.03.25 09:41, Johan Hovold wrote:
> Note that the SBU mux can be added later when/if someone figures out how
> it is connected.

Tested-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>

I have added a patch for the gpio-sbu-mux on the 10Gbps connector. [1].

[1]:
https://lore.kernel.org/lkml/20250410-hp-x14-v2-0-d36414704a0a@oldschoolsolutions.biz/

with best regards,

Jens
Re: [PATCH] arm64: dts: qcom: x1e80100-hp-x14: drop bogus USB retimer
Posted by Juerg Haefliger 8 months, 2 weeks ago
On Fri, 28 Mar 2025 09:41:54 +0100
Johan Hovold <johan+linaro@kernel.org> wrote:

> Jens reported that the sanity checks added to the new ps883x USB retimer
> driver breaks USB and display on the HP X14. Turns out the X14 only has
> a retimer on one of the ports, but this initially went unnoticed due to
> the missing sanity check (and error handling) in the retimer driver.
> 
> Drop the non-existing retimer from the devicetree to enable the second
> USB port and the display subsystem.
> 
> Note that this also matches the ACPI tables.
> 
> Fixes: 6f18b8d4142c ("arm64: dts: qcom: x1e80100-hp-x14: dt for HP Omnibook X Laptop 14")
> Cc: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>

Tested on an HP EliteBook Ultra which is the same HW but in a more
expensive (?) packaging.

Tested-by: Juerg Haefliger <juerg.haefliger@canonical.com>
Re: [PATCH] arm64: dts: qcom: x1e80100-hp-x14: drop bogus USB retimer
Posted by Konrad Dybcio 8 months, 3 weeks ago
On 3/28/25 9:41 AM, Johan Hovold wrote:
> Jens reported that the sanity checks added to the new ps883x USB retimer
> driver breaks USB and display on the HP X14. Turns out the X14 only has
> a retimer on one of the ports, but this initially went unnoticed due to
> the missing sanity check (and error handling) in the retimer driver.
> 
> Drop the non-existing retimer from the devicetree to enable the second
> USB port and the display subsystem.
> 
> Note that this also matches the ACPI tables.
> 
> Fixes: 6f18b8d4142c ("arm64: dts: qcom: x1e80100-hp-x14: dt for HP Omnibook X Laptop 14")
> Cc: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
> ---
> 
> The devicetree went upstream before the retimer driver so the display
> would already be broken in 6.14 and there's no need to backport this
> one (but it should go into 6.15).
> 
> Note that the SBU mux can be added later when/if someone figures out how
> it is connected.

I am shocked, but this product photo [1] (is this the right laptop? there's a
bunch with similar naming) on the HP website suggests that indeed only one port
has a USB-40Gbps marking on it, with the other type-C only being supposed to do
10Gbps

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

Konrad

[1] https://ssl-product-images.www8-hp.com/digmedialib/prodimg/lowres/c08993265.png
Re: [PATCH] arm64: dts: qcom: x1e80100-hp-x14: drop bogus USB retimer
Posted by Johan Hovold 8 months, 3 weeks ago
On Tue, Apr 01, 2025 at 12:27:55PM +0200, Konrad Dybcio wrote:
> On 3/28/25 9:41 AM, Johan Hovold wrote:
> > Jens reported that the sanity checks added to the new ps883x USB retimer
> > driver breaks USB and display on the HP X14. Turns out the X14 only has
> > a retimer on one of the ports, but this initially went unnoticed due to
> > the missing sanity check (and error handling) in the retimer driver.
> > 
> > Drop the non-existing retimer from the devicetree to enable the second
> > USB port and the display subsystem.
> > 
> > Note that this also matches the ACPI tables.
> > 
> > Fixes: 6f18b8d4142c ("arm64: dts: qcom: x1e80100-hp-x14: dt for HP Omnibook X Laptop 14")
> > Cc: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
> > Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
> > ---
> > 
> > The devicetree went upstream before the retimer driver so the display
> > would already be broken in 6.14 and there's no need to backport this
> > one (but it should go into 6.15).
> > 
> > Note that the SBU mux can be added later when/if someone figures out how
> > it is connected.
> 
> I am shocked, but this product photo [1] (is this the right laptop? there's a
> bunch with similar naming) on the HP website suggests that indeed only one port
> has a USB-40Gbps marking on it, with the other type-C only being supposed to do
> 10Gbps

Yeah, I found a photo like that on their web page too, and the specs
also mention it:

	1 USB Type-C® 10Gbps signaling rate (USB Power Delivery,
	DisplayPort™ 1.4a, HP Sleep and Charge); 1 USB Type-C® 40Gbps
	signaling rate (USB Power Delivery, DisplayPort™ 1.4a, HP Sleep
	and Charge)

	https://www.hp.com/us-en/shop/pdp/hp-omnibook-x-laptop-ai-pc-14-fe000-14-9j1h6av-1#techSpecs

> [1] https://ssl-product-images.www8-hp.com/digmedialib/prodimg/lowres/c08993265.png

Johan
Re: [PATCH] arm64: dts: qcom: x1e80100-hp-x14: drop bogus USB retimer
Posted by Abel Vesa 8 months, 3 weeks ago
On 25-03-28 09:41:54, Johan Hovold wrote:
> Jens reported that the sanity checks added to the new ps883x USB retimer
> driver breaks USB and display on the HP X14. Turns out the X14 only has
> a retimer on one of the ports, but this initially went unnoticed due to
> the missing sanity check (and error handling) in the retimer driver.
> 
> Drop the non-existing retimer from the devicetree to enable the second
> USB port and the display subsystem.
> 
> Note that this also matches the ACPI tables.
> 
> Fixes: 6f18b8d4142c ("arm64: dts: qcom: x1e80100-hp-x14: dt for HP Omnibook X Laptop 14")
> Cc: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
 
Reviewed-by: Abel Vesa <abel.vesa@linaro.org>