Skip to contentSkip to conversation

usb: r8a66597-udc disable interrupts on shutdown fix

PATCH New Magnus Damm 1 participant 1 message Aug 19, 2009

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 usb: r8a66597-udc disable interrupts on shutdown fix

From: Magnus Damm <[email protected]>

This patch improves the disable_controller() function in the r8a66597-udc driver to disable all interrupts and also clear status flags. With this patch in place the driver survives kexec.

---

 drivers/usb/gadget/r8a66597-udc.c |    9 +++++++++
 1 file changed, 9 insertions(+)
drivers/usb/gadget/r8a66597-udc.c +9 -0
@@ -614,8 +614,17 @@ static void disable_controller(struct r8
 	if (r8a66597->pdata->on_chip) {
 		r8a66597_bset(r8a66597, SCKE, SYSCFG0);
 
+		/* disable interrupts */
 		r8a66597_write(r8a66597, 0, INTENB0);
 		r8a66597_write(r8a66597, 0, INTENB1);
+		r8a66597_write(r8a66597, 0, BRDYENB);
+		r8a66597_write(r8a66597, 0, BEMPENB);
+		r8a66597_write(r8a66597, 0, NRDYENB);
+
+		/* clear status */
+		r8a66597_write(r8a66597, 0, BRDYSTS);
+		r8a66597_write(r8a66597, 0, NRDYSTS);
+		r8a66597_write(r8a66597, 0, BEMPSTS);
 
 		r8a66597_bclr(r8a66597, USBE, SYSCFG0);
 		r8a66597_bclr(r8a66597, SCKE, SYSCFG0);