Browse Source

usb: dwc3: gadget: prevent DCTL register corruption

If we don't read out the contents of the register
(in order to reinitialize 'reg' variable) we will
be writing unknown contents to the DCTL register
whenever we try to use dwc3_gadget_wakeup() function.

Signed-off-by: Felipe Balbi <balbi@ti.com>
Felipe Balbi 13 năm trước cách đây
mục cha
commit
fcc023c726
1 tập tin đã thay đổi với 1 bổ sung0 xóa
  1. 1 0
      drivers/usb/dwc3/gadget.c

+ 1 - 0
drivers/usb/dwc3/gadget.c

@@ -1307,6 +1307,7 @@ static int dwc3_gadget_wakeup(struct usb_gadget *g)
 	/* Recent versions do this automatically */
 	if (dwc->revision < DWC3_REVISION_194A) {
 		/* write zeroes to Link Change Request */
+		reg = dwc3_readl(dwc->regs, DWC3_DCTL);
 		reg &= ~DWC3_DCTL_ULSTCHNGREQ_MASK;
 		dwc3_writel(dwc->regs, DWC3_DCTL, reg);
 	}