MLK-11619 : ARM: imx: gpc: fix system boot crash on i.mx6sx-sdb board
need add pu_reg check for bypass since there is no VDDPU on i.mx6sx, otherwise,
below crash happen:
Unable to handle kernel NULL pointer dereference at virtual address
00000030
pgd =
80004000
[
00000030] *pgd=
00000000
Internal error: Oops: 5 [#1] PREEMPT SMP ARM
Modules linked in:
CPU: 0 PID: 1 Comm: swapper/0 Not tainted
4.1.4-00811-g61e6dcd-dirty #519
Hardware name: Freescale i.MX6 SoloX (Device Tree)
task:
ab068000 ti:
ab06c000 task.ti:
ab06c000
PC is at regulator_allow_bypass+0x4/0x11c
LR is at imx_gpc_probe+0x284/0x310
pc : [<
80313ef0>] lr : [<
80025a50>] psr:
20000113
sp :
ab06de38 ip :
00000001 fp :
00000000
r10:
80a8d42c r9 :
0000010b r8 :
ab106010
r7 :
fffffdfb r6 :
00000000 r5 :
ab106000 r4 :
00000000
r3 :
00000001 r2 :
ab06de54 r1 :
00000001 r0 :
00000000
Flags: nzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
Control:
10c5387d Table:
8000404a DAC:
00000015
Process swapper/0 (pid: 1, stack limit = 0xab06c210)
Stack: (0xab06de38 to 0xab06e000)
de20:
00000000 ab106000
de40:
00000000 fffffdfb ab106010 80025a50 ab103d70 00000001 ab129000 80b5e2fc
de60:
ab106010 80aa8e84 fffffdfb 00000000 0000010b 80a8d42c 00000000 803677ac
de80:
80367768 80b5e2fc ab106010 00000000 80aa8e84 80366040 ab106010 80aa8e84
dea0:
ab106044 80aca820 00000000 80366250 00000000 80aa8e84 803661c4 80364584
dec0:
ab03695c ab104234 80aa8e84 ab122580 00000000 803657dc 80921954 80aa8e84
dee0:
80aa5720 80aa8e84 80aa5720 ab126fc0 80a44b54 80366854 00000000 80aa5720
df00:
80aa5720 800097d0 ab0b8380 80760508 00000010 00000000 00000000 00000001
df20:
00000000 80aacea8 60000113 00000000 80a37598 809fdb04 abfff947 8004a0b0
df40:
8091bfa4 abfff97f 00000004 00000004 80aace90 80a9952c 80a99534 00000004
df60:
80a8d41c 80b07000 80b07000 80a8d42c 00000000 80a37dac 00000004 00000004
df80:
80a37598 8004e698 00000000 80752480 00000000 00000000 00000000 00000000
dfa0:
00000000 80752488 00000000 8000f628 00000000 00000000 00000000 00000000
dfc0:
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
dfe0:
00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[<
80313ef0>] (regulator_allow_bypass) from [<
80025a50>] (imx_gpc_probe+0x284/0x310)
[<
80025a50>] (imx_gpc_probe) from [<
803677ac>] (platform_drv_probe+0x44/0xa4)
[<
803677ac>] (platform_drv_probe) from [<
80366040>] (driver_probe_device+0x174/0x2b4)
[<
80366040>] (driver_probe_device) from [<
80366250>] (__driver_attach+0x8c/0x90)
[<
80366250>] (__driver_attach) from [<
80364584>] (bus_for_each_dev+0x6c/0xa0)
[<
80364584>] (bus_for_each_dev) from [<
803657dc>] (bus_add_driver+0x148/0x1f0)
[<
803657dc>] (bus_add_driver) from [<
80366854>] (driver_register+0x78/0xf8)
[<
80366854>] (driver_register) from [<
800097d0>] (do_one_initcall+0x8c/0x1d4)
[<
800097d0>] (do_one_initcall) from [<
80a37dac>] (kernel_init_freeable+0x144/0x1e4)
[<
80a37dac>] (kernel_init_freeable) from [<
80752488>] (kernel_init+0x8/0xe8)
[<
80752488>] (kernel_init) from [<
8000f628>] (ret_from_fork+0x14/0x2c)
Code:
eb111a0a e1a00005 e8bd80f8 e92d41f0 (
e5906030)
Signed-off-by: Robin Gong <b38343@freescale.com>