arm64: dts: qcom: x1e80100-hp-x14: drop bogus USB retimer
PATCH 1/1 arm64: dts: qcom: x1e80100-hp-x14: drop bogus USB retimer
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.
---
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(-)
arch/arm64/boot/dts/qcom/x1e80100-hp-omnibook-x14.dts +2 -144
@@ -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 {
Signature · 1 line
2.48.1
Quoted 5 lines · Johan Hovold
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.
Quoted 8 lines
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 <[email protected]>Signed-off-by Johan Hovold <[email protected]>
Quoted 13 lines · Johan Hovold
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 <[email protected]>Signed-off-by Johan Hovold <[email protected]>
Quoted 8 lines
---
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
Konrad
[1] https://ssl-product-images.www8-hp.com/digmedialib/prodimg/lowres/c08993265.png
Quoted 20 lines · Konrad Dybcio
Quoted 19 lines · Johan Hovold
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 <[email protected]>Signed-off-by Johan Hovold <[email protected]>---
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).
Quoted 7 lines
Quoted 2 lines
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
Johan
Quoted 5 lines · On Fri, 28 Mar 2025 09:41:54 +0100 Johan Hovold <[email protected]> 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.
Quoted 8 lines
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 <[email protected]>Signed-off-by Johan Hovold <[email protected]>
Tested on an HP EliteBook Ultra which is the same HW but in a more expensive (?) packaging.
Quoted 2 lines · Johan Hovold
Note that the SBU mux can be added later when/if someone figures out how it is connected.
I have added a patch for the gpio-sbu-mux on the 10Gbps connector. [1].
[1]:
https://lore.kernel.org/lkml/[email protected]/
with best regards,
Jens
Quoted 9 lines · Johan Hovold
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,
Signature · 1 line
Bjorn Andersson <[email protected]>