All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] arm64: dts: qcom: fix USB wakeup interrupts again (pt 2)
@ 2023-12-14  7:43 Johan Hovold
  2023-12-14  7:43 ` [PATCH 1/3] arm64: dts: qcom: sdm670: fix USB DP/DM HS PHY interrupts Johan Hovold
                   ` (3 more replies)
  0 siblings, 4 replies; 15+ messages in thread
From: Johan Hovold @ 2023-12-14  7:43 UTC (permalink / raw)
  To: Bjorn Andersson
  Cc: Andy Gross, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Krishna Kurapati PSSNV, linux-arm-msm, devicetree,
	linux-kernel, Johan Hovold

The USB DP/DM HS PHY interrupts need to be provided by the PDC interrupt
controller in order to be able to wake the system up from low-power
states and to be able to detect disconnect events, which requires
triggering on falling edges.

A recent commit updated the trigger type but failed to change the
interrupt provider as required. This leads to the current Linux driver
failing to probe instead of printing an error during suspend and USB
wakeup not working as intended.

While at it, fix also the SS PHY interrupt so that it too can be used to
wakeup the system up.

Thanks to Konrad and Krishna for providing the sdm670 PDC interrupts
numbers. The sc8180x SS PHY vectors I inferred from sdm670/sdm845/sm8150
which appear to use the name configuration.

After this series, only sm6375 remains to be fixed and I believe Bjorn
is trying to dig out the corresponding vectors.

Also note that these patches have only been compile tested.

Johan


Johan Hovold (3):
  arm64: dts: qcom: sdm670: fix USB DP/DM HS PHY interrupts
  arm64: dts: qcom: sdm670: fix USB SS wakeup
  arm64: dts: qcom: sc8180x: fix USB SS wakeup

 arch/arm64/boot/dts/qcom/sc8180x.dtsi | 4 ++--
 arch/arm64/boot/dts/qcom/sdm670.dtsi  | 8 ++++----
 2 files changed, 6 insertions(+), 6 deletions(-)

-- 
2.41.0


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

* [PATCH 1/3] arm64: dts: qcom: sdm670: fix USB DP/DM HS PHY interrupts
  2023-12-14  7:43 [PATCH 0/3] arm64: dts: qcom: fix USB wakeup interrupts again (pt 2) Johan Hovold
@ 2023-12-14  7:43 ` Johan Hovold
  2023-12-14 12:27   ` Konrad Dybcio
                     ` (2 more replies)
  2023-12-14  7:43 ` [PATCH 2/3] arm64: dts: qcom: sdm670: fix USB SS wakeup Johan Hovold
                   ` (2 subsequent siblings)
  3 siblings, 3 replies; 15+ messages in thread
From: Johan Hovold @ 2023-12-14  7:43 UTC (permalink / raw)
  To: Bjorn Andersson
  Cc: Andy Gross, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Krishna Kurapati PSSNV, linux-arm-msm, devicetree,
	linux-kernel, Johan Hovold, stable, Richard Acayan

The USB DP/DM HS PHY interrupts need to be provided by the PDC interrupt
controller in order to be able to wake the system up from low-power
states and to be able to detect disconnect events, which requires
triggering on falling edges.

A recent commit updated the trigger type but failed to change the
interrupt provider as required. This leads to the current Linux driver
failing to probe instead of printing an error during suspend and USB
wakeup not working as intended.

Fixes: de3b3de30999 ("arm64: dts: qcom: sdm670: fix USB wakeup interrupt types")
Fixes: 07c8ded6e373 ("arm64: dts: qcom: add sdm670 and pixel 3a device trees")
Cc: stable@vger.kernel.org      # 6.2
Cc: Richard Acayan <mailingradian@gmail.com>
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
---
 arch/arm64/boot/dts/qcom/sdm670.dtsi | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/sdm670.dtsi b/arch/arm64/boot/dts/qcom/sdm670.dtsi
index c873560ae9d5..fe4067c012a0 100644
--- a/arch/arm64/boot/dts/qcom/sdm670.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm670.dtsi
@@ -1295,10 +1295,10 @@ usb_1: usb@a6f8800 {
 					  <&gcc GCC_USB30_PRIM_MASTER_CLK>;
 			assigned-clock-rates = <19200000>, <150000000>;
 
-			interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
-				     <GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>,
-				     <GIC_SPI 488 IRQ_TYPE_EDGE_BOTH>,
-				     <GIC_SPI 489 IRQ_TYPE_EDGE_BOTH>;
+			interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+					      <&intc GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>,
+					      <&pdc 8 IRQ_TYPE_EDGE_BOTH>,
+					      <&pdc 9 IRQ_TYPE_EDGE_BOTH>;
 			interrupt-names = "hs_phy_irq", "ss_phy_irq",
 					  "dm_hs_phy_irq", "dp_hs_phy_irq";
 
-- 
2.41.0


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

* [PATCH 2/3] arm64: dts: qcom: sdm670: fix USB SS wakeup
  2023-12-14  7:43 [PATCH 0/3] arm64: dts: qcom: fix USB wakeup interrupts again (pt 2) Johan Hovold
  2023-12-14  7:43 ` [PATCH 1/3] arm64: dts: qcom: sdm670: fix USB DP/DM HS PHY interrupts Johan Hovold
@ 2023-12-14  7:43 ` Johan Hovold
  2023-12-14 12:28   ` Konrad Dybcio
  2023-12-15  1:46   ` Richard Acayan
  2023-12-14  7:43 ` [PATCH 3/3] arm64: dts: qcom: sc8180x: " Johan Hovold
  2023-12-19 19:33 ` [PATCH 0/3] arm64: dts: qcom: fix USB wakeup interrupts again (pt 2) Bjorn Andersson
  3 siblings, 2 replies; 15+ messages in thread
From: Johan Hovold @ 2023-12-14  7:43 UTC (permalink / raw)
  To: Bjorn Andersson
  Cc: Andy Gross, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Krishna Kurapati PSSNV, linux-arm-msm, devicetree,
	linux-kernel, Johan Hovold, stable, Richard Acayan

The USB SS PHY interrupt needs to be provided by the PDC interrupt
controller in order to be able to wake the system up from low-power
states.

Fixes: 07c8ded6e373 ("arm64: dts: qcom: add sdm670 and pixel 3a device trees")
Cc: stable@vger.kernel.org      # 6.2
Cc: Richard Acayan <mailingradian@gmail.com>
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
---
 arch/arm64/boot/dts/qcom/sdm670.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/sdm670.dtsi b/arch/arm64/boot/dts/qcom/sdm670.dtsi
index fe4067c012a0..730c8351bcaa 100644
--- a/arch/arm64/boot/dts/qcom/sdm670.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm670.dtsi
@@ -1296,7 +1296,7 @@ usb_1: usb@a6f8800 {
 			assigned-clock-rates = <19200000>, <150000000>;
 
 			interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
-					      <&intc GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>,
+					      <&pdc 6 IRQ_TYPE_LEVEL_HIGH>,
 					      <&pdc 8 IRQ_TYPE_EDGE_BOTH>,
 					      <&pdc 9 IRQ_TYPE_EDGE_BOTH>;
 			interrupt-names = "hs_phy_irq", "ss_phy_irq",
-- 
2.41.0


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

* [PATCH 3/3] arm64: dts: qcom: sc8180x: fix USB SS wakeup
  2023-12-14  7:43 [PATCH 0/3] arm64: dts: qcom: fix USB wakeup interrupts again (pt 2) Johan Hovold
  2023-12-14  7:43 ` [PATCH 1/3] arm64: dts: qcom: sdm670: fix USB DP/DM HS PHY interrupts Johan Hovold
  2023-12-14  7:43 ` [PATCH 2/3] arm64: dts: qcom: sdm670: fix USB SS wakeup Johan Hovold
@ 2023-12-14  7:43 ` Johan Hovold
  2023-12-14 12:28   ` Konrad Dybcio
  2023-12-19 19:33 ` [PATCH 0/3] arm64: dts: qcom: fix USB wakeup interrupts again (pt 2) Bjorn Andersson
  3 siblings, 1 reply; 15+ messages in thread
From: Johan Hovold @ 2023-12-14  7:43 UTC (permalink / raw)
  To: Bjorn Andersson
  Cc: Andy Gross, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Krishna Kurapati PSSNV, linux-arm-msm, devicetree,
	linux-kernel, Johan Hovold, stable, Vinod Koul

The USB SS PHY interrupt needs to be provided by the PDC interrupt
controller in order to be able to wake the system up from low-power
states.

Fixes: b080f53a8f44 ("arm64: dts: qcom: sc8180x: Add remoteprocs, wifi and usb nodes")
Cc: stable@vger.kernel.org      # 6.5
Cc: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
---
 arch/arm64/boot/dts/qcom/sc8180x.dtsi | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/sc8180x.dtsi b/arch/arm64/boot/dts/qcom/sc8180x.dtsi
index 8f95779c75fa..7a53d6d18498 100644
--- a/arch/arm64/boot/dts/qcom/sc8180x.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc8180x.dtsi
@@ -2549,7 +2549,7 @@ usb_prim: usb@a6f8800 {
 			compatible = "qcom,sc8180x-dwc3", "qcom,dwc3";
 			reg = <0 0x0a6f8800 0 0x400>;
 			interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
-					      <&intc GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>,
+					      <&pdc 6 IRQ_TYPE_LEVEL_HIGH>,
 					      <&pdc 8 IRQ_TYPE_EDGE_BOTH>,
 					      <&pdc 9 IRQ_TYPE_EDGE_BOTH>;
 			interrupt-names = "hs_phy_irq",
@@ -2623,7 +2623,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>,
-					      <&intc GIC_SPI 487 IRQ_TYPE_LEVEL_HIGH>,
+					      <&pdc 7 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.41.0


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

* Re: [PATCH 1/3] arm64: dts: qcom: sdm670: fix USB DP/DM HS PHY interrupts
  2023-12-14  7:43 ` [PATCH 1/3] arm64: dts: qcom: sdm670: fix USB DP/DM HS PHY interrupts Johan Hovold
@ 2023-12-14 12:27   ` Konrad Dybcio
  2023-12-15  1:46   ` Richard Acayan
  2023-12-16  2:34   ` Richard Acayan
  2 siblings, 0 replies; 15+ messages in thread
From: Konrad Dybcio @ 2023-12-14 12:27 UTC (permalink / raw)
  To: Johan Hovold, Bjorn Andersson
  Cc: Andy Gross, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Krishna Kurapati PSSNV, linux-arm-msm, devicetree, linux-kernel,
	stable, Richard Acayan



On 12/14/23 08:43, Johan Hovold wrote:
> The USB DP/DM HS PHY interrupts need to be provided by the PDC interrupt
> controller in order to be able to wake the system up from low-power
> states and to be able to detect disconnect events, which requires
> triggering on falling edges.
> 
> A recent commit updated the trigger type but failed to change the
> interrupt provider as required. This leads to the current Linux driver
> failing to probe instead of printing an error during suspend and USB
> wakeup not working as intended.
> 
> Fixes: de3b3de30999 ("arm64: dts: qcom: sdm670: fix USB wakeup interrupt types")
> Fixes: 07c8ded6e373 ("arm64: dts: qcom: add sdm670 and pixel 3a device trees")
> Cc: stable@vger.kernel.org      # 6.2
> Cc: Richard Acayan <mailingradian@gmail.com>
> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>

Konrad

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

* Re: [PATCH 2/3] arm64: dts: qcom: sdm670: fix USB SS wakeup
  2023-12-14  7:43 ` [PATCH 2/3] arm64: dts: qcom: sdm670: fix USB SS wakeup Johan Hovold
@ 2023-12-14 12:28   ` Konrad Dybcio
  2023-12-15  1:46   ` Richard Acayan
  1 sibling, 0 replies; 15+ messages in thread
From: Konrad Dybcio @ 2023-12-14 12:28 UTC (permalink / raw)
  To: Johan Hovold, Bjorn Andersson
  Cc: Andy Gross, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Krishna Kurapati PSSNV, linux-arm-msm, devicetree, linux-kernel,
	stable, Richard Acayan



On 12/14/23 08:43, Johan Hovold wrote:
> The USB SS PHY interrupt needs to be provided by the PDC interrupt
> controller in order to be able to wake the system up from low-power
> states.
> 
> Fixes: 07c8ded6e373 ("arm64: dts: qcom: add sdm670 and pixel 3a device trees")
> Cc: stable@vger.kernel.org      # 6.2
> Cc: Richard Acayan <mailingradian@gmail.com>
> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>

Konrad

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

* Re: [PATCH 3/3] arm64: dts: qcom: sc8180x: fix USB SS wakeup
  2023-12-14  7:43 ` [PATCH 3/3] arm64: dts: qcom: sc8180x: " Johan Hovold
@ 2023-12-14 12:28   ` Konrad Dybcio
  0 siblings, 0 replies; 15+ messages in thread
From: Konrad Dybcio @ 2023-12-14 12:28 UTC (permalink / raw)
  To: Johan Hovold, Bjorn Andersson
  Cc: Andy Gross, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Krishna Kurapati PSSNV, linux-arm-msm, devicetree, linux-kernel,
	stable, Vinod Koul



On 12/14/23 08:43, Johan Hovold wrote:
> The USB SS PHY interrupt needs to be provided by the PDC interrupt
> controller in order to be able to wake the system up from low-power
> states.
> 
> Fixes: b080f53a8f44 ("arm64: dts: qcom: sc8180x: Add remoteprocs, wifi and usb nodes")
> Cc: stable@vger.kernel.org      # 6.5
> Cc: Vinod Koul <vkoul@kernel.org>
> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>

Konrad

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

* Re: [PATCH 1/3] arm64: dts: qcom: sdm670: fix USB DP/DM HS PHY interrupts
  2023-12-14  7:43 ` [PATCH 1/3] arm64: dts: qcom: sdm670: fix USB DP/DM HS PHY interrupts Johan Hovold
  2023-12-14 12:27   ` Konrad Dybcio
@ 2023-12-15  1:46   ` Richard Acayan
  2023-12-15  7:34     ` Johan Hovold
  2023-12-16  2:34   ` Richard Acayan
  2 siblings, 1 reply; 15+ messages in thread
From: Richard Acayan @ 2023-12-15  1:46 UTC (permalink / raw)
  To: Johan Hovold
  Cc: Bjorn Andersson, Andy Gross, Konrad Dybcio, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Krishna Kurapati PSSNV,
	linux-arm-msm, devicetree, linux-kernel, stable

On Thu, Dec 14, 2023 at 08:43:17AM +0100, Johan Hovold wrote:
> The USB DP/DM HS PHY interrupts need to be provided by the PDC interrupt
> controller in order to be able to wake the system up from low-power
> states and to be able to detect disconnect events, which requires
> triggering on falling edges.
>
> A recent commit updated the trigger type but failed to change the
> interrupt provider as required. This leads to the current Linux driver
> failing to probe instead of printing an error during suspend and USB
> wakeup not working as intended.
>
> Fixes: de3b3de30999 ("arm64: dts: qcom: sdm670: fix USB wakeup interrupt types")
> Fixes: 07c8ded6e373 ("arm64: dts: qcom: add sdm670 and pixel 3a device trees")
> Cc: stable@vger.kernel.org      # 6.2
> Cc: Richard Acayan <mailingradian@gmail.com>
> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
> ---

Tested-by: Richard Acayan <mailingradian@gmail.com>

On a Pixel 3a, plugging in a USB cable doesn't wake up the device
(presumably because there is no wakeup-source property) but this gets
USB working again on linux-next.

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

* Re: [PATCH 2/3] arm64: dts: qcom: sdm670: fix USB SS wakeup
  2023-12-14  7:43 ` [PATCH 2/3] arm64: dts: qcom: sdm670: fix USB SS wakeup Johan Hovold
  2023-12-14 12:28   ` Konrad Dybcio
@ 2023-12-15  1:46   ` Richard Acayan
  1 sibling, 0 replies; 15+ messages in thread
From: Richard Acayan @ 2023-12-15  1:46 UTC (permalink / raw)
  To: Johan Hovold
  Cc: Bjorn Andersson, Andy Gross, Konrad Dybcio, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Krishna Kurapati PSSNV,
	linux-arm-msm, devicetree, linux-kernel, stable

On Thu, Dec 14, 2023 at 08:43:18AM +0100, Johan Hovold wrote:
> The USB SS PHY interrupt needs to be provided by the PDC interrupt
> controller in order to be able to wake the system up from low-power
> states.
>
> Fixes: 07c8ded6e373 ("arm64: dts: qcom: add sdm670 and pixel 3a device trees")
> Cc: stable@vger.kernel.org      # 6.2
> Cc: Richard Acayan <mailingradian@gmail.com>
> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
> ---

Tested-by: Richard Acayan <mailingradian@gmail.com>

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

* Re: [PATCH 1/3] arm64: dts: qcom: sdm670: fix USB DP/DM HS PHY interrupts
  2023-12-15  1:46   ` Richard Acayan
@ 2023-12-15  7:34     ` Johan Hovold
  2023-12-16  0:04       ` Richard Acayan
  0 siblings, 1 reply; 15+ messages in thread
From: Johan Hovold @ 2023-12-15  7:34 UTC (permalink / raw)
  To: Richard Acayan
  Cc: Johan Hovold, Bjorn Andersson, Andy Gross, Konrad Dybcio,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Krishna Kurapati PSSNV, linux-arm-msm, devicetree, linux-kernel,
	stable

On Thu, Dec 14, 2023 at 08:46:27PM -0500, Richard Acayan wrote:
> On Thu, Dec 14, 2023 at 08:43:17AM +0100, Johan Hovold wrote:
> > The USB DP/DM HS PHY interrupts need to be provided by the PDC interrupt
> > controller in order to be able to wake the system up from low-power
> > states and to be able to detect disconnect events, which requires
> > triggering on falling edges.
> >
> > A recent commit updated the trigger type but failed to change the
> > interrupt provider as required. This leads to the current Linux driver
> > failing to probe instead of printing an error during suspend and USB
> > wakeup not working as intended.
> >
> > Fixes: de3b3de30999 ("arm64: dts: qcom: sdm670: fix USB wakeup interrupt types")
> > Fixes: 07c8ded6e373 ("arm64: dts: qcom: add sdm670 and pixel 3a device trees")
> > Cc: stable@vger.kernel.org      # 6.2
> > Cc: Richard Acayan <mailingradian@gmail.com>
> > Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
> > ---
> 
> Tested-by: Richard Acayan <mailingradian@gmail.com>
> 
> On a Pixel 3a, plugging in a USB cable doesn't wake up the device
> (presumably because there is no wakeup-source property) but this gets
> USB working again on linux-next.

Thanks for testing. And yes, the wakeup interrupts will indeed not be
enabled at system suspend unless the wakeup-source property is there.
Did you try adding it?

Johan

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

* Re: [PATCH 1/3] arm64: dts: qcom: sdm670: fix USB DP/DM HS PHY interrupts
  2023-12-15  7:34     ` Johan Hovold
@ 2023-12-16  0:04       ` Richard Acayan
  2023-12-18  7:36         ` Johan Hovold
  0 siblings, 1 reply; 15+ messages in thread
From: Richard Acayan @ 2023-12-16  0:04 UTC (permalink / raw)
  To: Johan Hovold
  Cc: Bjorn Andersson, Andy Gross, Konrad Dybcio, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Krishna Kurapati PSSNV,
	linux-arm-msm, devicetree, linux-kernel, stable

On Fri, Dec 15, 2023 at 08:34:39AM +0100, Johan Hovold wrote:
> On Thu, Dec 14, 2023 at 08:46:27PM -0500, Richard Acayan wrote:
> > On Thu, Dec 14, 2023 at 08:43:17AM +0100, Johan Hovold wrote:
> > > The USB DP/DM HS PHY interrupts need to be provided by the PDC interrupt
> > > controller in order to be able to wake the system up from low-power
> > > states and to be able to detect disconnect events, which requires
> > > triggering on falling edges.
> > >
> > > A recent commit updated the trigger type but failed to change the
> > > interrupt provider as required. This leads to the current Linux driver
> > > failing to probe instead of printing an error during suspend and USB
> > > wakeup not working as intended.
> > >
> > > Fixes: de3b3de30999 ("arm64: dts: qcom: sdm670: fix USB wakeup interrupt types")
> > > Fixes: 07c8ded6e373 ("arm64: dts: qcom: add sdm670 and pixel 3a device trees")
> > > Cc: stable@vger.kernel.org      # 6.2
> > > Cc: Richard Acayan <mailingradian@gmail.com>
> > > Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
> > > ---
> > 
> > Tested-by: Richard Acayan <mailingradian@gmail.com>
> > 
> > On a Pixel 3a, plugging in a USB cable doesn't wake up the device
> > (presumably because there is no wakeup-source property) but this gets
> > USB working again on linux-next.
>
> Thanks for testing. And yes, the wakeup interrupts will indeed not be
> enabled at system suspend unless the wakeup-source property is there.
> Did you try adding it?

Just tested today. Adding it does not cause the system to wake up when
plugging in a laptop on the Pixel 3a, but that might just be because
USB wakeups are disabled when the adapter is configured for peripheral
mode.

drivers/usb/dwc3/dwc3-qcom.c (dwc3_qcom_suspend):
	/*
	 * The role is stable during suspend as role switching is done from a
	 * freezable workqueue.
	 */
	if (dwc3_qcom_is_host(qcom) && wakeup) {
		qcom->usb2_speed = dwc3_qcom_read_usb2_speed(qcom);
		dwc3_qcom_enable_interrupts(qcom);
	}

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

* Re: [PATCH 1/3] arm64: dts: qcom: sdm670: fix USB DP/DM HS PHY interrupts
  2023-12-14  7:43 ` [PATCH 1/3] arm64: dts: qcom: sdm670: fix USB DP/DM HS PHY interrupts Johan Hovold
  2023-12-14 12:27   ` Konrad Dybcio
  2023-12-15  1:46   ` Richard Acayan
@ 2023-12-16  2:34   ` Richard Acayan
  2023-12-18  7:39     ` Johan Hovold
  2 siblings, 1 reply; 15+ messages in thread
From: Richard Acayan @ 2023-12-16  2:34 UTC (permalink / raw)
  To: Johan Hovold
  Cc: Bjorn Andersson, Andy Gross, Konrad Dybcio, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Krishna Kurapati PSSNV,
	linux-arm-msm, devicetree, linux-kernel, stable

On Thu, Dec 14, 2023 at 08:43:17AM +0100, Johan Hovold wrote:
> The USB DP/DM HS PHY interrupts need to be provided by the PDC interrupt
> controller in order to be able to wake the system up from low-power
> states and to be able to detect disconnect events, which requires
> triggering on falling edges.
>
> A recent commit updated the trigger type but failed to change the
> interrupt provider as required. This leads to the current Linux driver
> failing to probe instead of printing an error during suspend and USB
> wakeup not working as intended.
>
> Fixes: de3b3de30999 ("arm64: dts: qcom: sdm670: fix USB wakeup interrupt types")
> Fixes: 07c8ded6e373 ("arm64: dts: qcom: add sdm670 and pixel 3a device trees")
> Cc: stable@vger.kernel.org      # 6.2

I almost forgot to mention, both SDM670 patches seem to depend on
b51ee205dc4f ("arm64: dts: qcom: sdm670: Add PDC") in 6.6 to compile
properly.

> Cc: Richard Acayan <mailingradian@gmail.com>
> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
> ---
>  arch/arm64/boot/dts/qcom/sdm670.dtsi | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/qcom/sdm670.dtsi b/arch/arm64/boot/dts/qcom/sdm670.dtsi
> index c873560ae9d5..fe4067c012a0 100644
> --- a/arch/arm64/boot/dts/qcom/sdm670.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sdm670.dtsi
> @@ -1295,10 +1295,10 @@ usb_1: usb@a6f8800 {
>  					  <&gcc GCC_USB30_PRIM_MASTER_CLK>;
>  			assigned-clock-rates = <19200000>, <150000000>;
>  
> -			interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
> -				     <GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>,
> -				     <GIC_SPI 488 IRQ_TYPE_EDGE_BOTH>,
> -				     <GIC_SPI 489 IRQ_TYPE_EDGE_BOTH>;
> +			interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
> +					      <&intc GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>,
> +					      <&pdc 8 IRQ_TYPE_EDGE_BOTH>,
> +					      <&pdc 9 IRQ_TYPE_EDGE_BOTH>;
>  			interrupt-names = "hs_phy_irq", "ss_phy_irq",
>  					  "dm_hs_phy_irq", "dp_hs_phy_irq";
>  
> -- 
> 2.41.0
>

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

* Re: [PATCH 1/3] arm64: dts: qcom: sdm670: fix USB DP/DM HS PHY interrupts
  2023-12-16  0:04       ` Richard Acayan
@ 2023-12-18  7:36         ` Johan Hovold
  0 siblings, 0 replies; 15+ messages in thread
From: Johan Hovold @ 2023-12-18  7:36 UTC (permalink / raw)
  To: Richard Acayan
  Cc: Bjorn Andersson, Andy Gross, Konrad Dybcio, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Krishna Kurapati PSSNV,
	linux-arm-msm, devicetree, linux-kernel, stable

On Fri, Dec 15, 2023 at 07:04:23PM -0500, Richard Acayan wrote:
> On Fri, Dec 15, 2023 at 08:34:39AM +0100, Johan Hovold wrote:
> > On Thu, Dec 14, 2023 at 08:46:27PM -0500, Richard Acayan wrote:

> > > Tested-by: Richard Acayan <mailingradian@gmail.com>
> > > 
> > > On a Pixel 3a, plugging in a USB cable doesn't wake up the device
> > > (presumably because there is no wakeup-source property) but this gets
> > > USB working again on linux-next.
> >
> > Thanks for testing. And yes, the wakeup interrupts will indeed not be
> > enabled at system suspend unless the wakeup-source property is there.
> > Did you try adding it?
> 
> Just tested today. Adding it does not cause the system to wake up when
> plugging in a laptop on the Pixel 3a, but that might just be because
> USB wakeups are disabled when the adapter is configured for peripheral
> mode.

Right, wake up is currently only implemented for host mode.

Johan

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

* Re: [PATCH 1/3] arm64: dts: qcom: sdm670: fix USB DP/DM HS PHY interrupts
  2023-12-16  2:34   ` Richard Acayan
@ 2023-12-18  7:39     ` Johan Hovold
  0 siblings, 0 replies; 15+ messages in thread
From: Johan Hovold @ 2023-12-18  7:39 UTC (permalink / raw)
  To: Richard Acayan
  Cc: Johan Hovold, Bjorn Andersson, Andy Gross, Konrad Dybcio,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Krishna Kurapati PSSNV, linux-arm-msm, devicetree, linux-kernel,
	stable

On Fri, Dec 15, 2023 at 09:34:53PM -0500, Richard Acayan wrote:
> On Thu, Dec 14, 2023 at 08:43:17AM +0100, Johan Hovold wrote:
> > The USB DP/DM HS PHY interrupts need to be provided by the PDC interrupt
> > controller in order to be able to wake the system up from low-power
> > states and to be able to detect disconnect events, which requires
> > triggering on falling edges.
> >
> > A recent commit updated the trigger type but failed to change the
> > interrupt provider as required. This leads to the current Linux driver
> > failing to probe instead of printing an error during suspend and USB
> > wakeup not working as intended.
> >
> > Fixes: de3b3de30999 ("arm64: dts: qcom: sdm670: fix USB wakeup interrupt types")
> > Fixes: 07c8ded6e373 ("arm64: dts: qcom: add sdm670 and pixel 3a device trees")
> > Cc: stable@vger.kernel.org      # 6.2
> 
> I almost forgot to mention, both SDM670 patches seem to depend on
> b51ee205dc4f ("arm64: dts: qcom: sdm670: Add PDC") in 6.6 to compile
> properly.

Thanks for spotting that. The 6.5 stable tree is EOL now so this will
fortunately not be an issue in practice.

Johan

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

* Re: [PATCH 0/3] arm64: dts: qcom: fix USB wakeup interrupts again (pt 2)
  2023-12-14  7:43 [PATCH 0/3] arm64: dts: qcom: fix USB wakeup interrupts again (pt 2) Johan Hovold
                   ` (2 preceding siblings ...)
  2023-12-14  7:43 ` [PATCH 3/3] arm64: dts: qcom: sc8180x: " Johan Hovold
@ 2023-12-19 19:33 ` Bjorn Andersson
  3 siblings, 0 replies; 15+ messages in thread
From: Bjorn Andersson @ 2023-12-19 19:33 UTC (permalink / raw)
  To: Johan Hovold
  Cc: Andy Gross, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Krishna Kurapati PSSNV, linux-arm-msm, devicetree,
	linux-kernel


On Thu, 14 Dec 2023 08:43:16 +0100, Johan Hovold wrote:
> The USB DP/DM HS PHY interrupts need to be provided by the PDC interrupt
> controller in order to be able to wake the system up from low-power
> states and to be able to detect disconnect events, which requires
> triggering on falling edges.
> 
> A recent commit updated the trigger type but failed to change the
> interrupt provider as required. This leads to the current Linux driver
> failing to probe instead of printing an error during suspend and USB
> wakeup not working as intended.
> 
> [...]

Applied, thanks!

[1/3] arm64: dts: qcom: sdm670: fix USB DP/DM HS PHY interrupts
      commit: c42d12ea105f67b0f137f1e52d5c59d13fe12b1f
[2/3] arm64: dts: qcom: sdm670: fix USB SS wakeup
      commit: 047b2edc35b8db22354b4fba37818b548fc18896
[3/3] arm64: dts: qcom: sc8180x: fix USB SS wakeup
      commit: 0afa885d42d05d30161ab8eab1ebacd993edb82b

Best regards,
-- 
Bjorn Andersson <andersson@kernel.org>

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

end of thread, other threads:[~2023-12-19 19:33 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-12-14  7:43 [PATCH 0/3] arm64: dts: qcom: fix USB wakeup interrupts again (pt 2) Johan Hovold
2023-12-14  7:43 ` [PATCH 1/3] arm64: dts: qcom: sdm670: fix USB DP/DM HS PHY interrupts Johan Hovold
2023-12-14 12:27   ` Konrad Dybcio
2023-12-15  1:46   ` Richard Acayan
2023-12-15  7:34     ` Johan Hovold
2023-12-16  0:04       ` Richard Acayan
2023-12-18  7:36         ` Johan Hovold
2023-12-16  2:34   ` Richard Acayan
2023-12-18  7:39     ` Johan Hovold
2023-12-14  7:43 ` [PATCH 2/3] arm64: dts: qcom: sdm670: fix USB SS wakeup Johan Hovold
2023-12-14 12:28   ` Konrad Dybcio
2023-12-15  1:46   ` Richard Acayan
2023-12-14  7:43 ` [PATCH 3/3] arm64: dts: qcom: sc8180x: " Johan Hovold
2023-12-14 12:28   ` Konrad Dybcio
2023-12-19 19:33 ` [PATCH 0/3] arm64: dts: qcom: fix USB wakeup interrupts again (pt 2) Bjorn Andersson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.