usb: r8a66597-udc disable interrupts on shutdown fix
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. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
ef5ce3b690
commit
0bb886d2a9
1 changed files with 9 additions and 0 deletions
|
@ -614,8 +614,17 @@ static void disable_controller(struct r8a66597 *r8a66597)
|
|||
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);
|
||||
|
|
Loading…
Reference in a new issue