projects
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
5dcf806
)
MLK-11619 : ARM: imx: gpc: fix system boot crash on i.mx6sx-sdb board
author
Robin Gong
<b38343@freescale.com>
Thu, 24 Sep 2015 08:10:42 +0000
(16:10 +0800)
committer
Nitin Garg
<nitin.garg@nxp.com>
Mon, 19 Mar 2018 19:48:41 +0000
(14:48 -0500)
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>
arch/arm/mach-imx/gpc.c
patch
|
blob
|
history
diff --git
a/arch/arm/mach-imx/gpc.c
b/arch/arm/mach-imx/gpc.c
index
e20a8c1
..
9040e7e
100644
(file)
--- a/
arch/arm/mach-imx/gpc.c
+++ b/
arch/arm/mach-imx/gpc.c
@@
-817,7
+817,7
@@
static int imx_gpc_probe(struct platform_device *pdev)
of_property_read_u32(pdev->dev.of_node, "fsl,ldo-bypass", &bypass);
/* We only bypass pu since arm and soc has been set in u-boot */
- if (bypass)
+ if (
pu_reg &&
bypass)
regulator_allow_bypass(pu_reg, true);
if (cpu_is_imx6sx()) {