* [PATCH v3 0/8] USB31DRD phy updates for Google Tensor gs101 (orientation & DWC3 rpm)
@ 2024-12-05 7:33 André Draszik
2024-12-05 7:33 ` [PATCH v3 5/8] phy: exynos5-usbdrd: gs101: ensure power is gated to SS phy in phy_exit() André Draszik
0 siblings, 1 reply; 5+ messages in thread
From: André Draszik @ 2024-12-05 7:33 UTC (permalink / raw)
To: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Marek Szyprowski,
Sylwester Nawrocki, Alim Akhtar
Cc: Peter Griffin, Tudor Ambarus, Sam Protsenko, Will McVicker,
Roy Luo, kernel-team, linux-phy, devicetree, linux-kernel,
linux-arm-kernel, linux-samsung-soc, André Draszik,
Krzysztof Kozlowski, stable
Hi,
This series enables USB3 Type-C lane orientation detection and
configuration on platforms that support this (Google gs101), and it
also allows the DWC3 core to enter runtime suspend even when UDC is
active.
For lane orientation, this driver now optionally (based on DT)
subscribes to the TCPC's lane orientation notifier and remembers the
orientation to later be used during phy_init().
To enable DWC3 runtime suspend, the gadget needs to inform the core via
dwc3_gadget_interrupt() with event type == DWC3_DEVICE_EVENT_DISCONNECT
of a cable disconnect. For that to allow to happen, this driver
therefore needs to stop forcing the Vbus and bvalid signals to active
and instead change their state based on actual conditions. The same
TCPC notifier is used to detect this, and program the hardware
accordingly.
That signal state is based on advice given by Thinh in
https://lore.kernel.org/all/20240813230625.jgkatqstyhcmpezv@synopsys.com/
Both changes together now allow cable orientation detection to work, as
the DWC3 will now call phy_exit() on cable disconnect, and we can
reprogram the lane mux in phy_init().
On top of that, there are some small related cleanup patches.
Signed-off-by: André Draszik <andre.draszik@linaro.org>
---
Changes in v3:
- patches 1 & 2: update as per Rob's suggestions
- patch 7 & 8: drop init to -1 of phy_drd->orientation (Vinod)
- patch 7: avoid an #ifdef
- Link to v2: https://lore.kernel.org/r/20241203-gs101-phy-lanes-orientation-phy-v2-0-40dcf1b7670d@linaro.org
Changes in v2:
- squash patches #2 and #3 from v1 to actually disallow
orientation-switch on !gs101 (not just optional) (Conor)
- update bindings commit message to clarify that the intention for the
driver is to work with old and new DTS (Conor)
- add cc-stable and fixes tags to power gating patch (Krzysztof)
- fix an #include and typo (Peter)
- Link to v1: https://lore.kernel.org/r/20241127-gs101-phy-lanes-orientation-phy-v1-0-1b7fce24960b@linaro.org
---
André Draszik (8):
dt-bindings: phy: samsung,usb3-drd-phy: add blank lines between DT properties
dt-bindings: phy: samsung,usb3-drd-phy: gs101: require Type-C properties
phy: exynos5-usbdrd: convert to dev_err_probe
phy: exynos5-usbdrd: fix EDS distribution tuning (gs101)
phy: exynos5-usbdrd: gs101: ensure power is gated to SS phy in phy_exit()
phy: exynos5-usbdrd: gs101: configure SS lanes based on orientation
phy: exynos5-usbdrd: subscribe to orientation notifier if required
phy: exynos5-usbdrd: allow DWC3 runtime suspend with UDC bound (E850+)
.../bindings/phy/samsung,usb3-drd-phy.yaml | 21 +-
drivers/phy/samsung/Kconfig | 1 +
drivers/phy/samsung/phy-exynos5-usbdrd.c | 215 ++++++++++++++++-----
3 files changed, 190 insertions(+), 47 deletions(-)
---
base-commit: c245a7a79602ccbee780c004c1e4abcda66aec32
change-id: 20241127-gs101-phy-lanes-orientation-phy-29d20c6d84d2
Best regards,
--
André Draszik <andre.draszik@linaro.org>
^ permalink raw reply [flat|nested] 5+ messages in thread* [PATCH v3 5/8] phy: exynos5-usbdrd: gs101: ensure power is gated to SS phy in phy_exit()
2024-12-05 7:33 [PATCH v3 0/8] USB31DRD phy updates for Google Tensor gs101 (orientation & DWC3 rpm) André Draszik
@ 2024-12-05 7:33 ` André Draszik
2024-12-05 8:04 ` Greg KH
0 siblings, 1 reply; 5+ messages in thread
From: André Draszik @ 2024-12-05 7:33 UTC (permalink / raw)
To: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Marek Szyprowski,
Sylwester Nawrocki, Alim Akhtar
Cc: Peter Griffin, Tudor Ambarus, Sam Protsenko, Will McVicker,
Roy Luo, kernel-team, linux-phy, devicetree, linux-kernel,
linux-arm-kernel, linux-samsung-soc, André Draszik, stable,
Krzysztof Kozlowski
We currently don't gate the power to the SS phy in phy_exit().
Shuffle the code slightly to ensure the power is gated to the SS phy as
well.
Fixes: 32267c29bc7d ("phy: exynos5-usbdrd: support Exynos USBDRD 3.1 combo phy (HS & SS)")
CC: stable@vger.kernel.org # 6.11+
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Peter Griffin <peter.griffin@linaro.org>
Signed-off-by: André Draszik <andre.draszik@linaro.org>
---
v2:
* add cc-stable and fixes tags (Krzysztof)
* collect tags
---
drivers/phy/samsung/phy-exynos5-usbdrd.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/drivers/phy/samsung/phy-exynos5-usbdrd.c b/drivers/phy/samsung/phy-exynos5-usbdrd.c
index 2a724d362c2d..c1ce6fdeef31 100644
--- a/drivers/phy/samsung/phy-exynos5-usbdrd.c
+++ b/drivers/phy/samsung/phy-exynos5-usbdrd.c
@@ -1296,14 +1296,17 @@ static int exynos5_usbdrd_gs101_phy_exit(struct phy *phy)
struct exynos5_usbdrd_phy *phy_drd = to_usbdrd_phy(inst);
int ret;
+ if (inst->phy_cfg->id == EXYNOS5_DRDPHY_UTMI) {
+ ret = exynos850_usbdrd_phy_exit(phy);
+ if (ret)
+ return ret;
+ }
+
+ exynos5_usbdrd_phy_isol(inst, true);
+
if (inst->phy_cfg->id != EXYNOS5_DRDPHY_UTMI)
return 0;
- ret = exynos850_usbdrd_phy_exit(phy);
- if (ret)
- return ret;
-
- exynos5_usbdrd_phy_isol(inst, true);
return regulator_bulk_disable(phy_drd->drv_data->n_regulators,
phy_drd->regulators);
}
--
2.47.0.338.g60cca15819-goog
^ permalink raw reply related [flat|nested] 5+ messages in thread* Re: [PATCH v3 5/8] phy: exynos5-usbdrd: gs101: ensure power is gated to SS phy in phy_exit()
2024-12-05 7:33 ` [PATCH v3 5/8] phy: exynos5-usbdrd: gs101: ensure power is gated to SS phy in phy_exit() André Draszik
@ 2024-12-05 8:04 ` Greg KH
2024-12-08 15:39 ` Vinod Koul
0 siblings, 1 reply; 5+ messages in thread
From: Greg KH @ 2024-12-05 8:04 UTC (permalink / raw)
To: André Draszik
Cc: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Marek Szyprowski,
Sylwester Nawrocki, Alim Akhtar, Peter Griffin, Tudor Ambarus,
Sam Protsenko, Will McVicker, Roy Luo, kernel-team, linux-phy,
devicetree, linux-kernel, linux-arm-kernel, linux-samsung-soc,
stable, Krzysztof Kozlowski
On Thu, Dec 05, 2024 at 07:33:16AM +0000, André Draszik wrote:
> We currently don't gate the power to the SS phy in phy_exit().
>
> Shuffle the code slightly to ensure the power is gated to the SS phy as
> well.
>
> Fixes: 32267c29bc7d ("phy: exynos5-usbdrd: support Exynos USBDRD 3.1 combo phy (HS & SS)")
> CC: stable@vger.kernel.org # 6.11+
Why is a patch 5/8 a stable thing? If this is such an important bugfix,
it should be sent separately as a 1/1 patch, right?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH v3 5/8] phy: exynos5-usbdrd: gs101: ensure power is gated to SS phy in phy_exit()
2024-12-05 8:04 ` Greg KH
@ 2024-12-08 15:39 ` Vinod Koul
2024-12-09 9:54 ` André Draszik
0 siblings, 1 reply; 5+ messages in thread
From: Vinod Koul @ 2024-12-08 15:39 UTC (permalink / raw)
To: Greg KH
Cc: André Draszik, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Marek Szyprowski,
Sylwester Nawrocki, Alim Akhtar, Peter Griffin, Tudor Ambarus,
Sam Protsenko, Will McVicker, Roy Luo, kernel-team, linux-phy,
devicetree, linux-kernel, linux-arm-kernel, linux-samsung-soc,
stable, Krzysztof Kozlowski
On 05-12-24, 09:04, Greg KH wrote:
> On Thu, Dec 05, 2024 at 07:33:16AM +0000, André Draszik wrote:
> > We currently don't gate the power to the SS phy in phy_exit().
> >
> > Shuffle the code slightly to ensure the power is gated to the SS phy as
> > well.
> >
> > Fixes: 32267c29bc7d ("phy: exynos5-usbdrd: support Exynos USBDRD 3.1 combo phy (HS & SS)")
> > CC: stable@vger.kernel.org # 6.11+
>
> Why is a patch 5/8 a stable thing? If this is such an important bugfix,
> it should be sent separately as a 1/1 patch, right?
Correct, one should move fixes to top of the series..
--
~Vinod
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH v3 5/8] phy: exynos5-usbdrd: gs101: ensure power is gated to SS phy in phy_exit()
2024-12-08 15:39 ` Vinod Koul
@ 2024-12-09 9:54 ` André Draszik
0 siblings, 0 replies; 5+ messages in thread
From: André Draszik @ 2024-12-09 9:54 UTC (permalink / raw)
To: Vinod Koul, Greg KH
Cc: Kishon Vijay Abraham I, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Marek Szyprowski, Sylwester Nawrocki, Alim Akhtar,
Peter Griffin, Tudor Ambarus, Sam Protsenko, Will McVicker,
Roy Luo, kernel-team, linux-phy, devicetree, linux-kernel,
linux-arm-kernel, linux-samsung-soc, stable, Krzysztof Kozlowski
Hi Vinod,
On Sun, 2024-12-08 at 21:09 +0530, Vinod Koul wrote:
> On 05-12-24, 09:04, Greg KH wrote:
> > On Thu, Dec 05, 2024 at 07:33:16AM +0000, André Draszik wrote:
> > > We currently don't gate the power to the SS phy in phy_exit().
> > >
> > > Shuffle the code slightly to ensure the power is gated to the SS phy as
> > > well.
> > >
> > > Fixes: 32267c29bc7d ("phy: exynos5-usbdrd: support Exynos USBDRD 3.1 combo phy (HS & SS)")
> > > CC: stable@vger.kernel.org # 6.11+
> >
> > Why is a patch 5/8 a stable thing? If this is such an important bugfix,
> > it should be sent separately as a 1/1 patch, right?
>
> Correct, one should move fixes to top of the series..
Thanks Vinod, and sorry for that - separated out as per Greg's
request here:
https://lore.kernel.org/all/20241205-gs101-usb-phy-fix-v4-1-0278809fb810@linaro.org/
Cheers,
Andre'
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-12-09 9:55 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-05 7:33 [PATCH v3 0/8] USB31DRD phy updates for Google Tensor gs101 (orientation & DWC3 rpm) André Draszik
2024-12-05 7:33 ` [PATCH v3 5/8] phy: exynos5-usbdrd: gs101: ensure power is gated to SS phy in phy_exit() André Draszik
2024-12-05 8:04 ` Greg KH
2024-12-08 15:39 ` Vinod Koul
2024-12-09 9:54 ` André Draszik
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox