panic on unrecovered NMI, thanks rtz2
authorFlorian Fainelli <florian@openwrt.org>
Wed, 28 Apr 2010 13:55:11 +0000 (13:55 +0000)
committerFlorian Fainelli <florian@openwrt.org>
Wed, 28 Apr 2010 13:55:11 +0000 (13:55 +0000)
SVN-Revision: 21232

17 files changed:
target/linux/rdc/patches-2.6.30/001-rdc321x_mfd_southbridge.patch
target/linux/rdc/patches-2.6.30/002-rdc321x_gpio.patch
target/linux/rdc/patches-2.6.30/003-rdc321x_watchdog_southbridge.patch
target/linux/rdc/patches-2.6.30/004-rdc321x_defs_remove.patch
target/linux/rdc/patches-2.6.30/011-use_host_lzma.patch
target/linux/rdc/patches-2.6.30/012-export_erase_write.patch
target/linux/rdc/patches-2.6.30/100-rdc_boards.patch
target/linux/rdc/patches-2.6.30/110-rdc321x_watchdog_fix.patch
target/linux/rdc/patches-2.6.30/120-panic_on_unrecovered_nmi.patch [new file with mode: 0644]
target/linux/rdc/patches-2.6.32/001-rdc321x_mfd_southbridge.patch
target/linux/rdc/patches-2.6.32/002-rdc321x_gpio.patch
target/linux/rdc/patches-2.6.32/003-rdc321x_watchdog_southbridge.patch
target/linux/rdc/patches-2.6.32/004-rdc321x_defs_remove.patch
target/linux/rdc/patches-2.6.32/012-export_erase_write.patch
target/linux/rdc/patches-2.6.32/100-rdc_boards.patch
target/linux/rdc/patches-2.6.32/110-rdc321x_watchdog_fix.patch
target/linux/rdc/patches-2.6.32/120-panic_on_unrecovered_nmi.patch [new file with mode: 0644]

index a5c6736506fdbc6d8c9fb808febfaab39956905f..12dca0b997f0659a7064eeb594ebdcd2678a74ac 100644 (file)
@@ -11,11 +11,9 @@ Changes from v2:
 - removed pci_dev accessors
 - use DEFINE_PCI_DEVICE_TABLE
 
-Index: linux-2.6.30.10/drivers/mfd/Kconfig
-===================================================================
---- linux-2.6.30.10.orig/drivers/mfd/Kconfig   2010-04-28 10:48:54.000000000 +0200
-+++ linux-2.6.30.10/drivers/mfd/Kconfig        2010-04-28 10:49:44.000000000 +0200
-@@ -241,6 +241,15 @@
+--- a/drivers/mfd/Kconfig
++++ b/drivers/mfd/Kconfig
+@@ -241,6 +241,15 @@ config PCF50633_GPIO
         Say yes here if you want to include support GPIO for pins on
         the PCF50633 chip.
  
@@ -31,11 +29,9 @@ Index: linux-2.6.30.10/drivers/mfd/Kconfig
  endmenu
  
  menu "Multimedia Capabilities Port drivers"
-Index: linux-2.6.30.10/drivers/mfd/Makefile
-===================================================================
---- linux-2.6.30.10.orig/drivers/mfd/Makefile  2010-04-28 10:48:54.000000000 +0200
-+++ linux-2.6.30.10/drivers/mfd/Makefile       2010-04-28 10:49:02.000000000 +0200
-@@ -40,4 +40,6 @@
+--- a/drivers/mfd/Makefile
++++ b/drivers/mfd/Makefile
+@@ -40,4 +40,6 @@ obj-$(CONFIG_PMIC_DA903X)    += da903x.o
  
  obj-$(CONFIG_MFD_PCF50633)    += pcf50633-core.o
  obj-$(CONFIG_PCF50633_ADC)    += pcf50633-adc.o
@@ -44,10 +40,8 @@ Index: linux-2.6.30.10/drivers/mfd/Makefile
 +obj-$(CONFIG_PCF50633_GPIO)   += pcf50633-gpio.o
 +
 +obj-$(CONFIG_MFD_RDC321X)     += rdc321x-southbridge.o
-Index: linux-2.6.30.10/drivers/mfd/rdc321x-southbridge.c
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.30.10/drivers/mfd/rdc321x-southbridge.c  2010-04-28 10:49:02.000000000 +0200
+--- /dev/null
++++ b/drivers/mfd/rdc321x-southbridge.c
 @@ -0,0 +1,123 @@
 +/*
 + * RDC321x MFD southbrige driver
@@ -172,10 +166,8 @@ Index: linux-2.6.30.10/drivers/mfd/rdc321x-southbridge.c
 +MODULE_AUTHOR("Florian Fainelli <florian@openwrt.org>");
 +MODULE_LICENSE("GPL");
 +MODULE_DESCRIPTION("RDC R-321x MFD southbridge driver");
-Index: linux-2.6.30.10/include/linux/mfd/rdc321x.h
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.30.10/include/linux/mfd/rdc321x.h        2010-04-28 10:49:02.000000000 +0200
+--- /dev/null
++++ b/include/linux/mfd/rdc321x.h
 @@ -0,0 +1,26 @@
 +#ifndef __RDC321X_MFD_H
 +#define __RDC321X_MFD_H
index f2b96b32c2f2695f83ff35251fd66221b2009b6f..a9e6348f7ca0e05a9335ea448fe84a49864e2875 100644 (file)
@@ -8,11 +8,9 @@ Changes from v2:
 - use the pci_dev pointer passed as platform data
 - replaced rdc321x_pci_{read,write}
 
-Index: linux-2.6.30.10/drivers/gpio/Kconfig
-===================================================================
---- linux-2.6.30.10.orig/drivers/gpio/Kconfig  2009-12-04 07:00:07.000000000 +0100
-+++ linux-2.6.30.10/drivers/gpio/Kconfig       2010-04-28 10:16:52.000000000 +0200
-@@ -161,6 +161,14 @@
+--- a/drivers/gpio/Kconfig
++++ b/drivers/gpio/Kconfig
+@@ -161,6 +161,14 @@ config GPIO_BT8XX
  
          If unsure, say N.
  
@@ -27,19 +25,15 @@ Index: linux-2.6.30.10/drivers/gpio/Kconfig
  comment "SPI GPIO expanders:"
  
  config GPIO_MAX7301
-Index: linux-2.6.30.10/drivers/gpio/Makefile
-===================================================================
---- linux-2.6.30.10.orig/drivers/gpio/Makefile 2009-12-04 07:00:07.000000000 +0100
-+++ linux-2.6.30.10/drivers/gpio/Makefile      2010-04-28 10:17:13.000000000 +0200
-@@ -12,3 +12,4 @@
+--- a/drivers/gpio/Makefile
++++ b/drivers/gpio/Makefile
+@@ -12,3 +12,4 @@ obj-$(CONFIG_GPIO_PCF857X)   += pcf857x.o
  obj-$(CONFIG_GPIO_TWL4030)    += twl4030-gpio.o
  obj-$(CONFIG_GPIO_XILINX)     += xilinx_gpio.o
  obj-$(CONFIG_GPIO_BT8XX)      += bt8xxgpio.o
 +obj-$(CONFIG_GPIO_RDC321X)    += rdc321x-gpio.o
-Index: linux-2.6.30.10/drivers/gpio/rdc321x-gpio.c
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.30.10/drivers/gpio/rdc321x-gpio.c        2010-04-28 10:16:52.000000000 +0200
+--- /dev/null
++++ b/drivers/gpio/rdc321x-gpio.c
 @@ -0,0 +1,245 @@
 +/*
 + * RDC321x GPIO driver
index 103199996ba250c48f0bca9501f5edd0c952c4ca..2671fb17cd386c88bf2b15da4f4376fe2a92ca4f 100644 (file)
@@ -10,10 +10,8 @@ Changes from v2:
 - replaced rdc321x_pci_{read,write}
 - use the pci_dev pointer passed as platform_data
 
-Index: linux-2.6.30.10/drivers/watchdog/rdc321x_wdt.c
-===================================================================
---- linux-2.6.30.10.orig/drivers/watchdog/rdc321x_wdt.c        2009-12-04 07:00:07.000000000 +0100
-+++ linux-2.6.30.10/drivers/watchdog/rdc321x_wdt.c     2010-04-28 10:17:46.000000000 +0200
+--- a/drivers/watchdog/rdc321x_wdt.c
++++ b/drivers/watchdog/rdc321x_wdt.c
 @@ -1,7 +1,7 @@
  /*
   * RDC321x watchdog driver
@@ -33,7 +31,7 @@ Index: linux-2.6.30.10/drivers/watchdog/rdc321x_wdt.c
  
  #define RDC_WDT_MASK  0x80000000 /* Mask */
  #define RDC_WDT_EN    0x00800000 /* Enable bit */
-@@ -63,6 +62,8 @@
+@@ -63,6 +62,8 @@ static struct {
        int default_ticks;
        unsigned long inuse;
        spinlock_t lock;
@@ -42,7 +40,7 @@ Index: linux-2.6.30.10/drivers/watchdog/rdc321x_wdt.c
  } rdc321x_wdt_device;
  
  /* generic helper functions */
-@@ -70,14 +71,18 @@
+@@ -70,14 +71,18 @@ static struct {
  static void rdc321x_wdt_trigger(unsigned long unused)
  {
        unsigned long flags;
@@ -63,7 +61,7 @@ Index: linux-2.6.30.10/drivers/watchdog/rdc321x_wdt.c
        spin_unlock_irqrestore(&rdc321x_wdt_device.lock, flags);
  
        /* requeue?? */
-@@ -105,10 +110,13 @@
+@@ -105,10 +110,13 @@ static void rdc321x_wdt_start(void)
  
                /* Clear the timer */
                spin_lock_irqsave(&rdc321x_wdt_device.lock, flags);
@@ -79,7 +77,7 @@ Index: linux-2.6.30.10/drivers/watchdog/rdc321x_wdt.c
                spin_unlock_irqrestore(&rdc321x_wdt_device.lock, flags);
  
                mod_timer(&rdc321x_wdt_device.timer,
-@@ -148,7 +156,7 @@
+@@ -148,7 +156,7 @@ static long rdc321x_wdt_ioctl(struct fil
                                unsigned long arg)
  {
        void __user *argp = (void __user *)arg;
@@ -88,7 +86,7 @@ Index: linux-2.6.30.10/drivers/watchdog/rdc321x_wdt.c
        static struct watchdog_info ident = {
                .options = WDIOF_CARDRESET,
                .identity = "RDC321x WDT",
-@@ -162,9 +170,10 @@
+@@ -162,9 +170,10 @@ static long rdc321x_wdt_ioctl(struct fil
        case WDIOC_GETSTATUS:
                /* Read the value from the DATA register */
                spin_lock_irqsave(&rdc321x_wdt_device.lock, flags);
@@ -101,7 +99,7 @@ Index: linux-2.6.30.10/drivers/watchdog/rdc321x_wdt.c
                        return -EFAULT;
                break;
        case WDIOC_GETSUPPORT:
-@@ -219,17 +228,35 @@
+@@ -219,17 +228,35 @@ static struct miscdevice rdc321x_wdt_mis
  static int __devinit rdc321x_wdt_probe(struct platform_device *pdev)
  {
        int err;
@@ -139,7 +137,7 @@ Index: linux-2.6.30.10/drivers/watchdog/rdc321x_wdt.c
  
        init_completion(&rdc321x_wdt_device.stop);
        rdc321x_wdt_device.queue = 0;
-@@ -240,7 +267,7 @@
+@@ -240,7 +267,7 @@ static int __devinit rdc321x_wdt_probe(s
  
        rdc321x_wdt_device.default_ticks = ticks;
  
index 3bafb401fe2b4ff7e2bb64496b022d440395b5dd..75abbbdd283d10d45d98d3d1623218cc1f9cc025 100644 (file)
@@ -3,9 +3,6 @@ the southbridge.
 
 Signed-off-by: Florian Fainelli <florian@openwrt.org>
 ---
-diff --git a/arch/x86/include/asm/rdc321x_defs.h b/arch/x86/include/asm/rdc321x_defs.h
-deleted file mode 100644
-index c8e9c8b..0000000
 --- a/arch/x86/include/asm/rdc321x_defs.h
 +++ /dev/null
 @@ -1,12 +0,0 @@
@@ -21,6 +18,3 @@ index c8e9c8b..0000000
 -#define RDC321X_GPIO_DATA_REG2        0x88
 -
 -#define RDC321X_MAX_GPIO      58
-
-
-
index 5def7393fa705fc2a31b23a2e76b3404bc56dc5b..0cb47349ad495b2a56c315cbecd38a2015d3cc83 100644 (file)
@@ -1,6 +1,6 @@
---- a/scripts/Makefile.lib     2009-11-06 08:55:20.000000000 +0100
-+++ b/scripts/Makefile.lib     2009-11-06 09:08:45.000000000 +0100
-@@ -204,4 +204,4 @@
+--- a/scripts/Makefile.lib
++++ b/scripts/Makefile.lib
+@@ -204,4 +204,4 @@ cmd_bzip2 = (bzip2 -9 < $< && $(size_app
  # ---------------------------------------------------------------------------
  
  quiet_cmd_lzma = LZMA    $@
index 2d6feba241cd05d3c099dac53e2cb8dd4321e9d8..b96e786035055071d35b00077dc42c815c45df47 100644 (file)
@@ -1,8 +1,6 @@
-Index: linux-2.6.30.10/drivers/mtd/mtdblock.c
-===================================================================
---- linux-2.6.30.10.orig/drivers/mtd/mtdblock.c        2010-03-19 00:17:37.000000000 +0100
-+++ linux-2.6.30.10/drivers/mtd/mtdblock.c     2010-03-19 00:17:54.000000000 +0100
-@@ -45,7 +45,7 @@
+--- a/drivers/mtd/mtdblock.c
++++ b/drivers/mtd/mtdblock.c
+@@ -45,7 +45,7 @@ static void erase_callback(struct erase_
        wake_up(wait_q);
  }
  
@@ -11,11 +9,9 @@ Index: linux-2.6.30.10/drivers/mtd/mtdblock.c
                        int len, const char *buf)
  {
        struct erase_info erase;
-Index: linux-2.6.30.10/include/linux/mtd/mtd.h
-===================================================================
---- linux-2.6.30.10.orig/include/linux/mtd/mtd.h       2010-03-19 00:17:42.000000000 +0100
-+++ linux-2.6.30.10/include/linux/mtd/mtd.h    2010-03-19 00:21:22.000000000 +0100
-@@ -319,6 +319,10 @@
+--- a/include/linux/mtd/mtd.h
++++ b/include/linux/mtd/mtd.h
+@@ -319,6 +319,10 @@ int default_mtd_writev(struct mtd_info *
  int default_mtd_readv(struct mtd_info *mtd, struct kvec *vecs,
                      unsigned long count, loff_t from, size_t *retlen);
  
index f3eb663c4a76f5f6b7b151bbc599a6b67600bdf8..9fdfd9494f0f276979bb13dcbe4c93b7368a5ab0 100644 (file)
@@ -1,8 +1,6 @@
-Index: linux-2.6.30.10/arch/x86/Makefile
-===================================================================
---- linux-2.6.30.10.orig/arch/x86/Makefile     2009-12-04 07:00:07.000000000 +0100
-+++ linux-2.6.30.10/arch/x86/Makefile  2010-04-28 10:17:54.000000000 +0200
-@@ -124,6 +124,9 @@
+--- a/arch/x86/Makefile
++++ b/arch/x86/Makefile
+@@ -124,6 +124,9 @@ core-y += $(fcore-y)
  # Xen paravirtualization support
  core-$(CONFIG_XEN) += arch/x86/xen/
  
@@ -12,20 +10,16 @@ Index: linux-2.6.30.10/arch/x86/Makefile
  # lguest paravirtualization support
  core-$(CONFIG_LGUEST_GUEST) += arch/x86/lguest/
  
-Index: linux-2.6.30.10/arch/x86/mach-rdc321x/Makefile
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.30.10/arch/x86/mach-rdc321x/Makefile     2010-04-28 10:20:33.000000000 +0200
+--- /dev/null
++++ b/arch/x86/mach-rdc321x/Makefile
 @@ -0,0 +1,5 @@
 +#
 +# Makefile for the RDC321x specific parts of the kernel
 +#
 +obj-$(CONFIG_X86_RDC321X)     := platform.o reboot.o boards/sitecom.o boards/ar525w.o boards/bifferboard.o boards/r8610.o
 +
-Index: linux-2.6.30.10/arch/x86/mach-rdc321x/platform.c
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.30.10/arch/x86/mach-rdc321x/platform.c   2010-04-28 10:22:23.000000000 +0200
+--- /dev/null
++++ b/arch/x86/mach-rdc321x/platform.c
 @@ -0,0 +1,115 @@
 +/*
 + *  Generic RDC321x platform devices
@@ -142,10 +136,8 @@ Index: linux-2.6.30.10/arch/x86/mach-rdc321x/platform.c
 +      return platform_add_devices(rdc321x_devs, ARRAY_SIZE(rdc321x_devs));
 +}
 +late_initcall(rdc_board_setup);
-Index: linux-2.6.30.10/arch/x86/mach-rdc321x/boards/ar525w.c
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.30.10/arch/x86/mach-rdc321x/boards/ar525w.c      2010-04-28 10:23:52.000000000 +0200
+--- /dev/null
++++ b/arch/x86/mach-rdc321x/boards/ar525w.c
 @@ -0,0 +1,243 @@
 +/*
 + * ar525w RDC321x platform devices
@@ -390,10 +382,8 @@ Index: linux-2.6.30.10/arch/x86/mach-rdc321x/boards/ar525w.c
 +}
 +
 +arch_initcall(ar525w_setup);
-Index: linux-2.6.30.10/arch/x86/mach-rdc321x/boards/bifferboard.c
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.30.10/arch/x86/mach-rdc321x/boards/bifferboard.c 2010-04-28 10:24:47.000000000 +0200
+--- /dev/null
++++ b/arch/x86/mach-rdc321x/boards/bifferboard.c
 @@ -0,0 +1,81 @@
 +/*
 + *  Bifferboard RDC321x platform devices
@@ -476,10 +466,8 @@ Index: linux-2.6.30.10/arch/x86/mach-rdc321x/boards/bifferboard.c
 +      return register_mtd_parser(&bifferboard_parser);
 +}
 +arch_initcall(bifferboard_setup);
-Index: linux-2.6.30.10/arch/x86/mach-rdc321x/boards/r8610.c
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.30.10/arch/x86/mach-rdc321x/boards/r8610.c       2010-04-28 10:25:46.000000000 +0200
+--- /dev/null
++++ b/arch/x86/mach-rdc321x/boards/r8610.c
 @@ -0,0 +1,65 @@
 +/*
 + *  R8610 RDC321x platform devices
@@ -546,10 +534,8 @@ Index: linux-2.6.30.10/arch/x86/mach-rdc321x/boards/r8610.c
 +}
 +
 +arch_initcall(r8610_setup);
-Index: linux-2.6.30.10/arch/x86/mach-rdc321x/boards/sitecom.c
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.30.10/arch/x86/mach-rdc321x/boards/sitecom.c     2010-04-28 10:26:21.000000000 +0200
+--- /dev/null
++++ b/arch/x86/mach-rdc321x/boards/sitecom.c
 @@ -0,0 +1,111 @@
 +/*
 + *  Sitecom RDC321x platform devices
@@ -662,10 +648,8 @@ Index: linux-2.6.30.10/arch/x86/mach-rdc321x/boards/sitecom.c
 +}
 +
 +arch_initcall(sitecom_setup);
-Index: linux-2.6.30.10/arch/x86/mach-rdc321x/reboot.c
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.30.10/arch/x86/mach-rdc321x/reboot.c     2010-04-28 10:26:53.000000000 +0200
+--- /dev/null
++++ b/arch/x86/mach-rdc321x/reboot.c
 @@ -0,0 +1,44 @@
 +/*
 + *  This program is free software; you can redistribute it and/or
@@ -711,10 +695,8 @@ Index: linux-2.6.30.10/arch/x86/mach-rdc321x/reboot.c
 +}
 +
 +arch_initcall(rdc_setup_reset);
-Index: linux-2.6.30.10/arch/x86/include/asm/rdc_boards.h
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.30.10/arch/x86/include/asm/rdc_boards.h  2010-04-28 10:42:56.000000000 +0200
+--- /dev/null
++++ b/arch/x86/include/asm/rdc_boards.h
 @@ -0,0 +1,36 @@
 +/*
 + *  RDC321x boards
index 3b1d8aa348be633b2b9f6fdf2ce33cbc3e03af2e..03ef7496e41d6bd185117de0136106aeb825a815 100644 (file)
@@ -1,7 +1,5 @@
-Index: linux-2.6.30.10/drivers/watchdog/rdc321x_wdt.c
-===================================================================
---- linux-2.6.30.10.orig/drivers/watchdog/rdc321x_wdt.c        2010-04-28 11:11:44.000000000 +0200
-+++ linux-2.6.30.10/drivers/watchdog/rdc321x_wdt.c     2010-04-28 11:20:51.000000000 +0200
+--- a/drivers/watchdog/rdc321x_wdt.c
++++ b/drivers/watchdog/rdc321x_wdt.c
 @@ -36,111 +36,99 @@
  #include <linux/watchdog.h>
  #include <linux/io.h>
@@ -164,7 +162,7 @@ Index: linux-2.6.30.10/drivers/watchdog/rdc321x_wdt.c
                return -EBUSY;
  
        return nonseekable_open(inode, file);
-@@ -148,7 +136,16 @@
+@@ -148,7 +136,16 @@ static int rdc321x_wdt_open(struct inode
  
  static int rdc321x_wdt_release(struct inode *inode, struct file *file)
  {
@@ -182,7 +180,7 @@ Index: linux-2.6.30.10/drivers/watchdog/rdc321x_wdt.c
        return 0;
  }
  
-@@ -156,30 +153,29 @@
+@@ -156,30 +153,29 @@ static long rdc321x_wdt_ioctl(struct fil
                                unsigned long arg)
  {
        void __user *argp = (void __user *)arg;
@@ -227,7 +225,7 @@ Index: linux-2.6.30.10/drivers/watchdog/rdc321x_wdt.c
        case WDIOC_SETOPTIONS:
                if (copy_from_user(&value, argp, sizeof(int)))
                        return -EFAULT;
-@@ -194,17 +190,34 @@
+@@ -194,17 +190,34 @@ static long rdc321x_wdt_ioctl(struct fil
                }
                break;
        default:
@@ -263,7 +261,7 @@ Index: linux-2.6.30.10/drivers/watchdog/rdc321x_wdt.c
        rdc321x_wdt_reset();
  
        return count;
-@@ -246,27 +259,18 @@
+@@ -246,27 +259,18 @@ static int __devinit rdc321x_wdt_probe(s
        rdc321x_wdt_device.sb_pdev = pdata->sb_pdev;
        rdc321x_wdt_device.base_reg = r->start;
  
@@ -297,7 +295,7 @@ Index: linux-2.6.30.10/drivers/watchdog/rdc321x_wdt.c
        dev_info(&pdev->dev, "watchdog init success\n");
  
        return 0;
-@@ -274,10 +278,11 @@
+@@ -274,10 +278,11 @@ static int __devinit rdc321x_wdt_probe(s
  
  static int rdc321x_wdt_remove(struct platform_device *pdev)
  {
diff --git a/target/linux/rdc/patches-2.6.30/120-panic_on_unrecovered_nmi.patch b/target/linux/rdc/patches-2.6.30/120-panic_on_unrecovered_nmi.patch
new file mode 100644 (file)
index 0000000..5ebe215
--- /dev/null
@@ -0,0 +1,13 @@
+Index: linux-2.6.30.10/drivers/mfd/rdc321x-southbridge.c
+===================================================================
+--- linux-2.6.30.10.orig/drivers/mfd/rdc321x-southbridge.c     2010-04-28 13:05:17.000000000 +0200
++++ linux-2.6.30.10/drivers/mfd/rdc321x-southbridge.c  2010-04-28 13:05:27.000000000 +0200
+@@ -84,6 +84,8 @@
+       rdc321x_gpio_pdata.sb_pdev = pdev;
+       rdc321x_wdt_pdata.sb_pdev = pdev;
++      panic_on_unrecovered_nmi = 1;
++
+       return mfd_add_devices(&pdev->dev, -1,
+               rdc321x_sb_cells, ARRAY_SIZE(rdc321x_sb_cells), NULL, 0);
+ }
index 75b0d1b135ba1c539bfbe15a50856a537fe349b9..036e7318a2587c62b9d88df61c5ec4c7eb3962c2 100644 (file)
@@ -11,11 +11,9 @@ Changes from v2:
 - removed pci_dev accessors
 - use DEFINE_PCI_DEVICE_TABLE
 
-Index: linux-2.6.32.10/drivers/mfd/Kconfig
-===================================================================
---- linux-2.6.32.10.orig/drivers/mfd/Kconfig   2010-03-15 16:52:04.000000000 +0100
-+++ linux-2.6.32.10/drivers/mfd/Kconfig        2010-04-28 11:38:27.000000000 +0200
-@@ -305,6 +305,15 @@
+--- a/drivers/mfd/Kconfig
++++ b/drivers/mfd/Kconfig
+@@ -305,6 +305,15 @@ config EZX_PCAP
          This enables the PCAP ASIC present on EZX Phones. This is
          needed for MMC, TouchScreen, Sound, USB, etc..
  
@@ -31,20 +29,16 @@ Index: linux-2.6.32.10/drivers/mfd/Kconfig
  endmenu
  
  menu "Multimedia Capabilities Port drivers"
-Index: linux-2.6.32.10/drivers/mfd/Makefile
-===================================================================
---- linux-2.6.32.10.orig/drivers/mfd/Makefile  2010-03-15 16:52:04.000000000 +0100
-+++ linux-2.6.32.10/drivers/mfd/Makefile       2010-04-28 11:38:53.000000000 +0200
-@@ -50,3 +50,5 @@
+--- a/drivers/mfd/Makefile
++++ b/drivers/mfd/Makefile
+@@ -50,3 +50,5 @@ obj-$(CONFIG_PCF50633_ADC)   += pcf50633-a
  obj-$(CONFIG_PCF50633_GPIO)   += pcf50633-gpio.o
  obj-$(CONFIG_AB3100_CORE)     += ab3100-core.o
  obj-$(CONFIG_AB3100_OTP)      += ab3100-otp.o
 +
 +obj-$(CONFIG_MFD_RDC321X)     += rdc321x-southbridge.o
-Index: linux-2.6.32.10/drivers/mfd/rdc321x-southbridge.c
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.32.10/drivers/mfd/rdc321x-southbridge.c  2010-04-28 11:38:27.000000000 +0200
+--- /dev/null
++++ b/drivers/mfd/rdc321x-southbridge.c
 @@ -0,0 +1,123 @@
 +/*
 + * RDC321x MFD southbrige driver
@@ -169,10 +163,8 @@ Index: linux-2.6.32.10/drivers/mfd/rdc321x-southbridge.c
 +MODULE_AUTHOR("Florian Fainelli <florian@openwrt.org>");
 +MODULE_LICENSE("GPL");
 +MODULE_DESCRIPTION("RDC R-321x MFD southbridge driver");
-Index: linux-2.6.32.10/include/linux/mfd/rdc321x.h
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.32.10/include/linux/mfd/rdc321x.h        2010-04-28 11:38:27.000000000 +0200
+--- /dev/null
++++ b/include/linux/mfd/rdc321x.h
 @@ -0,0 +1,26 @@
 +#ifndef __RDC321X_MFD_H
 +#define __RDC321X_MFD_H
index e83d27ef816566f737f34846d79d86af53fb348b..e1aa46e8a4760439f38dc8817ff8628e4f9b856c 100644 (file)
@@ -8,11 +8,9 @@ Changes from v2:
 - use the pci_dev pointer passed as platform data
 - replaced rdc321x_pci_{read,write}
 
-Index: linux-2.6.32.10/drivers/gpio/Kconfig
-===================================================================
---- linux-2.6.32.10.orig/drivers/gpio/Kconfig  2010-03-15 16:52:04.000000000 +0100
-+++ linux-2.6.32.10/drivers/gpio/Kconfig       2010-04-28 11:39:02.000000000 +0200
-@@ -196,6 +196,14 @@
+--- a/drivers/gpio/Kconfig
++++ b/drivers/gpio/Kconfig
+@@ -196,6 +196,14 @@ config GPIO_LANGWELL
        help
          Say Y here to support Intel Moorestown platform GPIO.
  
@@ -27,19 +25,15 @@ Index: linux-2.6.32.10/drivers/gpio/Kconfig
  comment "SPI GPIO expanders:"
  
  config GPIO_MAX7301
-Index: linux-2.6.32.10/drivers/gpio/Makefile
-===================================================================
---- linux-2.6.32.10.orig/drivers/gpio/Makefile 2010-03-15 16:52:04.000000000 +0100
-+++ linux-2.6.32.10/drivers/gpio/Makefile      2010-04-28 11:39:17.000000000 +0200
-@@ -19,3 +19,4 @@
+--- a/drivers/gpio/Makefile
++++ b/drivers/gpio/Makefile
+@@ -19,3 +19,4 @@ obj-$(CONFIG_GPIO_XILINX)    += xilinx_gpio
  obj-$(CONFIG_GPIO_BT8XX)      += bt8xxgpio.o
  obj-$(CONFIG_GPIO_VR41XX)     += vr41xx_giu.o
  obj-$(CONFIG_GPIO_WM831X)     += wm831x-gpio.o
 +obj-$(CONFIG_GPIO_RDC321X)    += rdc321x-gpio.o
-Index: linux-2.6.32.10/drivers/gpio/rdc321x-gpio.c
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.32.10/drivers/gpio/rdc321x-gpio.c        2010-04-28 11:39:02.000000000 +0200
+--- /dev/null
++++ b/drivers/gpio/rdc321x-gpio.c
 @@ -0,0 +1,245 @@
 +/*
 + * RDC321x GPIO driver
index 103199996ba250c48f0bca9501f5edd0c952c4ca..2671fb17cd386c88bf2b15da4f4376fe2a92ca4f 100644 (file)
@@ -10,10 +10,8 @@ Changes from v2:
 - replaced rdc321x_pci_{read,write}
 - use the pci_dev pointer passed as platform_data
 
-Index: linux-2.6.30.10/drivers/watchdog/rdc321x_wdt.c
-===================================================================
---- linux-2.6.30.10.orig/drivers/watchdog/rdc321x_wdt.c        2009-12-04 07:00:07.000000000 +0100
-+++ linux-2.6.30.10/drivers/watchdog/rdc321x_wdt.c     2010-04-28 10:17:46.000000000 +0200
+--- a/drivers/watchdog/rdc321x_wdt.c
++++ b/drivers/watchdog/rdc321x_wdt.c
 @@ -1,7 +1,7 @@
  /*
   * RDC321x watchdog driver
@@ -33,7 +31,7 @@ Index: linux-2.6.30.10/drivers/watchdog/rdc321x_wdt.c
  
  #define RDC_WDT_MASK  0x80000000 /* Mask */
  #define RDC_WDT_EN    0x00800000 /* Enable bit */
-@@ -63,6 +62,8 @@
+@@ -63,6 +62,8 @@ static struct {
        int default_ticks;
        unsigned long inuse;
        spinlock_t lock;
@@ -42,7 +40,7 @@ Index: linux-2.6.30.10/drivers/watchdog/rdc321x_wdt.c
  } rdc321x_wdt_device;
  
  /* generic helper functions */
-@@ -70,14 +71,18 @@
+@@ -70,14 +71,18 @@ static struct {
  static void rdc321x_wdt_trigger(unsigned long unused)
  {
        unsigned long flags;
@@ -63,7 +61,7 @@ Index: linux-2.6.30.10/drivers/watchdog/rdc321x_wdt.c
        spin_unlock_irqrestore(&rdc321x_wdt_device.lock, flags);
  
        /* requeue?? */
-@@ -105,10 +110,13 @@
+@@ -105,10 +110,13 @@ static void rdc321x_wdt_start(void)
  
                /* Clear the timer */
                spin_lock_irqsave(&rdc321x_wdt_device.lock, flags);
@@ -79,7 +77,7 @@ Index: linux-2.6.30.10/drivers/watchdog/rdc321x_wdt.c
                spin_unlock_irqrestore(&rdc321x_wdt_device.lock, flags);
  
                mod_timer(&rdc321x_wdt_device.timer,
-@@ -148,7 +156,7 @@
+@@ -148,7 +156,7 @@ static long rdc321x_wdt_ioctl(struct fil
                                unsigned long arg)
  {
        void __user *argp = (void __user *)arg;
@@ -88,7 +86,7 @@ Index: linux-2.6.30.10/drivers/watchdog/rdc321x_wdt.c
        static struct watchdog_info ident = {
                .options = WDIOF_CARDRESET,
                .identity = "RDC321x WDT",
-@@ -162,9 +170,10 @@
+@@ -162,9 +170,10 @@ static long rdc321x_wdt_ioctl(struct fil
        case WDIOC_GETSTATUS:
                /* Read the value from the DATA register */
                spin_lock_irqsave(&rdc321x_wdt_device.lock, flags);
@@ -101,7 +99,7 @@ Index: linux-2.6.30.10/drivers/watchdog/rdc321x_wdt.c
                        return -EFAULT;
                break;
        case WDIOC_GETSUPPORT:
-@@ -219,17 +228,35 @@
+@@ -219,17 +228,35 @@ static struct miscdevice rdc321x_wdt_mis
  static int __devinit rdc321x_wdt_probe(struct platform_device *pdev)
  {
        int err;
@@ -139,7 +137,7 @@ Index: linux-2.6.30.10/drivers/watchdog/rdc321x_wdt.c
  
        init_completion(&rdc321x_wdt_device.stop);
        rdc321x_wdt_device.queue = 0;
-@@ -240,7 +267,7 @@
+@@ -240,7 +267,7 @@ static int __devinit rdc321x_wdt_probe(s
  
        rdc321x_wdt_device.default_ticks = ticks;
  
index 3bafb401fe2b4ff7e2bb64496b022d440395b5dd..75abbbdd283d10d45d98d3d1623218cc1f9cc025 100644 (file)
@@ -3,9 +3,6 @@ the southbridge.
 
 Signed-off-by: Florian Fainelli <florian@openwrt.org>
 ---
-diff --git a/arch/x86/include/asm/rdc321x_defs.h b/arch/x86/include/asm/rdc321x_defs.h
-deleted file mode 100644
-index c8e9c8b..0000000
 --- a/arch/x86/include/asm/rdc321x_defs.h
 +++ /dev/null
 @@ -1,12 +0,0 @@
@@ -21,6 +18,3 @@ index c8e9c8b..0000000
 -#define RDC321X_GPIO_DATA_REG2        0x88
 -
 -#define RDC321X_MAX_GPIO      58
-
-
-
index 2d6feba241cd05d3c099dac53e2cb8dd4321e9d8..5143a7c3938e17404a9f7238990b7b7132df54c9 100644 (file)
@@ -1,8 +1,6 @@
-Index: linux-2.6.30.10/drivers/mtd/mtdblock.c
-===================================================================
---- linux-2.6.30.10.orig/drivers/mtd/mtdblock.c        2010-03-19 00:17:37.000000000 +0100
-+++ linux-2.6.30.10/drivers/mtd/mtdblock.c     2010-03-19 00:17:54.000000000 +0100
-@@ -45,7 +45,7 @@
+--- a/drivers/mtd/mtdblock.c
++++ b/drivers/mtd/mtdblock.c
+@@ -47,7 +47,7 @@ static void erase_callback(struct erase_
        wake_up(wait_q);
  }
  
@@ -11,11 +9,9 @@ Index: linux-2.6.30.10/drivers/mtd/mtdblock.c
                        int len, const char *buf)
  {
        struct erase_info erase;
-Index: linux-2.6.30.10/include/linux/mtd/mtd.h
-===================================================================
---- linux-2.6.30.10.orig/include/linux/mtd/mtd.h       2010-03-19 00:17:42.000000000 +0100
-+++ linux-2.6.30.10/include/linux/mtd/mtd.h    2010-03-19 00:21:22.000000000 +0100
-@@ -319,6 +319,10 @@
+--- a/include/linux/mtd/mtd.h
++++ b/include/linux/mtd/mtd.h
+@@ -319,6 +319,10 @@ int default_mtd_writev(struct mtd_info *
  int default_mtd_readv(struct mtd_info *mtd, struct kvec *vecs,
                      unsigned long count, loff_t from, size_t *retlen);
  
index e88e6ee853e01aac542a6b6501096713a967e955..0b8446c824b348567b9dbade4ae04943617f53a1 100644 (file)
@@ -1,17 +1,13 @@
-Index: linux-2.6.32.10/arch/x86/mach-rdc321x/Makefile
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.32.10/arch/x86/mach-rdc321x/Makefile     2010-04-28 11:39:32.000000000 +0200
+--- /dev/null
++++ b/arch/x86/mach-rdc321x/Makefile
 @@ -0,0 +1,5 @@
 +#
 +# Makefile for the RDC321x specific parts of the kernel
 +#
 +obj-$(CONFIG_X86_RDC321X)     := platform.o reboot.o boards/sitecom.o boards/ar525w.o boards/bifferboard.o boards/r8610.o
 +
-Index: linux-2.6.32.10/arch/x86/mach-rdc321x/platform.c
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.32.10/arch/x86/mach-rdc321x/platform.c   2010-04-28 11:39:32.000000000 +0200
+--- /dev/null
++++ b/arch/x86/mach-rdc321x/platform.c
 @@ -0,0 +1,115 @@
 +/*
 + *  Generic RDC321x platform devices
@@ -128,10 +124,8 @@ Index: linux-2.6.32.10/arch/x86/mach-rdc321x/platform.c
 +      return platform_add_devices(rdc321x_devs, ARRAY_SIZE(rdc321x_devs));
 +}
 +late_initcall(rdc_board_setup);
-Index: linux-2.6.32.10/arch/x86/mach-rdc321x/boards/ar525w.c
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.32.10/arch/x86/mach-rdc321x/boards/ar525w.c      2010-04-28 11:39:32.000000000 +0200
+--- /dev/null
++++ b/arch/x86/mach-rdc321x/boards/ar525w.c
 @@ -0,0 +1,243 @@
 +/*
 + * ar525w RDC321x platform devices
@@ -376,10 +370,8 @@ Index: linux-2.6.32.10/arch/x86/mach-rdc321x/boards/ar525w.c
 +}
 +
 +arch_initcall(ar525w_setup);
-Index: linux-2.6.32.10/arch/x86/mach-rdc321x/boards/bifferboard.c
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.32.10/arch/x86/mach-rdc321x/boards/bifferboard.c 2010-04-28 11:39:32.000000000 +0200
+--- /dev/null
++++ b/arch/x86/mach-rdc321x/boards/bifferboard.c
 @@ -0,0 +1,81 @@
 +/*
 + *  Bifferboard RDC321x platform devices
@@ -462,10 +454,8 @@ Index: linux-2.6.32.10/arch/x86/mach-rdc321x/boards/bifferboard.c
 +      return register_mtd_parser(&bifferboard_parser);
 +}
 +arch_initcall(bifferboard_setup);
-Index: linux-2.6.32.10/arch/x86/mach-rdc321x/boards/r8610.c
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.32.10/arch/x86/mach-rdc321x/boards/r8610.c       2010-04-28 11:39:32.000000000 +0200
+--- /dev/null
++++ b/arch/x86/mach-rdc321x/boards/r8610.c
 @@ -0,0 +1,65 @@
 +/*
 + *  R8610 RDC321x platform devices
@@ -532,10 +522,8 @@ Index: linux-2.6.32.10/arch/x86/mach-rdc321x/boards/r8610.c
 +}
 +
 +arch_initcall(r8610_setup);
-Index: linux-2.6.32.10/arch/x86/mach-rdc321x/boards/sitecom.c
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.32.10/arch/x86/mach-rdc321x/boards/sitecom.c     2010-04-28 11:39:32.000000000 +0200
+--- /dev/null
++++ b/arch/x86/mach-rdc321x/boards/sitecom.c
 @@ -0,0 +1,111 @@
 +/*
 + *  Sitecom RDC321x platform devices
@@ -648,10 +636,8 @@ Index: linux-2.6.32.10/arch/x86/mach-rdc321x/boards/sitecom.c
 +}
 +
 +arch_initcall(sitecom_setup);
-Index: linux-2.6.32.10/arch/x86/mach-rdc321x/reboot.c
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.32.10/arch/x86/mach-rdc321x/reboot.c     2010-04-28 11:39:32.000000000 +0200
+--- /dev/null
++++ b/arch/x86/mach-rdc321x/reboot.c
 @@ -0,0 +1,44 @@
 +/*
 + *  This program is free software; you can redistribute it and/or
@@ -697,10 +683,8 @@ Index: linux-2.6.32.10/arch/x86/mach-rdc321x/reboot.c
 +}
 +
 +arch_initcall(rdc_setup_reset);
-Index: linux-2.6.32.10/arch/x86/include/asm/rdc_boards.h
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.32.10/arch/x86/include/asm/rdc_boards.h  2010-04-28 11:39:32.000000000 +0200
+--- /dev/null
++++ b/arch/x86/include/asm/rdc_boards.h
 @@ -0,0 +1,36 @@
 +/*
 + *  RDC321x boards
index ce4fd1fd900c242115561ae5daff93beeb82ae59..7d59ab312c4c881cf9f48831d1d7b42845131eb8 100644 (file)
@@ -1,7 +1,5 @@
-Index: linux-2.6.32.10/drivers/watchdog/rdc321x_wdt.c
-===================================================================
---- linux-2.6.32.10.orig/drivers/watchdog/rdc321x_wdt.c        2010-04-28 11:39:28.000000000 +0200
-+++ linux-2.6.32.10/drivers/watchdog/rdc321x_wdt.c     2010-04-28 11:40:11.000000000 +0200
+--- a/drivers/watchdog/rdc321x_wdt.c
++++ b/drivers/watchdog/rdc321x_wdt.c
 @@ -36,111 +36,99 @@
  #include <linux/watchdog.h>
  #include <linux/io.h>
@@ -164,7 +162,7 @@ Index: linux-2.6.32.10/drivers/watchdog/rdc321x_wdt.c
                return -EBUSY;
  
        return nonseekable_open(inode, file);
-@@ -148,7 +136,16 @@
+@@ -148,7 +136,16 @@ static int rdc321x_wdt_open(struct inode
  
  static int rdc321x_wdt_release(struct inode *inode, struct file *file)
  {
@@ -182,7 +180,7 @@ Index: linux-2.6.32.10/drivers/watchdog/rdc321x_wdt.c
        return 0;
  }
  
-@@ -156,30 +153,29 @@
+@@ -156,30 +153,29 @@ static long rdc321x_wdt_ioctl(struct fil
                                unsigned long arg)
  {
        void __user *argp = (void __user *)arg;
@@ -227,7 +225,7 @@ Index: linux-2.6.32.10/drivers/watchdog/rdc321x_wdt.c
        case WDIOC_SETOPTIONS:
                if (copy_from_user(&value, argp, sizeof(int)))
                        return -EFAULT;
-@@ -194,17 +190,34 @@
+@@ -194,17 +190,34 @@ static long rdc321x_wdt_ioctl(struct fil
                }
                break;
        default:
@@ -263,7 +261,7 @@ Index: linux-2.6.32.10/drivers/watchdog/rdc321x_wdt.c
        rdc321x_wdt_reset();
  
        return count;
-@@ -246,27 +259,18 @@
+@@ -246,27 +259,18 @@ static int __devinit rdc321x_wdt_probe(s
        rdc321x_wdt_device.sb_pdev = pdata->sb_pdev;
        rdc321x_wdt_device.base_reg = r->start;
  
@@ -297,7 +295,7 @@ Index: linux-2.6.32.10/drivers/watchdog/rdc321x_wdt.c
        dev_info(&pdev->dev, "watchdog init success\n");
  
        return 0;
-@@ -274,10 +278,11 @@
+@@ -274,10 +278,11 @@ static int __devinit rdc321x_wdt_probe(s
  
  static int __devexit rdc321x_wdt_remove(struct platform_device *pdev)
  {
diff --git a/target/linux/rdc/patches-2.6.32/120-panic_on_unrecovered_nmi.patch b/target/linux/rdc/patches-2.6.32/120-panic_on_unrecovered_nmi.patch
new file mode 100644 (file)
index 0000000..c4064aa
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/drivers/mfd/rdc321x-southbridge.c
++++ b/drivers/mfd/rdc321x-southbridge.c
+@@ -84,6 +84,8 @@ static int __devinit rdc321x_sb_probe(st
+       rdc321x_gpio_pdata.sb_pdev = pdev;
+       rdc321x_wdt_pdata.sb_pdev = pdev;
++      panic_on_unrecovered_nmi = 1;
++
+       return mfd_add_devices(&pdev->dev, -1,
+               rdc321x_sb_cells, ARRAY_SIZE(rdc321x_sb_cells), NULL, 0);
+ }