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
 
 - 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.
  
         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"
  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
  
  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
 +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
 @@ -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");
 +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
 @@ -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}
 
 - 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.
  
  
          If unsure, say N.
  
@@ -27,19 +25,15 @@ Index: linux-2.6.30.10/drivers/gpio/Kconfig
  comment "SPI GPIO expanders:"
  
  config GPIO_MAX7301
  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
  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
 @@ -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
 
 - 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
 @@ -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 */
  
  #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;
        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 */
  } 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;
  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?? */
        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);
  
                /* 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,
                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;
                                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",
        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);
        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:
                        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;
  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;
  
        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;
  
  
        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>
 ---
 
 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 @@
 --- 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
 -#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    $@
  # ---------------------------------------------------------------------------
  
  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);
  }
  
        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;
                        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);
  
  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/
  
  # 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/
  
  # 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
 +
 @@ -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
 @@ -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);
 +      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
 @@ -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);
 +}
 +
 +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
 @@ -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);
 +      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
 @@ -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);
 +}
 +
 +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
 @@ -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);
 +}
 +
 +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
 @@ -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);
 +}
 +
 +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
 @@ -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>
 @@ -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);
                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)
  {
  
  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;
  }
  
        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;
                                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;
        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:
                }
                break;
        default:
@@ -263,7 +261,7 @@ Index: linux-2.6.30.10/drivers/watchdog/rdc321x_wdt.c
        rdc321x_wdt_reset();
  
        return count;
        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;
  
        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;
        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)
  {
  
  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
 
 - 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..
  
          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"
  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
  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
 @@ -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");
 +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
 @@ -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}
 
 - 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.
  
        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
  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
  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
 @@ -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
 
 - 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
 @@ -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 */
  
  #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;
        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 */
  } 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;
  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?? */
        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);
  
                /* 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,
                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;
                                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",
        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);
        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:
                        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;
  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;
  
        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;
  
  
        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>
 ---
 
 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 @@
 --- 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
 -#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);
  }
  
        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;
                        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);
  
  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
 +
 @@ -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
 @@ -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);
 +      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
 @@ -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);
 +}
 +
 +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
 @@ -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);
 +      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
 @@ -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);
 +}
 +
 +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
 @@ -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);
 +}
 +
 +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
 @@ -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);
 +}
 +
 +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
 @@ -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>
 @@ -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);
                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)
  {
  
  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;
  }
  
        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;
                                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;
        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:
                }
                break;
        default:
@@ -263,7 +261,7 @@ Index: linux-2.6.32.10/drivers/watchdog/rdc321x_wdt.c
        rdc321x_wdt_reset();
  
        return count;
        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;
  
        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;
        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)
  {
  
  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);
+ }