Message ID | 1538481464-24766-1-git-send-email-yoshihiro.shimoda.uh@renesas.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | usb: gadget: udc: renesas_usb3: Fix b-device mode for "workaround" | expand |
On Tue, Oct 02, 2018 at 08:57:44PM +0900, Yoshihiro Shimoda wrote: > If the "workaround_for_vbus" is true, the driver will not call > usb_disconnect(). So, since the controller keeps some registers' > value, the driver doesn't re-enumarate suitable speed after > the b-device mode is disabled. To fix the issue, this patch > adds usb_disconnect() calling in renesas_usb3_b_device_write() > if workaround_for_vbus is true. > > Fixes: 43ba968b00ea ("usb: gadget: udc: renesas_usb3: add debugfs to set the b-device mode") > Cc: <stable@vger.kernel.org> # v4.14+ > Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> Reviewed-by: Simon Horman <horms+renesas@verge.net.au> > --- > drivers/usb/gadget/udc/renesas_usb3.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/usb/gadget/udc/renesas_usb3.c b/drivers/usb/gadget/udc/renesas_usb3.c > index e1656f3..67d8a50 100644 > --- a/drivers/usb/gadget/udc/renesas_usb3.c > +++ b/drivers/usb/gadget/udc/renesas_usb3.c > @@ -2437,6 +2437,9 @@ static ssize_t renesas_usb3_b_device_write(struct file *file, > else > usb3->forced_b_device = false; > > + if (usb3->workaround_for_vbus) > + usb3_disconnect(usb3); > + > /* Let this driver call usb3_connect() anyway */ > usb3_check_id(usb3); > > -- > 1.9.1 >
diff --git a/drivers/usb/gadget/udc/renesas_usb3.c b/drivers/usb/gadget/udc/renesas_usb3.c index e1656f3..67d8a50 100644 --- a/drivers/usb/gadget/udc/renesas_usb3.c +++ b/drivers/usb/gadget/udc/renesas_usb3.c @@ -2437,6 +2437,9 @@ static ssize_t renesas_usb3_b_device_write(struct file *file, else usb3->forced_b_device = false; + if (usb3->workaround_for_vbus) + usb3_disconnect(usb3); + /* Let this driver call usb3_connect() anyway */ usb3_check_id(usb3);
If the "workaround_for_vbus" is true, the driver will not call usb_disconnect(). So, since the controller keeps some registers' value, the driver doesn't re-enumarate suitable speed after the b-device mode is disabled. To fix the issue, this patch adds usb_disconnect() calling in renesas_usb3_b_device_write() if workaround_for_vbus is true. Fixes: 43ba968b00ea ("usb: gadget: udc: renesas_usb3: add debugfs to set the b-device mode") Cc: <stable@vger.kernel.org> # v4.14+ Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> --- drivers/usb/gadget/udc/renesas_usb3.c | 3 +++ 1 file changed, 3 insertions(+)