Browse Source

usb: gadget: mv_udc: fix hang when shutdown

Fix system hang in udc shutdown routine which caused by accessing usb
register when clock is disabled. So enable usb clock before access
register.

Signed-off-by: Yunfan Zhang <yfzhang@marvell.com>
Signed-off-by: Neil Zhang <zhangwm@marvell.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Yunfan Zhang 13 years ago
parent
commit
1dcaa252fd
1 changed files with 2 additions and 0 deletions
  1. 2 0
      drivers/usb/gadget/mv_udc_core.c

+ 2 - 0
drivers/usb/gadget/mv_udc_core.c

@@ -2501,9 +2501,11 @@ static void mv_udc_shutdown(struct platform_device *dev)
 	u32 mode;
 
 	/* reset controller mode to IDLE */
+	mv_udc_enable(udc);
 	mode = readl(&udc->op_regs->usbmode);
 	mode &= ~3;
 	writel(mode, &udc->op_regs->usbmode);
+	mv_udc_disable(udc);
 }
 
 static struct platform_driver udc_driver = {