Re: [PATCH] arm64: dts: qcom: sc8180x: Fix ss_phy_irq for secondary USB controller

From: Bjorn Andersson
Date: Wed Mar 27 2024 - 22:29:56 EST


On Thu, Mar 28, 2024 at 03:21:57AM +0100, Maximilian Luz wrote:
> The ACPI DSDT of the Surface Pro X (SQ2) specifies the interrupts for
> the secondary UBS controller as
>
> Name (_CRS, ResourceTemplate ()
> {
> Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
> {
> 0x000000AA,
> }
> Interrupt (ResourceConsumer, Level, ActiveHigh, SharedAndWake, ,, )
> {
> 0x000000A7, // hs_phy_irq: &intc GIC_SPI 136
> }
> Interrupt (ResourceConsumer, Level, ActiveHigh, SharedAndWake, ,, )
> {
> 0x00000228, // ss_phy_irq: &pdc 40
> }
> Interrupt (ResourceConsumer, Edge, ActiveHigh, SharedAndWake, ,, )
> {
> 0x0000020A, // dm_hs_phy_irq: &pdc 10
> }
> Interrupt (ResourceConsumer, Edge, ActiveHigh, SharedAndWake, ,, )
> {
> 0x0000020B, // dp_hs_phy_irq: &pdc 11
> }
> })
>
> Generally, the interrupts above 0x200 map to the PDC interrupts (as used
> in the devicetree) as ACPI_NUMBER - 0x200. Note that this lines up with
> dm_hs_phy_irq and dp_hs_phy_irq (as well as the interrupts for the
> primary USB controller).
>
> Based on the snippet above, ss_phy_irq should therefore be PDC 40 (=
> 0x28) and not PDC 7. The latter is according to ACPI instead used as
> ss_phy_irq for port 0 of the multiport USB controller). Fix this by
> setting ss_phy_irq to '&pdc 40'.
>
> Fixes: b080f53a8f44 ("arm64: dts: qcom: sc8180x: Add remoteprocs, wifi and usb nodes")
> Signed-off-by: Maximilian Luz <luzmaximilian@xxxxxxxxx>

Reviewed-by: Bjorn Andersson <andersson@xxxxxxxxxx>

Regards,
Bjorn

> ---
> arch/arm64/boot/dts/qcom/sc8180x.dtsi | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm64/boot/dts/qcom/sc8180x.dtsi b/arch/arm64/boot/dts/qcom/sc8180x.dtsi
> index 32afc78d5b769..053f7861c3cec 100644
> --- a/arch/arm64/boot/dts/qcom/sc8180x.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sc8180x.dtsi
> @@ -2701,7 +2701,7 @@ usb_sec: usb@a8f8800 {
> resets = <&gcc GCC_USB30_SEC_BCR>;
> power-domains = <&gcc USB30_SEC_GDSC>;
> interrupts-extended = <&intc GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
> - <&pdc 7 IRQ_TYPE_LEVEL_HIGH>,
> + <&pdc 40 IRQ_TYPE_LEVEL_HIGH>,
> <&pdc 10 IRQ_TYPE_EDGE_BOTH>,
> <&pdc 11 IRQ_TYPE_EDGE_BOTH>;
> interrupt-names = "hs_phy_irq", "ss_phy_irq",
> --
> 2.44.0
>