usb: musb: Fix the crash issue during reboot
Below crash observed with commit
7acc6197b76edd0b932a7cbcc6cfad0a8a87f026
(usb: musb: Idle path retention and offmode support for OMAP3)
during board reboot.
The musb clock was disabled when musb_shutdown() was called by
platform_drv_shutdown in which there are register accesses.
call pm_runtime_get_sync() and pm_runtime_put_sync() in the
musb_shutdown function.
/ # [ 172.368774] Unhandled fault: imprecise external abort (0x1406) at 0x400f0000
[ 172.376190] Internal error: : 1406 [#1] SMP
[ 172.380554] last sysfs file: /sys/devices/platform/omap/omap_i2c.4/i2c-4/i2c-dev/i2c-4/dev
[ 172.389221] Modules linked in:
[ 172.392456] CPU: 0 Tainted: G W (
2.6.38-06671-geddecbb #33)
[ 172.399475] PC is at do_raw_spin_unlock+0x50/0xc0
[ 172.404418] LR is at _raw_spin_unlock_irqrestore+0x24/0x44
[ 172.410186] pc : [<
c069bfdc>] lr : [<
c085a7f8>] psr:
60000093
[ 172.410186] sp :
ee993e40 ip :
c0d00240 fp :
bea9cf14
[ 172.422241] r10:
00000000 r9 :
ee992000 r8 :
c04b2fa8
[ 172.427703] r7 :
00000000 r6 :
c0fa46c0 r5 :
ef966124 r4 :
ef966124
[ 172.434539] r3 :
ef92cbc0 r2 :
ef92cbc0 r1 :
00000000 r0 :
ef966124
[ 172.441406] Flags: nZCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment user
[ 172.448974] Control:
10c5387d Table:
ae8d804a DAC:
00000015
[ 172.454986] Process init (pid: 1094, stack limit = 0xee9922f8)
[ 172.461120] Stack: (0xee993e40 to 0xee994000)
[ 172.465667] 3e40:
a0000013 c085a7f8 ef966124 a0000013 c0fa46c0 c0761ab4 c0761a70 ef95c008
[ 172.474273] 3e60:
ef95c014 c06e2fd0 c06e2fbc c06dea90 00000000 01234567 28121969 c04fccb4
[ 172.482849] 3e80:
00000000 c04fcd04 c0a302bc c04fce44 c0a02600 00000001 00000000 c085cd04
[ 172.491424] 3ea0:
00000000 00000002 c09ea000 c085afc0 ee993f24 00000000 00040001 00000445
[ 172.499999] 3ec0:
a8eb9d34 00000027 00000000 00000000 00000000 c0a56a4c 00000000 00000000
[ 172.508575] 3ee0:
00000002 60000093 00000000 c0519aac 00000002 00000080 00000000 c0550420
[ 172.517150] 3f00:
00000000 00000002 ee970000 c0a56a3c c0a56a20 00000002 c0a56a3c 00000000
[ 172.525726] 3f20:
c0a56a3c 0000000a c1580e00 c0a56a20 00000002 c0a56a3c c1580e00 c0a56a20
[ 172.534301] 3f40:
ef92cbc0 c05173a0 00000001 ef92cbc0 c0576190 c04e3174 20000013 c0517324
[ 172.542877] 3f60:
ef815c00 ee90b720 c04e3174 c0576190 00000001 ef92cbc0 c04b2f00 ffffffff
[ 172.551483] 3f80:
00000058 c0517324 00000000 00000000 ffffffff 00000000 00000000 ffffffff
[ 172.560058] 3fa0:
00000058 c04b2de0 00000000 00000000 fee1dead 28121969 01234567 00000000
[ 172.568634] 3fc0:
00000000 00000000 ffffffff 00000058 00000000 00000001 400aa000 bea9cf14
[ 172.577209] 3fe0:
000ea148 bea9c958 000aa750 40225728 60000010 fee1dead 00000000 00000000
[ 172.585784] [<
c069bfdc>] (do_raw_spin_unlock+0x50/0xc0) from [<
c085a7f8>] (_raw_spin_unlock_irqrestore+0x24/0x44)
[ 172.596588] [<
c085a7f8>] (_raw_spin_unlock_irqrestore+0x24/0x44) from [<
c0761ab4>] (musb_shutdown+0x44/0x88)
[ 172.606933] [<
c0761ab4>] (musb_shutdown+0x44/0x88) from [<
c06e2fd0>] (platform_drv_shutdown+0x14/0x18)
[ 172.616699] [<
c06e2fd0>] (platform_drv_shutdown+0x14/0x18) from [<
c06dea90>] (device_shutdown+0x74/0xb4)
[ 172.626647] [<
c06dea90>] (device_shutdown+0x74/0xb4) from [<
c04fccb4>] (kernel_restart_prepare+0x24/0x38)
[ 172.636688] [<
c04fccb4>] (kernel_restart_prepare+0x24/0x38) from [<
c04fcd04>] (kernel_restart+0xc/0x48)
[ 172.646545] [<
c04fcd04>] (kernel_restart+0xc/0x48) from [<
c04fce44>] (sys_reboot+0xfc/0x1d8)
[ 172.655426] [<
c04fce44>] (sys_reboot+0xfc/0x1d8) from [<
c04b2de0>] (ret_fast_syscall+0x0/0x3c)
[ 172.664459] Code:
e3c3303f e594200c e593300c e1520003 (
0a000002)
[ 172.670867] ------------[ cut here ]------------
Signed-off-by: Hema HK <hemahk@ti.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>