]> git.ipfire.org Git - ipfire-2.x.git/commitdiff
kernel: omap - add reboot and rtc-irq patch.
authorArne Fitzenreiter <arne_f@ipfire.org>
Tue, 20 Mar 2012 23:12:47 +0000 (00:12 +0100)
committerArne Fitzenreiter <arne_f@ipfire.org>
Tue, 20 Mar 2012 23:12:47 +0000 (00:12 +0100)
lfs/linux3
src/patches/linux-2.6.40-pandaboard-reboot.patch [new file with mode: 0644]
src/patches/linux-2.6.40-pandaboard-rtc-twl-irq.patch [new file with mode: 0644]

index b81d82317a2f4bac282777ed539a0612bd7a84b5..e4a4cc7e4b606d886f29389a1d15a1a3f665ee69 100644 (file)
@@ -187,6 +187,8 @@ ifeq "$(KCFG)" "-omap"
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.40-pandaboard-wlan-fix.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.40-pandaboard-dvi720p.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.40-pandaboard-i2c-fix.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.40-pandaboard-reboot.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.40-pandaboard-rtc-twl-irq.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.x-smsc95xx-add_mac_addr_param.patch
 endif
 
diff --git a/src/patches/linux-2.6.40-pandaboard-reboot.patch b/src/patches/linux-2.6.40-pandaboard-reboot.patch
new file mode 100644 (file)
index 0000000..8e37837
--- /dev/null
@@ -0,0 +1,29 @@
+With commit 3d3f78d752bf, reboot seems to broken on ARM
+machines. CPU dies while doing flush_pmd_entry() as part of
+setup_mm_for_reboot()
+
+I know this is not the fix but intention is to report the
+issue and also provide temporary fix till it get fixed correctly
+
+Signed-off-by: Santosh Shilimkar <santosh.shilimkar@xxxxxx>
+Reported-by: Anand Gadiyar <gadiyar@xxxxxx>
+---
+Tested with OMAP4 device.
+
+ arch/arm/kernel/process.c |    1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
+index e76fcaa..ac370b2 100644
+--- a/arch/arm/kernel/process.c
++++ b/arch/arm/kernel/process.c
+@@ -247,7 +247,6 @@ void machine_power_off(void)
+ void machine_restart(char *cmd)
+ {
+-      machine_shutdown();
+       arm_pm_restart(reboot_mode, cmd);
+ }
+-- 
+1.6.0.4
diff --git a/src/patches/linux-2.6.40-pandaboard-rtc-twl-irq.patch b/src/patches/linux-2.6.40-pandaboard-rtc-twl-irq.patch
new file mode 100644 (file)
index 0000000..dc1182d
--- /dev/null
@@ -0,0 +1,27 @@
+diff -Naur linux-3.0.24.org/drivers/rtc/rtc-twl.c linux-3.0.24/drivers/rtc/rtc-twl.c
+--- linux-3.0.24.org/drivers/rtc/rtc-twl.c     2012-03-12 18:58:19.000000000 +0100
++++ linux-3.0.24/drivers/rtc/rtc-twl.c 2012-03-20 23:24:52.213578926 +0100
+@@ -362,14 +362,6 @@
+       int res;
+       u8 rd_reg;
+-#ifdef CONFIG_LOCKDEP
+-      /* WORKAROUND for lockdep forcing IRQF_DISABLED on us, which
+-       * we don't want and can't tolerate.  Although it might be
+-       * friendlier not to borrow this thread context...
+-       */
+-      local_irq_enable();
+-#endif
+-
+       res = twl_rtc_read_u8(&rd_reg, REG_RTC_STATUS_REG);
+       if (res)
+               goto out;
+@@ -462,7 +454,7 @@
+       if (ret < 0)
+               goto out1;
+-      ret = request_irq(irq, twl_rtc_interrupt,
++      ret = request_threaded_irq(irq, NULL, twl_rtc_interrupt,
+                               IRQF_TRIGGER_RISING,
+                               dev_name(&rtc->dev), rtc);
+       if (ret < 0) {