On 2017-07-07, Jochen Sprickerhof wrote: > I've created patches for v4.12 (applies to v4.11 as well) and git > master and send them to the subsystem maintainers. Would be great to see > them included in the Debian kernel as well.
Thanks! Is this the only patch needed? Does it also need one of the patches mentioned earlier in this bug? This is a single patch, with a v4.12 and v4.11 variant, or two very similar looking patches? I'd be happy to test on debian's 4.9 and 4.11 kernels, but it is a little unclear to me exactly which patches are meant for what. live well, vagrant > From 7b12187f59ff43571e664b9f6987534ee622700f Mon Sep 17 00:00:00 2001 > From: Jochen Sprickerhof <g...@jochen.sprickerhof.de> > Date: Fri, 7 Jul 2017 19:38:03 +0200 > Subject: [PATCH] v4.12: usb: dwc3: core: Setup phy before trying to read from > it > > Commit c499ff71ff2a ("usb: dwc3: core: re-factor init and exit paths") > moved the call to dwc3_phy_setup() from dwc3_probe() to dwc3_core_init() > and after the dwc3_readl() (now in dwc3_core_is_valid). This broke USB > and Ethernet on Odroid XU4, because dwc3_readl() needs dwc3_phy_setup() > to be run before. > > Fix this by moving the call to dwc3_phy_setup() before > dwc3_core_is_valid(). > > This fixes USB and Ethernet on Odroid XU4. > > Also see https://bugs.debian.org/843448 > > Signed-off-by: Jochen Sprickerhof <g...@jochen.sprickerhof.de> > Fixes: c499ff71ff2a ("usb: dwc3: core: re-factor init and exit paths") > --- > drivers/usb/dwc3/core.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c > index 455d89a1cd6d..2418979a883a 100644 > --- a/drivers/usb/dwc3/core.c > +++ b/drivers/usb/dwc3/core.c > @@ -732,6 +732,10 @@ static int dwc3_core_init(struct dwc3 *dwc) > u32 reg; > int ret; > > + ret = dwc3_phy_setup(dwc); > + if (ret) > + goto err0; > + > if (!dwc3_core_is_valid(dwc)) { > dev_err(dwc->dev, "this is not a DesignWare USB3 DRD Core\n"); > ret = -ENODEV; > @@ -755,10 +759,6 @@ static int dwc3_core_init(struct dwc3 *dwc) > if (ret) > goto err0; > > - ret = dwc3_phy_setup(dwc); > - if (ret) > - goto err0; > - > dwc3_core_setup_global_control(dwc); > dwc3_core_num_eps(dwc); > > -- > 2.13.2 > > From 6b7d33243a364c668530a5ae11ed5a57cecd42d9 Mon Sep 17 00:00:00 2001 > From: Jochen Sprickerhof <g...@jochen.sprickerhof.de> > Date: Fri, 7 Jul 2017 19:38:03 +0200 > Subject: [PATCH] usb: dwc3: core: Setup phy before trying to read from it > > Commit c499ff71ff2a ("usb: dwc3: core: re-factor init and exit paths") > moved the call to dwc3_phy_setup() from dwc3_probe() to dwc3_core_init() > and after the dwc3_readl() (now in dwc3_core_is_valid). This broke USB > and Ethernet on Odroid XU4, because dwc3_readl() needs dwc3_phy_setup() > to be run before. > > Fix this by moving the call to dwc3_phy_setup() before > dwc3_core_is_valid(). > > This fixes USB and Ethernet on Odroid XU4. > > This needs and is supposed to be applied on top of > https://patchwork.kernel.org/patch/9815981/ > > Also see https://bugs.debian.org/843448 > > Signed-off-by: Jochen Sprickerhof <g...@jochen.sprickerhof.de> > Fixes: c499ff71ff2a ("usb: dwc3: core: re-factor init and exit paths") > --- > drivers/usb/dwc3/core.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c > index 03474d3575ab..3c6faddc1394 100644 > --- a/drivers/usb/dwc3/core.c > +++ b/drivers/usb/dwc3/core.c > @@ -747,6 +747,10 @@ static int dwc3_core_init(struct dwc3 *dwc) > u32 reg; > int ret; > > + ret = dwc3_phy_setup(dwc); > + if (ret) > + goto err0; > + > if (!dwc3_core_is_valid(dwc)) { > dev_err(dwc->dev, "this is not a DesignWare USB3 DRD Core\n"); > ret = -ENODEV; > @@ -774,10 +778,6 @@ static int dwc3_core_init(struct dwc3 *dwc) > if (ret) > goto err0; > > - ret = dwc3_phy_setup(dwc); > - if (ret) > - goto err0; > - > dwc3_core_setup_global_control(dwc); > dwc3_core_num_eps(dwc); > > -- > 2.13.2
signature.asc
Description: PGP signature