drivers/usb/dwc3/dwc3-meson-g12a.c | 6 ++++++ 1 file changed, 6 insertions(+)
Device connected to usb otg port of GXL-based boards can not be
recognised after resumption, doesn't recover even if disconnect and
reconnect the device. dmesg shows it disconnects during resumption.
[ 41.492911] usb 1-2: USB disconnect, device number 3
[ 41.499346] usb 1-2: unregistering device
[ 41.511939] usb 1-2: unregistering interface 1-2:1.0
Calling usb_post_init() will fix this issue, and it's tested and
verified on libretech's aml-s905x-cc board.
Cc: stable@vger.kernel.org # v5.8+
Fixes: c99993376f72 ("usb: dwc3: Add Amlogic G12A DWC3 glue")
Signed-off-by: Luke Lu <luke.lu@libre.computer>
---
Note here, the commmit of Fixes tag is the first patch which bring
suspend/resume function, so let's use it as the fix tag.
As commit 5b0ba0caaf3a: (usb: dwc3: meson-g12a: refactor usb init)"
introduced the use_post_init() function, and this patch will explicitly
depend on it, so let's set kernel version higher or equal to v5.8.
Changes since v1:
- add Fixes tag and Cc stable tree
---
drivers/usb/dwc3/dwc3-meson-g12a.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/usb/dwc3/dwc3-meson-g12a.c b/drivers/usb/dwc3/dwc3-meson-g12a.c
index e99c7489dba0..2c07c038b584 100644
--- a/drivers/usb/dwc3/dwc3-meson-g12a.c
+++ b/drivers/usb/dwc3/dwc3-meson-g12a.c
@@ -926,6 +926,12 @@ static int __maybe_unused dwc3_meson_g12a_resume(struct device *dev)
return ret;
}
+ if (priv->drvdata->usb_post_init) {
+ ret = priv->drvdata->usb_post_init(priv);
+ if (ret)
+ return ret;
+ }
+
return 0;
}
--
2.40.1
On 09/08/2023 23:29, Luke Lu wrote: > Device connected to usb otg port of GXL-based boards can not be > recognised after resumption, doesn't recover even if disconnect and > reconnect the device. dmesg shows it disconnects during resumption. > > [ 41.492911] usb 1-2: USB disconnect, device number 3 > [ 41.499346] usb 1-2: unregistering device > [ 41.511939] usb 1-2: unregistering interface 1-2:1.0 > > Calling usb_post_init() will fix this issue, and it's tested and > verified on libretech's aml-s905x-cc board. > > Cc: stable@vger.kernel.org # v5.8+ > Fixes: c99993376f72 ("usb: dwc3: Add Amlogic G12A DWC3 glue") > Signed-off-by: Luke Lu <luke.lu@libre.computer> > > --- > Note here, the commmit of Fixes tag is the first patch which bring > suspend/resume function, so let's use it as the fix tag. > > As commit 5b0ba0caaf3a: (usb: dwc3: meson-g12a: refactor usb init)" > introduced the use_post_init() function, and this patch will explicitly > depend on it, so let's set kernel version higher or equal to v5.8. > > Changes since v1: > - add Fixes tag and Cc stable tree > --- > drivers/usb/dwc3/dwc3-meson-g12a.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/usb/dwc3/dwc3-meson-g12a.c b/drivers/usb/dwc3/dwc3-meson-g12a.c > index e99c7489dba0..2c07c038b584 100644 > --- a/drivers/usb/dwc3/dwc3-meson-g12a.c > +++ b/drivers/usb/dwc3/dwc3-meson-g12a.c > @@ -926,6 +926,12 @@ static int __maybe_unused dwc3_meson_g12a_resume(struct device *dev) > return ret; > } > > + if (priv->drvdata->usb_post_init) { > + ret = priv->drvdata->usb_post_init(priv); > + if (ret) > + return ret; > + } > + > return 0; > } > Acked-by: Neil Armstrong <neil.armstrong@linaro.org>
© 2016 - 2025 Red Hat, Inc.