summaryrefslogtreecommitdiffstats
path: root/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0054-ARM-omap-fix-oops-in-arch-arm-mach-omap2-vp.c-when-p.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0054-ARM-omap-fix-oops-in-arch-arm-mach-omap2-vp.c-when-p.patch')
-rw-r--r--recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0054-ARM-omap-fix-oops-in-arch-arm-mach-omap2-vp.c-when-p.patch74
1 files changed, 0 insertions, 74 deletions
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0054-ARM-omap-fix-oops-in-arch-arm-mach-omap2-vp.c-when-p.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0054-ARM-omap-fix-oops-in-arch-arm-mach-omap2-vp.c-when-p.patch
deleted file mode 100644
index 6d70b402..00000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0054-ARM-omap-fix-oops-in-arch-arm-mach-omap2-vp.c-when-p.patch
+++ /dev/null
@@ -1,74 +0,0 @@
1From 758e4d3da5bc2a30a7618cb8f1710e096dac0e53 Mon Sep 17 00:00:00 2001
2From: Russell King <rmk+kernel@arm.linux.org.uk>
3Date: Tue, 7 Feb 2012 09:42:11 +0000
4Subject: [PATCH 54/73] ARM: omap: fix oops in arch/arm/mach-omap2/vp.c when
5 pmic is not found
6
7commit d980e0f8d858c6963d676013e976ff00ab7acb2b upstream.
8
9When the PMIC is not found, voltdm->pmic will be NULL. vp.c's
10initialization function tries to dereferences this, which causes an
11oops:
12
13Unable to handle kernel NULL pointer dereference at virtual address 00000000
14pgd = c0004000
15[00000000] *pgd=00000000
16Internal error: Oops: 5 [#1] PREEMPT
17Modules linked in:
18CPU: 0 Not tainted (3.3.0-rc2+ #204)
19PC is at omap_vp_init+0x5c/0x15c
20LR is at omap_vp_init+0x58/0x15c
21pc : [<c03db880>] lr : [<c03db87c>] psr: 60000013
22sp : c181ff30 ip : c181ff68 fp : c181ff64
23r10: c0407808 r9 : c040786c r8 : c0407814
24r7 : c0026868 r6 : c00264fc r5 : c040ad6c r4 : 00000000
25r3 : 00000040 r2 : 000032c8 r1 : 0000fa00 r0 : 000032c8
26Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
27Control: 10c5387d Table: 80004019 DAC: 00000015
28Process swapper (pid: 1, stack limit = 0xc181e2e8)
29Stack: (0xc181ff30 to 0xc1820000)
30ff20: c0381d00 c02e9c6d c0383582 c040786c
31ff40: c040ad6c c00264fc c0026868 c0407814 00000000 c03d9de4 c181ff8c c181ff68
32ff60: c03db448 c03db830 c02e982c c03fdfb8 c03fe004 c0039988 00000013 00000000
33ff80: c181ff9c c181ff90 c03d9df8 c03db390 c181ffdc c181ffa0 c0008798 c03d9df0
34ffa0: c181ffc4 c181ffb0 c0055a44 c0187050 c0039988 c03fdfb8 c03fe004 c0039988
35ffc0: 00000013 00000000 00000000 00000000 c181fff4 c181ffe0 c03d1284 c0008708
36ffe0: 00000000 c03d1208 00000000 c181fff8 c0039988 c03d1214 1077ce40 01f7ee08
37Backtrace:
38[<c03db824>] (omap_vp_init+0x0/0x15c) from [<c03db448>] (omap_voltage_late_init+0xc4/0xfc)
39[<c03db384>] (omap_voltage_late_init+0x0/0xfc) from [<c03d9df8>] (omap2_common_pm_late_init+0x14/0x54)
40 r8:00000000 r7:00000013 r6:c0039988 r5:c03fe004 r4:c03fdfb8
41[<c03d9de4>] (omap2_common_pm_late_init+0x0/0x54) from [<c0008798>] (do_one_initcall+0x9c/0x164)
42[<c00086fc>] (do_one_initcall+0x0/0x164) from [<c03d1284>] (kernel_init+0x7c/0x120)
43[<c03d1208>] (kernel_init+0x0/0x120) from [<c0039988>] (do_exit+0x0/0x2cc)
44 r5:c03d1208 r4:00000000
45Code: e5ca300b e5900034 ebf69027 e5994024 (e5941000)
46---[ end trace aed617dddaf32c3d ]---
47Kernel panic - not syncing: Attempted to kill init!
48
49Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
50Cc: Igor Grinberg <grinberg@compulab.co.il>
51Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
52---
53 arch/arm/mach-omap2/vp.c | 5 +++++
54 1 files changed, 5 insertions(+), 0 deletions(-)
55
56diff --git a/arch/arm/mach-omap2/vp.c b/arch/arm/mach-omap2/vp.c
57index 66bd700..3b52027 100644
58--- a/arch/arm/mach-omap2/vp.c
59+++ b/arch/arm/mach-omap2/vp.c
60@@ -41,6 +41,11 @@ void __init omap_vp_init(struct voltagedomain *voltdm)
61 u32 val, sys_clk_rate, timeout, waittime;
62 u32 vddmin, vddmax, vstepmin, vstepmax;
63
64+ if (!voltdm->pmic || !voltdm->pmic->uv_to_vsel) {
65+ pr_err("%s: No PMIC info for vdd_%s\n", __func__, voltdm->name);
66+ return;
67+ }
68+
69 if (!voltdm->read || !voltdm->write) {
70 pr_err("%s: No read/write API for accessing vdd_%s regs\n",
71 __func__, voltdm->name);
72--
731.7.7.4
74