Browse Source

panic on unrecovered NMI, thanks rtz2

SVN-Revision: 21232
Florian Fainelli 15 years ago
parent
commit
14fd2f20f8

+ 10 - 18
target/linux/rdc/patches-2.6.30/001-rdc321x_mfd_southbridge.patch

@@ -11,11 +11,9 @@ Changes from v2:
 - removed pci_dev accessors
 - removed pci_dev accessors
 - use DEFINE_PCI_DEVICE_TABLE
 - 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
  	 Say yes here if you want to include support GPIO for pins on
  	 the PCF50633 chip.
  	 the PCF50633 chip.
  
  
@@ -31,11 +29,9 @@ Index: linux-2.6.30.10/drivers/mfd/Kconfig
  endmenu
  endmenu
  
  
  menu "Multimedia Capabilities Port drivers"
  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_MFD_PCF50633)	+= pcf50633-core.o
  obj-$(CONFIG_PCF50633_ADC)	+= pcf50633-adc.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_PCF50633_GPIO)	+= pcf50633-gpio.o
 +
 +
 +obj-$(CONFIG_MFD_RDC321X)	+= rdc321x-southbridge.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 @@
 @@ -0,0 +1,123 @@
 +/*
 +/*
 + * RDC321x MFD southbrige driver
 + * RDC321x MFD southbrige driver
@@ -172,10 +166,8 @@ Index: linux-2.6.30.10/drivers/mfd/rdc321x-southbridge.c
 +MODULE_AUTHOR("Florian Fainelli <[email protected]>");
 +MODULE_AUTHOR("Florian Fainelli <[email protected]>");
 +MODULE_LICENSE("GPL");
 +MODULE_LICENSE("GPL");
 +MODULE_DESCRIPTION("RDC R-321x MFD southbridge driver");
 +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 @@
 @@ -0,0 +1,26 @@
 +#ifndef __RDC321X_MFD_H
 +#ifndef __RDC321X_MFD_H
 +#define __RDC321X_MFD_H
 +#define __RDC321X_MFD_H

+ 8 - 14
target/linux/rdc/patches-2.6.30/002-rdc321x_gpio.patch

@@ -8,11 +8,9 @@ Changes from v2:
 - use the pci_dev pointer passed as platform data
 - use the pci_dev pointer passed as platform data
 - replaced rdc321x_pci_{read,write}
 - 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:"
  comment "SPI GPIO expanders:"
  
  
  config GPIO_MAX7301
  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_TWL4030)	+= twl4030-gpio.o
  obj-$(CONFIG_GPIO_XILINX)	+= xilinx_gpio.o
  obj-$(CONFIG_GPIO_XILINX)	+= xilinx_gpio.o
  obj-$(CONFIG_GPIO_BT8XX)	+= bt8xxgpio.o
  obj-$(CONFIG_GPIO_BT8XX)	+= bt8xxgpio.o
 +obj-$(CONFIG_GPIO_RDC321X)	+= rdc321x-gpio.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 @@
 @@ -0,0 +1,245 @@
 +/*
 +/*
 + * RDC321x GPIO driver
 + * RDC321x GPIO driver

+ 9 - 11
target/linux/rdc/patches-2.6.30/003-rdc321x_watchdog_southbridge.patch

@@ -10,10 +10,8 @@ Changes from v2:
 - replaced rdc321x_pci_{read,write}
 - replaced rdc321x_pci_{read,write}
 - use the pci_dev pointer passed as platform_data
 - 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 @@
 @@ -1,7 +1,7 @@
  /*
  /*
   * RDC321x watchdog driver
   * 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_MASK	0x80000000 /* Mask */
  #define RDC_WDT_EN	0x00800000 /* Enable bit */
  #define RDC_WDT_EN	0x00800000 /* Enable bit */
-@@ -63,6 +62,8 @@
+@@ -63,6 +62,8 @@ static struct {
  	int default_ticks;
  	int default_ticks;
  	unsigned long inuse;
  	unsigned long inuse;
  	spinlock_t lock;
  	spinlock_t lock;
@@ -42,7 +40,7 @@ Index: linux-2.6.30.10/drivers/watchdog/rdc321x_wdt.c
  } rdc321x_wdt_device;
  } rdc321x_wdt_device;
  
  
  /* generic helper functions */
  /* generic helper functions */
-@@ -70,14 +71,18 @@
+@@ -70,14 +71,18 @@ static struct {
  static void rdc321x_wdt_trigger(unsigned long unused)
  static void rdc321x_wdt_trigger(unsigned long unused)
  {
  {
  	unsigned long flags;
  	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);
  	spin_unlock_irqrestore(&rdc321x_wdt_device.lock, flags);
  
  
  	/* requeue?? */
  	/* requeue?? */
-@@ -105,10 +110,13 @@
+@@ -105,10 +110,13 @@ static void rdc321x_wdt_start(void)
  
  
  		/* Clear the timer */
  		/* Clear the timer */
  		spin_lock_irqsave(&rdc321x_wdt_device.lock, flags);
  		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);
  		spin_unlock_irqrestore(&rdc321x_wdt_device.lock, flags);
  
  
  		mod_timer(&rdc321x_wdt_device.timer,
  		mod_timer(&rdc321x_wdt_device.timer,
-@@ -148,7 +156,7 @@
+@@ -148,7 +156,7 @@ static long rdc321x_wdt_ioctl(struct fil
  				unsigned long arg)
  				unsigned long arg)
  {
  {
  	void __user *argp = (void __user *)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 = {
  	static struct watchdog_info ident = {
  		.options = WDIOF_CARDRESET,
  		.options = WDIOF_CARDRESET,
  		.identity = "RDC321x WDT",
  		.identity = "RDC321x WDT",
-@@ -162,9 +170,10 @@
+@@ -162,9 +170,10 @@ static long rdc321x_wdt_ioctl(struct fil
  	case WDIOC_GETSTATUS:
  	case WDIOC_GETSTATUS:
  		/* Read the value from the DATA register */
  		/* Read the value from the DATA register */
  		spin_lock_irqsave(&rdc321x_wdt_device.lock, flags);
  		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;
  			return -EFAULT;
  		break;
  		break;
  	case WDIOC_GETSUPPORT:
  	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)
  static int __devinit rdc321x_wdt_probe(struct platform_device *pdev)
  {
  {
  	int err;
  	int err;
@@ -139,7 +137,7 @@ Index: linux-2.6.30.10/drivers/watchdog/rdc321x_wdt.c
  
  
  	init_completion(&rdc321x_wdt_device.stop);
  	init_completion(&rdc321x_wdt_device.stop);
  	rdc321x_wdt_device.queue = 0;
  	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;
  
  

+ 0 - 6
target/linux/rdc/patches-2.6.30/004-rdc321x_defs_remove.patch

@@ -3,9 +3,6 @@ the southbridge.
 
 
 Signed-off-by: Florian Fainelli <[email protected]>
 Signed-off-by: Florian Fainelli <[email protected]>
 ---
 ---
-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
 --- a/arch/x86/include/asm/rdc321x_defs.h
 +++ /dev/null
 +++ /dev/null
 @@ -1,12 +0,0 @@
 @@ -1,12 +0,0 @@
@@ -21,6 +18,3 @@ index c8e9c8b..0000000
 -#define RDC321X_GPIO_DATA_REG2	0x88
 -#define RDC321X_GPIO_DATA_REG2	0x88
 -
 -
 -#define RDC321X_MAX_GPIO	58
 -#define RDC321X_MAX_GPIO	58
-
-
-

+ 3 - 3
target/linux/rdc/patches-2.6.30/011-use_host_lzma.patch

@@ -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    $@

+ 6 - 10
target/linux/rdc/patches-2.6.30/012-export_erase_write.patch

@@ -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)
  			int len, const char *buf)
  {
  {
  	struct erase_info erase;
  	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,
  int default_mtd_readv(struct mtd_info *mtd, struct kvec *vecs,
  		      unsigned long count, loff_t from, size_t *retlen);
  		      unsigned long count, loff_t from, size_t *retlen);
  
  

+ 19 - 37
target/linux/rdc/patches-2.6.30/100-rdc_boards.patch

@@ -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
  # Xen paravirtualization support
  core-$(CONFIG_XEN) += arch/x86/xen/
  core-$(CONFIG_XEN) += arch/x86/xen/
  
  
@@ -12,20 +10,16 @@ Index: linux-2.6.30.10/arch/x86/Makefile
  # lguest paravirtualization support
  # lguest paravirtualization support
  core-$(CONFIG_LGUEST_GUEST) += arch/x86/lguest/
  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 @@
 @@ -0,0 +1,5 @@
 +#
 +#
 +# Makefile for the RDC321x specific parts of the kernel
 +# 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
 +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 @@
 @@ -0,0 +1,115 @@
 +/*
 +/*
 + *  Generic RDC321x platform devices
 + *  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));
 +	return platform_add_devices(rdc321x_devs, ARRAY_SIZE(rdc321x_devs));
 +}
 +}
 +late_initcall(rdc_board_setup);
 +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 @@
 @@ -0,0 +1,243 @@
 +/*
 +/*
 + * ar525w RDC321x platform devices
 + * 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 @@
 @@ -0,0 +1,81 @@
 +/*
 +/*
 + *  Bifferboard RDC321x platform devices
 + *  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);
 +	return register_mtd_parser(&bifferboard_parser);
 +}
 +}
 +arch_initcall(bifferboard_setup);
 +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 @@
 @@ -0,0 +1,65 @@
 +/*
 +/*
 + *  R8610 RDC321x platform devices
 + *  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 @@
 @@ -0,0 +1,111 @@
 +/*
 +/*
 + *  Sitecom RDC321x platform devices
 + *  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 @@
 @@ -0,0 +1,44 @@
 +/*
 +/*
 + *  This program is free software; you can redistribute it and/or
 + *  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 @@
 @@ -0,0 +1,36 @@
 +/*
 +/*
 + *  RDC321x boards
 + *  RDC321x boards

+ 7 - 9
target/linux/rdc/patches-2.6.30/110-rdc321x_watchdog_fix.patch

@@ -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 @@
 @@ -36,111 +36,99 @@
  #include <linux/watchdog.h>
  #include <linux/watchdog.h>
  #include <linux/io.h>
  #include <linux/io.h>
@@ -164,7 +162,7 @@ Index: linux-2.6.30.10/drivers/watchdog/rdc321x_wdt.c
  		return -EBUSY;
  		return -EBUSY;
  
  
  	return nonseekable_open(inode, file);
  	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)
  				unsigned long arg)
  {
  {
  	void __user *argp = (void __user *)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:
  	case WDIOC_SETOPTIONS:
  		if (copy_from_user(&value, argp, sizeof(int)))
  		if (copy_from_user(&value, argp, sizeof(int)))
  			return -EFAULT;
  			return -EFAULT;
-@@ -194,17 +190,34 @@
+@@ -194,17 +190,34 @@ static long rdc321x_wdt_ioctl(struct fil
  		}
  		}
  		break;
  		break;
  	default:
  	default:
@@ -263,7 +261,7 @@ Index: linux-2.6.30.10/drivers/watchdog/rdc321x_wdt.c
  	rdc321x_wdt_reset();
  	rdc321x_wdt_reset();
  
  
  	return count;
  	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.sb_pdev = pdata->sb_pdev;
  	rdc321x_wdt_device.base_reg = r->start;
  	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");
  	dev_info(&pdev->dev, "watchdog init success\n");
  
  
  	return 0;
  	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)
  {
  {

+ 13 - 0
target/linux/rdc/patches-2.6.30/120-panic_on_unrecovered_nmi.patch

@@ -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);
+ }

+ 10 - 18
target/linux/rdc/patches-2.6.32/001-rdc321x_mfd_southbridge.patch

@@ -11,11 +11,9 @@ Changes from v2:
 - removed pci_dev accessors
 - removed pci_dev accessors
 - use DEFINE_PCI_DEVICE_TABLE
 - 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
  	  This enables the PCAP ASIC present on EZX Phones. This is
  	  needed for MMC, TouchScreen, Sound, USB, etc..
  	  needed for MMC, TouchScreen, Sound, USB, etc..
  
  
@@ -31,20 +29,16 @@ Index: linux-2.6.32.10/drivers/mfd/Kconfig
  endmenu
  endmenu
  
  
  menu "Multimedia Capabilities Port drivers"
  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_PCF50633_GPIO)	+= pcf50633-gpio.o
  obj-$(CONFIG_AB3100_CORE)	+= ab3100-core.o
  obj-$(CONFIG_AB3100_CORE)	+= ab3100-core.o
  obj-$(CONFIG_AB3100_OTP)	+= ab3100-otp.o
  obj-$(CONFIG_AB3100_OTP)	+= ab3100-otp.o
 +
 +
 +obj-$(CONFIG_MFD_RDC321X)	+= rdc321x-southbridge.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 @@
 @@ -0,0 +1,123 @@
 +/*
 +/*
 + * RDC321x MFD southbrige driver
 + * RDC321x MFD southbrige driver
@@ -169,10 +163,8 @@ Index: linux-2.6.32.10/drivers/mfd/rdc321x-southbridge.c
 +MODULE_AUTHOR("Florian Fainelli <[email protected]>");
 +MODULE_AUTHOR("Florian Fainelli <[email protected]>");
 +MODULE_LICENSE("GPL");
 +MODULE_LICENSE("GPL");
 +MODULE_DESCRIPTION("RDC R-321x MFD southbridge driver");
 +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 @@
 @@ -0,0 +1,26 @@
 +#ifndef __RDC321X_MFD_H
 +#ifndef __RDC321X_MFD_H
 +#define __RDC321X_MFD_H
 +#define __RDC321X_MFD_H

+ 8 - 14
target/linux/rdc/patches-2.6.32/002-rdc321x_gpio.patch

@@ -8,11 +8,9 @@ Changes from v2:
 - use the pci_dev pointer passed as platform data
 - use the pci_dev pointer passed as platform data
 - replaced rdc321x_pci_{read,write}
 - 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
  	help
  	  Say Y here to support Intel Moorestown platform GPIO.
  	  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:"
  comment "SPI GPIO expanders:"
  
  
  config GPIO_MAX7301
  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_BT8XX)	+= bt8xxgpio.o
  obj-$(CONFIG_GPIO_VR41XX)	+= vr41xx_giu.o
  obj-$(CONFIG_GPIO_VR41XX)	+= vr41xx_giu.o
  obj-$(CONFIG_GPIO_WM831X)	+= wm831x-gpio.o
  obj-$(CONFIG_GPIO_WM831X)	+= wm831x-gpio.o
 +obj-$(CONFIG_GPIO_RDC321X)	+= rdc321x-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 @@
 @@ -0,0 +1,245 @@
 +/*
 +/*
 + * RDC321x GPIO driver
 + * RDC321x GPIO driver

+ 9 - 11
target/linux/rdc/patches-2.6.32/003-rdc321x_watchdog_southbridge.patch

@@ -10,10 +10,8 @@ Changes from v2:
 - replaced rdc321x_pci_{read,write}
 - replaced rdc321x_pci_{read,write}
 - use the pci_dev pointer passed as platform_data
 - 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 @@
 @@ -1,7 +1,7 @@
  /*
  /*
   * RDC321x watchdog driver
   * 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_MASK	0x80000000 /* Mask */
  #define RDC_WDT_EN	0x00800000 /* Enable bit */
  #define RDC_WDT_EN	0x00800000 /* Enable bit */
-@@ -63,6 +62,8 @@
+@@ -63,6 +62,8 @@ static struct {
  	int default_ticks;
  	int default_ticks;
  	unsigned long inuse;
  	unsigned long inuse;
  	spinlock_t lock;
  	spinlock_t lock;
@@ -42,7 +40,7 @@ Index: linux-2.6.30.10/drivers/watchdog/rdc321x_wdt.c
  } rdc321x_wdt_device;
  } rdc321x_wdt_device;
  
  
  /* generic helper functions */
  /* generic helper functions */
-@@ -70,14 +71,18 @@
+@@ -70,14 +71,18 @@ static struct {
  static void rdc321x_wdt_trigger(unsigned long unused)
  static void rdc321x_wdt_trigger(unsigned long unused)
  {
  {
  	unsigned long flags;
  	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);
  	spin_unlock_irqrestore(&rdc321x_wdt_device.lock, flags);
  
  
  	/* requeue?? */
  	/* requeue?? */
-@@ -105,10 +110,13 @@
+@@ -105,10 +110,13 @@ static void rdc321x_wdt_start(void)
  
  
  		/* Clear the timer */
  		/* Clear the timer */
  		spin_lock_irqsave(&rdc321x_wdt_device.lock, flags);
  		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);
  		spin_unlock_irqrestore(&rdc321x_wdt_device.lock, flags);
  
  
  		mod_timer(&rdc321x_wdt_device.timer,
  		mod_timer(&rdc321x_wdt_device.timer,
-@@ -148,7 +156,7 @@
+@@ -148,7 +156,7 @@ static long rdc321x_wdt_ioctl(struct fil
  				unsigned long arg)
  				unsigned long arg)
  {
  {
  	void __user *argp = (void __user *)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 = {
  	static struct watchdog_info ident = {
  		.options = WDIOF_CARDRESET,
  		.options = WDIOF_CARDRESET,
  		.identity = "RDC321x WDT",
  		.identity = "RDC321x WDT",
-@@ -162,9 +170,10 @@
+@@ -162,9 +170,10 @@ static long rdc321x_wdt_ioctl(struct fil
  	case WDIOC_GETSTATUS:
  	case WDIOC_GETSTATUS:
  		/* Read the value from the DATA register */
  		/* Read the value from the DATA register */
  		spin_lock_irqsave(&rdc321x_wdt_device.lock, flags);
  		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;
  			return -EFAULT;
  		break;
  		break;
  	case WDIOC_GETSUPPORT:
  	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)
  static int __devinit rdc321x_wdt_probe(struct platform_device *pdev)
  {
  {
  	int err;
  	int err;
@@ -139,7 +137,7 @@ Index: linux-2.6.30.10/drivers/watchdog/rdc321x_wdt.c
  
  
  	init_completion(&rdc321x_wdt_device.stop);
  	init_completion(&rdc321x_wdt_device.stop);
  	rdc321x_wdt_device.queue = 0;
  	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;
  
  

+ 0 - 6
target/linux/rdc/patches-2.6.32/004-rdc321x_defs_remove.patch

@@ -3,9 +3,6 @@ the southbridge.
 
 
 Signed-off-by: Florian Fainelli <[email protected]>
 Signed-off-by: Florian Fainelli <[email protected]>
 ---
 ---
-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
 --- a/arch/x86/include/asm/rdc321x_defs.h
 +++ /dev/null
 +++ /dev/null
 @@ -1,12 +0,0 @@
 @@ -1,12 +0,0 @@
@@ -21,6 +18,3 @@ index c8e9c8b..0000000
 -#define RDC321X_GPIO_DATA_REG2	0x88
 -#define RDC321X_GPIO_DATA_REG2	0x88
 -
 -
 -#define RDC321X_MAX_GPIO	58
 -#define RDC321X_MAX_GPIO	58
-
-
-

+ 6 - 10
target/linux/rdc/patches-2.6.32/012-export_erase_write.patch

@@ -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)
  			int len, const char *buf)
  {
  {
  	struct erase_info erase;
  	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,
  int default_mtd_readv(struct mtd_info *mtd, struct kvec *vecs,
  		      unsigned long count, loff_t from, size_t *retlen);
  		      unsigned long count, loff_t from, size_t *retlen);
  
  

+ 16 - 32
target/linux/rdc/patches-2.6.32/100-rdc_boards.patch

@@ -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 @@
 @@ -0,0 +1,5 @@
 +#
 +#
 +# Makefile for the RDC321x specific parts of the kernel
 +# 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
 +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 @@
 @@ -0,0 +1,115 @@
 +/*
 +/*
 + *  Generic RDC321x platform devices
 + *  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));
 +	return platform_add_devices(rdc321x_devs, ARRAY_SIZE(rdc321x_devs));
 +}
 +}
 +late_initcall(rdc_board_setup);
 +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 @@
 @@ -0,0 +1,243 @@
 +/*
 +/*
 + * ar525w RDC321x platform devices
 + * 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 @@
 @@ -0,0 +1,81 @@
 +/*
 +/*
 + *  Bifferboard RDC321x platform devices
 + *  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);
 +	return register_mtd_parser(&bifferboard_parser);
 +}
 +}
 +arch_initcall(bifferboard_setup);
 +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 @@
 @@ -0,0 +1,65 @@
 +/*
 +/*
 + *  R8610 RDC321x platform devices
 + *  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 @@
 @@ -0,0 +1,111 @@
 +/*
 +/*
 + *  Sitecom RDC321x platform devices
 + *  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 @@
 @@ -0,0 +1,44 @@
 +/*
 +/*
 + *  This program is free software; you can redistribute it and/or
 + *  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 @@
 @@ -0,0 +1,36 @@
 +/*
 +/*
 + *  RDC321x boards
 + *  RDC321x boards

+ 7 - 9
target/linux/rdc/patches-2.6.32/110-rdc321x_watchdog_fix.patch

@@ -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 @@
 @@ -36,111 +36,99 @@
  #include <linux/watchdog.h>
  #include <linux/watchdog.h>
  #include <linux/io.h>
  #include <linux/io.h>
@@ -164,7 +162,7 @@ Index: linux-2.6.32.10/drivers/watchdog/rdc321x_wdt.c
  		return -EBUSY;
  		return -EBUSY;
  
  
  	return nonseekable_open(inode, file);
  	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)
  				unsigned long arg)
  {
  {
  	void __user *argp = (void __user *)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:
  	case WDIOC_SETOPTIONS:
  		if (copy_from_user(&value, argp, sizeof(int)))
  		if (copy_from_user(&value, argp, sizeof(int)))
  			return -EFAULT;
  			return -EFAULT;
-@@ -194,17 +190,34 @@
+@@ -194,17 +190,34 @@ static long rdc321x_wdt_ioctl(struct fil
  		}
  		}
  		break;
  		break;
  	default:
  	default:
@@ -263,7 +261,7 @@ Index: linux-2.6.32.10/drivers/watchdog/rdc321x_wdt.c
  	rdc321x_wdt_reset();
  	rdc321x_wdt_reset();
  
  
  	return count;
  	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.sb_pdev = pdata->sb_pdev;
  	rdc321x_wdt_device.base_reg = r->start;
  	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");
  	dev_info(&pdev->dev, "watchdog init success\n");
  
  
  	return 0;
  	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)
  {
  {

+ 11 - 0
target/linux/rdc/patches-2.6.32/120-panic_on_unrecovered_nmi.patch

@@ -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);
+ }