diff options
Diffstat (limited to 'target/linux/adm5120/patches-2.6.24')
29 files changed, 0 insertions, 1759 deletions
diff --git a/target/linux/adm5120/patches-2.6.24/001-adm5120.patch b/target/linux/adm5120/patches-2.6.24/001-adm5120.patch deleted file mode 100644 index 7ff58ad..0000000 --- a/target/linux/adm5120/patches-2.6.24/001-adm5120.patch +++ /dev/null @@ -1,117 +0,0 @@ -Index: linux-2.6.24/arch/mips/Kconfig -=================================================================== ---- linux-2.6.24.orig/arch/mips/Kconfig -+++ linux-2.6.24/arch/mips/Kconfig -@@ -16,6 +16,20 @@ choice - prompt "System type" - default SGI_IP22 - -+config MIPS_ADM5120 -+ bool "ADM5120 SoC based machines" -+ select CEVT_R4K -+ select CSRC_R4K -+ select SYS_HAS_CPU_MIPS32_R1 -+ select SYS_HAS_EARLY_PRINTK -+ select DMA_NONCOHERENT -+ select HW_HAS_PCI -+ select IRQ_CPU -+ select SYS_SUPPORTS_LITTLE_ENDIAN -+ select SYS_SUPPORTS_BIG_ENDIAN -+ select SYS_SUPPORTS_32BIT_KERNEL -+ select GENERIC_GPIO -+ - config MACH_ALCHEMY - bool "Alchemy processor based machines" - -@@ -689,6 +701,7 @@ config WR_PPMC - - endchoice - -+source "arch/mips/adm5120/Kconfig" - source "arch/mips/au1000/Kconfig" - source "arch/mips/jazz/Kconfig" - source "arch/mips/lasat/Kconfig" -Index: linux-2.6.24/arch/mips/Makefile -=================================================================== ---- linux-2.6.24.orig/arch/mips/Makefile -+++ linux-2.6.24/arch/mips/Makefile -@@ -166,6 +166,16 @@ cflags-$(CONFIG_MACH_JAZZ) += -Iinclude/ - load-$(CONFIG_MACH_JAZZ) += 0xffffffff80080000 - - # -+# ADMtek 5120 -+# -+ -+libs-$(CONFIG_MIPS_ADM5120) += arch/mips/adm5120/prom/ -+core-$(CONFIG_MIPS_ADM5120) += arch/mips/adm5120/ -+core-$(CONFIG_MIPS_ADM5120) += arch/mips/adm5120/boards/ -+cflags-$(CONFIG_MIPS_ADM5120) += -Iinclude/asm-mips/mach-adm5120 -+load-$(CONFIG_MIPS_ADM5120) += 0xffffffff80001000 -+ -+# - # Common Alchemy Au1x00 stuff - # - core-$(CONFIG_SOC_AU1X00) += arch/mips/au1000/common/ -Index: linux-2.6.24/include/asm-mips/bootinfo.h -=================================================================== ---- linux-2.6.24.orig/include/asm-mips/bootinfo.h -+++ linux-2.6.24/include/asm-mips/bootinfo.h -@@ -198,6 +198,58 @@ - #define MACH_GROUP_BRCM 23 /* Broadcom */ - #define MACH_BCM47XX 1 /* Broadcom BCM47XX */ - -+/* -+ * Valid machtype for group ADMtek ADM5120 -+ */ -+#define MACH_ADM5120_GENERIC 0 /* Generic board */ -+#define MACH_ADM5120_WP54G_WRT 1 /* Compex WP54G-WRT */ -+#define MACH_ADM5120_WP54G 2 /* Compex WP54G */ -+#define MACH_ADM5120_WP54AG 3 /* Compex WP54AG */ -+#define MACH_ADM5120_WPP54G 4 /* Compex WPP54G */ -+#define MACH_ADM5120_WPP54AG 5 /* Compex WPP54AG */ -+#define MACH_ADM5120_NP28G 6 /* Compex NP28G */ -+#define MACH_ADM5120_NP28GHS 7 /* Compex NP28G HotSpot */ -+#define MACH_ADM5120_NP27G 8 /* Compex NP27G */ -+#define MACH_ADM5120_WP54Gv1C 9 /* Compex WP54G version 1C */ -+#define MACH_ADM5120_RB_111 10 /* Mikrotik RouterBOARD 111 */ -+#define MACH_ADM5120_RB_112 11 /* Mikrotik RouterBOARD 112 */ -+#define MACH_ADM5120_RB_133 12 /* Mikrotik RouterBOARD 133 */ -+#define MACH_ADM5120_RB_133C 13 /* Mikrotik RouterBOARD 133c */ -+#define MACH_ADM5120_RB_150 14 /* Mikrotik RouterBOARD 150 */ -+#define MACH_ADM5120_RB_153 15 /* Mikrotik RouterBOARD 153 */ -+#define MACH_ADM5120_HS100 16 /* ZyXEL HomeSafe 100/100W */ -+#define MACH_ADM5120_P334 17 /* ZyXEL Prestige 334 */ -+#define MACH_ADM5120_P334U 18 /* ZyXEL Prestige 334U */ -+#define MACH_ADM5120_P334W 19 /* ZyXEL Prestige 334W */ -+#define MACH_ADM5120_P334WH 20 /* ZyXEL Prestige 334WH */ -+#define MACH_ADM5120_P334WHD 21 /* ZyXEL Prestige 334WHD */ -+#define MACH_ADM5120_P334WT 22 /* ZyXEL Prestige 334WT */ -+#define MACH_ADM5120_P335 23 /* ZyXEL Prestige 335/335WT */ -+#define MACH_ADM5120_P335PLUS 24 /* ZyXEL Prestige 335Plus */ -+#define MACH_ADM5120_P335U 25 /* ZyXEL Prestige 335U */ -+#define MACH_ADM5120_ES2108 26 /* ZyXEL Ethernet Switch 2108 */ -+#define MACH_ADM5120_ES2108F 27 /* ZyXEL Ethernet Switch 2108-F */ -+#define MACH_ADM5120_ES2108G 28 /* ZyXEL Ethernet Switch 2108-G */ -+#define MACH_ADM5120_ES2108LC 29 /* ZyXEL Ethernet Switch 2108-LC */ -+#define MACH_ADM5120_ES2108PWR 30 /* ZyXEL Ethernet Switch 2108-PWR */ -+#define MACH_ADM5120_ES2024A 31 /* ZyXEL Ethernet Switch 2024A */ -+#define MACH_ADM5120_ES2024PWR 32 /* ZyXEL Ethernet Switch 2024PWR */ -+#define MACH_ADM5120_CAS630 33 /* Cellvision CAS-630/630W */ -+#define MACH_ADM5120_CAS670 34 /* Cellvision CAS-670/670W */ -+#define MACH_ADM5120_CAS700 36 /* Cellvision CAS-700/700W */ -+#define MACH_ADM5120_CAS771 37 /* Cellvision CAS-771/771W */ -+#define MACH_ADM5120_CAS790 38 /* Cellvision CAS-790 */ -+#define MACH_ADM5120_CAS861 39 /* Cellvision CAS-861/861W */ -+#define MACH_ADM5120_NFS101U 40 /* Cellvision NFS-101U/101WU */ -+#define MACH_ADM5120_NFS202U 41 /* Cellvision NFS-202U/202WU */ -+#define MACH_ADM5120_EASY5120PATA 42 /* Infineon EASY 5120P-ATA */ -+#define MACH_ADM5120_EASY5120RT 43 /* Infineon EASY 5120-RT */ -+#define MACH_ADM5120_EASY5120WVOIP 44 /* Infineon EASY 5120-WVoIP */ -+#define MACH_ADM5120_EASY83000 45 /* Infineon EASY-83000 */ -+#define MACH_ADM5120_BR6104K 46 /* Edimax BR-6104K/BR-6104KP */ -+#define MACH_ADM5120_RB_192 47 /* Mikrotik RouterBOARD 192 */ -+#define MACH_ADM5120_BR61x4WG 48 /* Edimax BR-6104Wg/BR-6114WG */ -+ - #define CL_SIZE COMMAND_LINE_SIZE - - const char *get_system_type(void); diff --git a/target/linux/adm5120/patches-2.6.24/002-adm5120_flash.patch b/target/linux/adm5120/patches-2.6.24/002-adm5120_flash.patch deleted file mode 100644 index a1eea9f..0000000 --- a/target/linux/adm5120/patches-2.6.24/002-adm5120_flash.patch +++ /dev/null @@ -1,26 +0,0 @@ -Index: linux-2.6.24/drivers/mtd/maps/Kconfig -=================================================================== ---- linux-2.6.24.orig/drivers/mtd/maps/Kconfig -+++ linux-2.6.24/drivers/mtd/maps/Kconfig -@@ -597,5 +597,9 @@ config MTD_PLATRAM - - This selection automatically selects the map_ram driver. - -+config MTD_ADM5120 -+ tristate "Map driver for ADM5120 based boards" -+ depends on MIPS_ADM5120 -+ - endmenu - -Index: linux-2.6.24/drivers/mtd/maps/Makefile -=================================================================== ---- linux-2.6.24.orig/drivers/mtd/maps/Makefile -+++ linux-2.6.24/drivers/mtd/maps/Makefile -@@ -45,6 +45,7 @@ obj-$(CONFIG_MTD_DBOX2) += dbox2-flash. - obj-$(CONFIG_MTD_SOLUTIONENGINE)+= solutionengine.o - obj-$(CONFIG_MTD_PCI) += pci.o - obj-$(CONFIG_MTD_ALCHEMY) += alchemy-flash.o -+obj-$(CONFIG_MTD_ADM5120) += adm5120-flash.o - obj-$(CONFIG_MTD_AUTCPU12) += autcpu12-nvram.o - obj-$(CONFIG_MTD_EDB7312) += edb7312.o - obj-$(CONFIG_MTD_IMPA7) += impa7.o diff --git a/target/linux/adm5120/patches-2.6.24/003-adm5120_switch.patch b/target/linux/adm5120/patches-2.6.24/003-adm5120_switch.patch deleted file mode 100644 index 6a14c2b..0000000 --- a/target/linux/adm5120/patches-2.6.24/003-adm5120_switch.patch +++ /dev/null @@ -1,27 +0,0 @@ -Index: linux-2.6.24/drivers/net/Kconfig -=================================================================== ---- linux-2.6.24.orig/drivers/net/Kconfig -+++ linux-2.6.24/drivers/net/Kconfig -@@ -601,6 +601,10 @@ config MIPS_AU1X00_ENET - If you have an Alchemy Semi AU1X00 based system - say Y. Otherwise, say N. - -+config MIPS_ADM5120_ENET -+ tristate "MIPS ADM5120 Ethernet switch support" -+ depends on MIPS_ADM5120 -+ - config SGI_IOC3_ETH - bool "SGI IOC3 Ethernet" - depends on PCI && SGI_IP27 -Index: linux-2.6.24/drivers/net/Makefile -=================================================================== ---- linux-2.6.24.orig/drivers/net/Makefile -+++ linux-2.6.24/drivers/net/Makefile -@@ -183,6 +183,7 @@ obj-$(CONFIG_SC92031) += sc92031.o - # This is also a 82596 and should probably be merged - obj-$(CONFIG_LP486E) += lp486e.o - -+obj-$(CONFIG_MIPS_ADM5120_ENET) += adm5120sw.o - obj-$(CONFIG_ETH16I) += eth16i.o - obj-$(CONFIG_ZORRO8390) += zorro8390.o - obj-$(CONFIG_HPLANCE) += hplance.o 7990.o diff --git a/target/linux/adm5120/patches-2.6.24/004-adm5120_nand.patch b/target/linux/adm5120/patches-2.6.24/004-adm5120_nand.patch deleted file mode 100644 index 89239d7..0000000 --- a/target/linux/adm5120/patches-2.6.24/004-adm5120_nand.patch +++ /dev/null @@ -1,33 +0,0 @@ -Index: linux-2.6.24/drivers/mtd/nand/Kconfig -=================================================================== ---- linux-2.6.24.orig/drivers/mtd/nand/Kconfig -+++ linux-2.6.24/drivers/mtd/nand/Kconfig -@@ -81,6 +81,16 @@ config MTD_NAND_TS7250 - help - Support for NAND flash on Technologic Systems TS-7250 platform. - -+config MTD_NAND_ADM5120 -+ tristate "ADM5120 NAND support" -+ depends on MTD_NAND && MIPS_ADM5120 -+ help -+ This enables the driver for the ADM5120 SoC built-in -+ NAND flash interface. -+ -+ No board specific support is done by this driver, each board -+ must advertise a platform_device for the driver to attach. -+ - config MTD_NAND_IDS - tristate - -Index: linux-2.6.24/drivers/mtd/nand/Makefile -=================================================================== ---- linux-2.6.24.orig/drivers/mtd/nand/Makefile -+++ linux-2.6.24/drivers/mtd/nand/Makefile -@@ -10,6 +10,7 @@ obj-$(CONFIG_MTD_NAND_CAFE) += cafe_nan - obj-$(CONFIG_MTD_NAND_SPIA) += spia.o - obj-$(CONFIG_MTD_NAND_AMS_DELTA) += ams-delta.o - obj-$(CONFIG_MTD_NAND_TOTO) += toto.o -+obj-$(CONFIG_MTD_NAND_ADM5120) += adm5120-nand.o - obj-$(CONFIG_MTD_NAND_AUTCPU12) += autcpu12.o - obj-$(CONFIG_MTD_NAND_EDB7312) += edb7312.o - obj-$(CONFIG_MTD_NAND_AU1550) += au1550nd.o diff --git a/target/linux/adm5120/patches-2.6.24/005-adm5120_usb.patch b/target/linux/adm5120/patches-2.6.24/005-adm5120_usb.patch deleted file mode 100644 index a2e43b4..0000000 --- a/target/linux/adm5120/patches-2.6.24/005-adm5120_usb.patch +++ /dev/null @@ -1,35 +0,0 @@ -Index: linux-2.6.24/drivers/usb/host/Kconfig -=================================================================== ---- linux-2.6.24.orig/drivers/usb/host/Kconfig -+++ linux-2.6.24/drivers/usb/host/Kconfig -@@ -261,3 +261,6 @@ config USB_R8A66597_HCD - To compile this driver as a module, choose M here: the - module will be called r8a66597-hcd. - -+config USB_ADM5120_HCD -+ tristate "ADM5120 HCD support (EXPERIMENTAL)" -+ depends on USB && MIPS_ADM5120 && EXPERIMENTAL -Index: linux-2.6.24/drivers/usb/host/Makefile -=================================================================== ---- linux-2.6.24.orig/drivers/usb/host/Makefile -+++ linux-2.6.24/drivers/usb/host/Makefile -@@ -8,6 +8,7 @@ endif - - obj-$(CONFIG_PCI) += pci-quirks.o - -+obj-$(CONFIG_USB_ADM5120_HCD) += adm5120-hcd.o - obj-$(CONFIG_USB_EHCI_HCD) += ehci-hcd.o - obj-$(CONFIG_USB_ISP116X_HCD) += isp116x-hcd.o - obj-$(CONFIG_USB_OHCI_HCD) += ohci-hcd.o -Index: linux-2.6.24/drivers/usb/Makefile -=================================================================== ---- linux-2.6.24.orig/drivers/usb/Makefile -+++ linux-2.6.24/drivers/usb/Makefile -@@ -16,6 +16,7 @@ obj-$(CONFIG_USB_UHCI_HCD) += host/ - obj-$(CONFIG_USB_SL811_HCD) += host/ - obj-$(CONFIG_USB_U132_HCD) += host/ - obj-$(CONFIG_USB_R8A66597_HCD) += host/ -+obj-$(CONFIG_USB_ADM5120_HCD) += host/ - - obj-$(CONFIG_USB_ACM) += class/ - obj-$(CONFIG_USB_PRINTER) += class/ diff --git a/target/linux/adm5120/patches-2.6.24/006-adm5120_leds.patch b/target/linux/adm5120/patches-2.6.24/006-adm5120_leds.patch deleted file mode 100644 index a055b35..0000000 --- a/target/linux/adm5120/patches-2.6.24/006-adm5120_leds.patch +++ /dev/null @@ -1,38 +0,0 @@ -Index: linux-2.6.24/drivers/leds/Kconfig -=================================================================== ---- linux-2.6.24.orig/drivers/leds/Kconfig -+++ linux-2.6.24/drivers/leds/Kconfig -@@ -18,6 +18,21 @@ config LEDS_CLASS - - comment "LED drivers" - -+config LEDS_ADM5120 -+ tristate "LED Support for ADM5120 GPIO LEDs" -+ depends on LEDS_GPIO && MIPS_ADM5120 -+ help -+ This option enables support for LEDs connected to GPIO lines -+ on ADM5120 SoC based platforms. -+ -+config LEDS_ADM5120_EXPERIMENTAL -+ bool "Enable ADM5120 LEDs experimental code" -+ depends on LEDS_ADM5120 -+ -+config LEDS_ADM5120_DIAG -+ bool "Enable ADM5120 LEDs diagnostic mode" -+ depends on LEDS_ADM5120 -+ - config LEDS_CORGI - tristate "LED Support for the Sharp SL-C7x0 series" - depends on LEDS_CLASS && PXA_SHARP_C7xx -Index: linux-2.6.24/drivers/leds/Makefile -=================================================================== ---- linux-2.6.24.orig/drivers/leds/Makefile -+++ linux-2.6.24/drivers/leds/Makefile -@@ -5,6 +5,7 @@ obj-$(CONFIG_LEDS_CLASS) += led-class.o - obj-$(CONFIG_LEDS_TRIGGERS) += led-triggers.o - - # LED Platform Drivers -+obj-$(CONFIG_LEDS_ADM5120) += leds-adm5120.o - obj-$(CONFIG_LEDS_CORGI) += leds-corgi.o - obj-$(CONFIG_LEDS_LOCOMO) += leds-locomo.o - obj-$(CONFIG_LEDS_SPITZ) += leds-spitz.o diff --git a/target/linux/adm5120/patches-2.6.24/007-adm5120_pci.patch b/target/linux/adm5120/patches-2.6.24/007-adm5120_pci.patch deleted file mode 100644 index bce0c81..0000000 --- a/target/linux/adm5120/patches-2.6.24/007-adm5120_pci.patch +++ /dev/null @@ -1,23 +0,0 @@ -Index: linux-2.6.24/arch/mips/pci/Makefile -=================================================================== ---- linux-2.6.24.orig/arch/mips/pci/Makefile -+++ linux-2.6.24/arch/mips/pci/Makefile -@@ -48,3 +48,4 @@ obj-$(CONFIG_TOSHIBA_RBTX4938) += fixup- - obj-$(CONFIG_VICTOR_MPC30X) += fixup-mpc30x.o - obj-$(CONFIG_ZAO_CAPCELLA) += fixup-capcella.o - obj-$(CONFIG_WR_PPMC) += fixup-wrppmc.o -+obj-$(CONFIG_PCI_ADM5120) += pci-adm5120.o -Index: linux-2.6.24/include/linux/pci_ids.h -=================================================================== ---- linux-2.6.24.orig/include/linux/pci_ids.h -+++ linux-2.6.24/include/linux/pci_ids.h -@@ -1703,6 +1703,9 @@ - #define PCI_VENDOR_ID_ESDGMBH 0x12fe - #define PCI_DEVICE_ID_ESDGMBH_CPCIASIO4 0x0111 - -+#define PCI_VENDOR_ID_ADMTEK 0x1317 -+#define PCI_DEVICE_ID_ADMTEK_ADM5120 0x5120 -+ - #define PCI_VENDOR_ID_SIIG 0x131f - #define PCI_SUBVENDOR_ID_SIIG 0x131f - #define PCI_DEVICE_ID_SIIG_1S_10x_550 0x1000 diff --git a/target/linux/adm5120/patches-2.6.24/008-adm5120_uart.patch b/target/linux/adm5120/patches-2.6.24/008-adm5120_uart.patch deleted file mode 100644 index c08239a..0000000 --- a/target/linux/adm5120/patches-2.6.24/008-adm5120_uart.patch +++ /dev/null @@ -1,53 +0,0 @@ -Index: linux-2.6.24/drivers/serial/Makefile -=================================================================== ---- linux-2.6.24.orig/drivers/serial/Makefile -+++ linux-2.6.24/drivers/serial/Makefile -@@ -21,6 +21,7 @@ obj-$(CONFIG_SERIAL_8250_EXAR_ST16C554) - obj-$(CONFIG_SERIAL_8250_HUB6) += 8250_hub6.o - obj-$(CONFIG_SERIAL_8250_MCA) += 8250_mca.o - obj-$(CONFIG_SERIAL_8250_AU1X00) += 8250_au1x00.o -+obj-$(CONFIG_SERIAL_ADM5120) += adm5120_uart.o - obj-$(CONFIG_SERIAL_AMBA_PL010) += amba-pl010.o - obj-$(CONFIG_SERIAL_AMBA_PL011) += amba-pl011.o - obj-$(CONFIG_SERIAL_CLPS711X) += clps711x.o -Index: linux-2.6.24/include/linux/serial_core.h -=================================================================== ---- linux-2.6.24.orig/include/linux/serial_core.h -+++ linux-2.6.24/include/linux/serial_core.h -@@ -150,6 +150,9 @@ - #define PORT_MCF 78 - - -+/* ADMtek ADM5120 SoC */ -+#define PORT_ADM5120 77 -+ - #ifdef __KERNEL__ - - #include <linux/compiler.h> -Index: linux-2.6.24/drivers/serial/Kconfig -=================================================================== ---- linux-2.6.24.orig/drivers/serial/Kconfig -+++ linux-2.6.24/drivers/serial/Kconfig -@@ -280,6 +280,22 @@ config SERIAL_8250_RM9K - - comment "Non-8250 serial port support" - -+config SERIAL_ADM5120 -+ bool "ADM5120 serial port support" -+ depends on MIPS_ADM5120 -+ select SERIAL_CORE -+ select SERIAL_CORE_CONSOLE -+ help -+ Driver for the on chip UARTs on the ADM5120 SoC -+ -+config ADM5120_NR_UARTS -+ int "Maximum number of ADM5120 serial ports" -+ depends on SERIAL_ADM5120 -+ default "2" -+ ---help--- -+ Set this to the number of serial ports you want the driver to -+ support. -+ - config SERIAL_AMBA_PL010 - tristate "ARM AMBA PL010 serial port support" - depends on ARM_AMBA && (BROKEN || !ARCH_VERSATILE) diff --git a/target/linux/adm5120/patches-2.6.24/009-adm5120_leds_switch_trigger.patch b/target/linux/adm5120/patches-2.6.24/009-adm5120_leds_switch_trigger.patch deleted file mode 100644 index 60b78eb..0000000 --- a/target/linux/adm5120/patches-2.6.24/009-adm5120_leds_switch_trigger.patch +++ /dev/null @@ -1,26 +0,0 @@ -Index: linux-2.6.24/drivers/leds/Kconfig -=================================================================== ---- linux-2.6.24.orig/drivers/leds/Kconfig -+++ linux-2.6.24/drivers/leds/Kconfig -@@ -171,4 +171,12 @@ config LEDS_TRIGGER_MORSE - tristate "LED Morse Trigger" - depends on LEDS_TRIGGERS - -+config LEDS_TRIGGER_ADM5120_SWITCH -+ tristate "LED ADM5120 Switch Port Status Trigger" -+ depends on LEDS_TRIGGERS && LEDS_ADM5120 -+ help -+ This allows LEDs to be controlled by the port states of -+ the ADM5120 built-in Ethernet Switch -+ If unsure, say N. -+ - endif # NEW_LEDS -Index: linux-2.6.24/drivers/leds/Makefile -=================================================================== ---- linux-2.6.24.orig/drivers/leds/Makefile -+++ linux-2.6.24/drivers/leds/Makefile -@@ -27,3 +27,4 @@ obj-$(CONFIG_LEDS_TRIGGER_TIMER) += ledt - obj-$(CONFIG_LEDS_TRIGGER_IDE_DISK) += ledtrig-ide-disk.o - obj-$(CONFIG_LEDS_TRIGGER_HEARTBEAT) += ledtrig-heartbeat.o - obj-$(CONFIG_LEDS_TRIGGER_MORSE) += ledtrig-morse.o -+obj-$(CONFIG_LEDS_TRIGGER_ADM5120_SWITCH) += ledtrig-adm5120-switch.o diff --git a/target/linux/adm5120/patches-2.6.24/100-mtd_myloder_partition_parser.patch b/target/linux/adm5120/patches-2.6.24/100-mtd_myloder_partition_parser.patch deleted file mode 100644 index 519b1c2..0000000 --- a/target/linux/adm5120/patches-2.6.24/100-mtd_myloder_partition_parser.patch +++ /dev/null @@ -1,39 +0,0 @@ -Index: linux-2.6.24/drivers/mtd/Kconfig -=================================================================== ---- linux-2.6.24.orig/drivers/mtd/Kconfig -+++ linux-2.6.24/drivers/mtd/Kconfig -@@ -160,6 +160,22 @@ config MTD_AFS_PARTS - for your particular device. It won't happen automatically. The - 'armflash' map driver (CONFIG_MTD_ARMFLASH) does this, for example. - -+config MTD_MYLOADER_PARTS -+ tristate "MyLoader partition parsing" -+ depends on MIPS_ADM5120 && MTD_PARTITIONS -+ ---help--- -+ MyLoader is a bootloader which allows the user to define partitions -+ in flash devices, by putting a table in the second erase block -+ on the device, similar to a partition table. This table gives the -+ offsets and lengths of the user defined partitions. -+ -+ If you need code which can detect and parse these tables, and -+ register MTD 'partitions' corresponding to each image detected, -+ enable this option. -+ -+ You will still need the parsing functions to be called by the driver -+ for your particular device. It won't happen automatically. -+ - comment "User Modules And Translation Layers" - - config MTD_CHAR -Index: linux-2.6.24/drivers/mtd/Makefile -=================================================================== ---- linux-2.6.24.orig/drivers/mtd/Makefile -+++ linux-2.6.24/drivers/mtd/Makefile -@@ -11,6 +11,7 @@ obj-$(CONFIG_MTD_CONCAT) += mtdconcat.o - obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o - obj-$(CONFIG_MTD_CMDLINE_PARTS) += cmdlinepart.o - obj-$(CONFIG_MTD_AFS_PARTS) += afs.o -+obj-$(CONFIG_MTD_MYLOADER_PARTS) += myloader.o - - # 'Users' - code which presents functionality to userspace. - obj-$(CONFIG_MTD_CHAR) += mtdchar.o diff --git a/target/linux/adm5120/patches-2.6.24/101-cfi_fixup_macronix_bootloc.patch b/target/linux/adm5120/patches-2.6.24/101-cfi_fixup_macronix_bootloc.patch deleted file mode 100644 index 19c87a9..0000000 --- a/target/linux/adm5120/patches-2.6.24/101-cfi_fixup_macronix_bootloc.patch +++ /dev/null @@ -1,95 +0,0 @@ -Index: linux-2.6.24/drivers/mtd/chips/cfi_cmdset_0002.c -=================================================================== ---- linux-2.6.24.orig/drivers/mtd/chips/cfi_cmdset_0002.c -+++ linux-2.6.24/drivers/mtd/chips/cfi_cmdset_0002.c -@@ -47,12 +47,19 @@ - #define MANUFACTURER_AMD 0x0001 - #define MANUFACTURER_ATMEL 0x001F - #define MANUFACTURER_SST 0x00BF -+#define MANUFACTURER_MACRONIX 0x00C2 - #define SST49LF004B 0x0060 - #define SST49LF040B 0x0050 - #define SST49LF008A 0x005a - #define AT49BV6416 0x00d6 - #define MANUFACTURER_SAMSUNG 0x00ec - -+/* Macronix */ -+#define MX29LV160B 0x2249 /* MX29LV160 Bottom-boot chip */ -+#define MX29LV160T 0x22C4 /* MX29LV160 Top-boot chip */ -+#define MX29LV320B 0x22A8 /* MX29LV320 Bottom-boot chip */ -+#define MX29LV320T 0x22A7 /* MX29LV320 Top-boot chip */ -+ - static int cfi_amdstd_read (struct mtd_info *, loff_t, size_t, size_t *, u_char *); - static int cfi_amdstd_write_words(struct mtd_info *, loff_t, size_t, size_t *, const u_char *); - static int cfi_amdstd_write_buffers(struct mtd_info *, loff_t, size_t, size_t *, const u_char *); -@@ -217,6 +224,41 @@ static void fixup_use_atmel_lock(struct - mtd->flags |= MTD_STUPID_LOCK; - } - -+#ifdef CONFIG_MTD_CFI_FIXUP_MACRONIX_BOOTLOC -+/* -+ * Some Macronix chips has no/bad bootblock information in the CFI table -+ */ -+static void fixup_macronix_bootloc(struct mtd_info *mtd, void* param) -+{ -+ struct map_info *map = mtd->priv; -+ struct cfi_private *cfi = map->fldrv_priv; -+ struct cfi_pri_amdstd *extp = cfi->cmdset_priv; -+ __u8 t; -+ -+ switch (cfi->id) { -+ /* TODO: put affected chip ids here */ -+ case MX29LV160B: -+ case MX29LV320B: -+ t = 2; /* Bottom boot */ -+ break; -+ case MX29LV160T: -+ case MX29LV320T: -+ t = 3; /* Top boot */ -+ break; -+ default: -+ return; -+ } -+ -+ if (extp->TopBottom == t) -+ /* boot location detected by the CFI layer is correct */ -+ return; -+ -+ extp->TopBottom = t; -+ printk("%s: Macronix chip detected, id:0x%04X, boot location forced " -+ "to %s\n", map->name, cfi->id, (t == 2) ? "bottom" : "top"); -+} -+#endif /* CONFIG_MTD_CFI_FIXUP_MACRONIX_BOOTLOC */ -+ - static struct cfi_fixup cfi_fixup_table[] = { - #ifdef AMD_BOOTLOC_BUG - { CFI_MFR_AMD, CFI_ID_ANY, fixup_amd_bootblock, NULL }, -@@ -231,6 +273,9 @@ static struct cfi_fixup cfi_fixup_table[ - { CFI_MFR_ANY, CFI_ID_ANY, fixup_use_write_buffers, NULL, }, - #endif - { CFI_MFR_ATMEL, CFI_ID_ANY, fixup_convert_atmel_pri, NULL }, -+#ifdef CONFIG_MTD_CFI_FIXUP_MACRONIX_BOOTLOC -+ { MANUFACTURER_MACRONIX, CFI_ID_ANY, fixup_macronix_bootloc, NULL, }, -+#endif - { 0, 0, NULL, NULL } - }; - static struct cfi_fixup jedec_fixup_table[] = { -Index: linux-2.6.24/drivers/mtd/chips/Kconfig -=================================================================== ---- linux-2.6.24.orig/drivers/mtd/chips/Kconfig -+++ linux-2.6.24/drivers/mtd/chips/Kconfig -@@ -196,6 +196,14 @@ config MTD_CFI_AMDSTD - provides support for one of those command sets, used on chips - including the AMD Am29LV320. - -+config MTD_CFI_FIXUP_MACRONIX_BOOTLOC -+ bool "Fix boot-block location for Macronix flash chips" -+ depends on MTD_CFI_AMDSTD -+ help -+ Some Macronix flash chips have no/wrong boot-block location in the -+ CFI table, and the driver may detect the type incorrectly. Select -+ this if your board has such chip. -+ - config MTD_CFI_STAA - tristate "Support for ST (Advanced Architecture) flash chips" - depends on MTD_GEN_PROBE diff --git a/target/linux/adm5120/patches-2.6.24/102-jedec_pmc_39lvxxx_chips.patch b/target/linux/adm5120/patches-2.6.24/102-jedec_pmc_39lvxxx_chips.patch deleted file mode 100644 index 772c92f..0000000 --- a/target/linux/adm5120/patches-2.6.24/102-jedec_pmc_39lvxxx_chips.patch +++ /dev/null @@ -1,74 +0,0 @@ -Index: linux-2.6.24/drivers/mtd/chips/jedec_probe.c -=================================================================== ---- linux-2.6.24.orig/drivers/mtd/chips/jedec_probe.c -+++ linux-2.6.24/drivers/mtd/chips/jedec_probe.c -@@ -121,6 +121,10 @@ - #define UPD29F064115 0x221C - - /* PMC */ -+#define PM39LV512 0x001B -+#define PM39LV010 0x001C -+#define PM39LV020 0x003D -+#define PM39LV040 0x003E - #define PM49FL002 0x006D - #define PM49FL004 0x006E - #define PM49FL008 0x006A -@@ -1264,6 +1268,58 @@ static const struct amd_flash_info jedec - ERASEINFO(0x02000,2), - ERASEINFO(0x04000,1), - } -+ }, { -+ .mfr_id = MANUFACTURER_PMC, -+ .dev_id = PM39LV512, -+ .name = "PMC Pm39LV512", -+ .uaddr = { -+ [0] = MTD_UADDR_0x0555_0x02AA /* x8 */ -+ }, -+ .DevSize = SIZE_64KiB, -+ .CmdSet = P_ID_AMD_STD, -+ .NumEraseRegions= 1, -+ .regions = { -+ ERASEINFO(0x01000,16), -+ } -+ }, { -+ .mfr_id = MANUFACTURER_PMC, -+ .dev_id = PM39LV010, -+ .name = "PMC Pm39LV010", -+ .uaddr = { -+ [0] = MTD_UADDR_0x0555_0x02AA /* x8 */ -+ }, -+ .DevSize = SIZE_128KiB, -+ .CmdSet = P_ID_AMD_STD, -+ .NumEraseRegions= 1, -+ .regions = { -+ ERASEINFO(0x01000,32), -+ } -+ }, { -+ .mfr_id = MANUFACTURER_PMC, -+ .dev_id = PM39LV020, -+ .name = "PMC Pm39LV020", -+ .uaddr = { -+ [0] = MTD_UADDR_0x0555_0x02AA /* x8 */ -+ }, -+ .DevSize = SIZE_256KiB, -+ .CmdSet = P_ID_AMD_STD, -+ .NumEraseRegions= 1, -+ .regions = { -+ ERASEINFO(0x01000,64), -+ } -+ }, { -+ .mfr_id = MANUFACTURER_PMC, -+ .dev_id = PM39LV040, -+ .name = "PMC Pm39LV040", -+ .uaddr = { -+ [0] = MTD_UADDR_0x0555_0x02AA /* x8 */ -+ }, -+ .DevSize = SIZE_512KiB, -+ .CmdSet = P_ID_AMD_STD, -+ .NumEraseRegions= 1, -+ .regions = { -+ ERASEINFO(0x01000,128), -+ } - }, { - .mfr_id = MANUFACTURER_PMC, - .dev_id = PM49FL002, diff --git a/target/linux/adm5120/patches-2.6.24/103-mtd_trxsplit.patch b/target/linux/adm5120/patches-2.6.24/103-mtd_trxsplit.patch deleted file mode 100644 index c709123..0000000 --- a/target/linux/adm5120/patches-2.6.24/103-mtd_trxsplit.patch +++ /dev/null @@ -1,28 +0,0 @@ -Index: linux-2.6.24/drivers/mtd/Kconfig -=================================================================== ---- linux-2.6.24.orig/drivers/mtd/Kconfig -+++ linux-2.6.24/drivers/mtd/Kconfig -@@ -57,6 +57,11 @@ config MTD_ROOTFS_SPLIT - depends on MTD_PARTITIONS - default y - -+config MTD_TRXSPLIT -+ bool "Automatically find and split TRX partitions" -+ depends on MTD_PARTITIONS -+ default n -+ - config MTD_REDBOOT_PARTS - tristate "RedBoot partition table parsing" - depends on MTD_PARTITIONS -Index: linux-2.6.24/drivers/mtd/Makefile -=================================================================== ---- linux-2.6.24.orig/drivers/mtd/Makefile -+++ linux-2.6.24/drivers/mtd/Makefile -@@ -8,6 +8,7 @@ mtd-y := mtdcore.o mtdsuper.o - mtd-$(CONFIG_MTD_PARTITIONS) += mtdpart.o - - obj-$(CONFIG_MTD_CONCAT) += mtdconcat.o -+obj-$(CONFIG_MTD_TRXSPLIT) += trxsplit.o - obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o - obj-$(CONFIG_MTD_CMDLINE_PARTS) += cmdlinepart.o - obj-$(CONFIG_MTD_AFS_PARTS) += afs.o diff --git a/target/linux/adm5120/patches-2.6.24/120-rb153_cf_driver.patch b/target/linux/adm5120/patches-2.6.24/120-rb153_cf_driver.patch deleted file mode 100644 index e382871..0000000 --- a/target/linux/adm5120/patches-2.6.24/120-rb153_cf_driver.patch +++ /dev/null @@ -1,30 +0,0 @@ -Index: linux-2.6.24/drivers/ata/Makefile -=================================================================== ---- linux-2.6.24.orig/drivers/ata/Makefile -+++ linux-2.6.24/drivers/ata/Makefile -@@ -69,6 +69,7 @@ obj-$(CONFIG_PATA_BF54X) += pata_bf54x.o - obj-$(CONFIG_PATA_PLATFORM) += pata_platform.o - obj-$(CONFIG_PATA_OF_PLATFORM) += pata_of_platform.o - obj-$(CONFIG_PATA_ICSIDE) += pata_icside.o -+obj-$(CONFIG_PATA_RB153_CF) += pata_rb153_cf.o - # Should be last but two libata driver - obj-$(CONFIG_PATA_ACPI) += pata_acpi.o - # Should be last but one libata driver -Index: linux-2.6.24/drivers/ata/Kconfig -=================================================================== ---- linux-2.6.24.orig/drivers/ata/Kconfig -+++ linux-2.6.24/drivers/ata/Kconfig -@@ -660,4 +660,13 @@ config PATA_BF54X - - If unsure, say N. - -+config PATA_RB153_CF -+ tristate "RouterBOARD 153 Compact Flash support" -+ depends on MIPS_ADM5120 -+ help -+ This option enables support for a Compact Flash connected on -+ the RouterBOARD 153. -+ -+ If unsure, say N. -+ - endif # ATA diff --git a/target/linux/adm5120/patches-2.6.24/140-cmdline_hack.patch b/target/linux/adm5120/patches-2.6.24/140-cmdline_hack.patch deleted file mode 100644 index 58a63ba..0000000 --- a/target/linux/adm5120/patches-2.6.24/140-cmdline_hack.patch +++ /dev/null @@ -1,17 +0,0 @@ -Index: linux-2.6.24/arch/mips/kernel/head.S -=================================================================== ---- linux-2.6.24.orig/arch/mips/kernel/head.S -+++ linux-2.6.24/arch/mips/kernel/head.S -@@ -126,7 +126,12 @@ - /* - * Reserved space for exception handlers. - * Necessary for machines which link their kernels at KSEG0. -+ * Use as temporary storage for the kernel command line, so that it -+ * can be updated easily without having to relink the kernel. - */ -+ -+EXPORT(_image_cmdline) -+ .ascii "CMDLINE:" - .fill 0x400 - #endif - diff --git a/target/linux/adm5120/patches-2.6.24/200-amba_pl010_hacks.patch b/target/linux/adm5120/patches-2.6.24/200-amba_pl010_hacks.patch deleted file mode 100644 index 22f5083..0000000 --- a/target/linux/adm5120/patches-2.6.24/200-amba_pl010_hacks.patch +++ /dev/null @@ -1,297 +0,0 @@ -Index: linux-2.6.24/drivers/serial/amba-pl010.c -=================================================================== ---- linux-2.6.24.orig/drivers/serial/amba-pl010.c -+++ linux-2.6.24/drivers/serial/amba-pl010.c -@@ -52,11 +52,10 @@ - - #include <asm/io.h> - --#define UART_NR 8 -- - #define SERIAL_AMBA_MAJOR 204 - #define SERIAL_AMBA_MINOR 16 --#define SERIAL_AMBA_NR UART_NR -+#define SERIAL_AMBA_NR CONFIG_SERIAL_AMBA_PL010_NUMPORTS -+#define SERIAL_AMBA_NAME CONFIG_SERIAL_AMBA_PL010_PORTNAME - - #define AMBA_ISR_PASS_LIMIT 256 - -@@ -82,7 +81,7 @@ static void pl010_stop_tx(struct uart_po - struct uart_amba_port *uap = (struct uart_amba_port *)port; - unsigned int cr; - -- cr = readb(uap->port.membase + UART010_CR); -+ cr = readl(uap->port.membase + UART010_CR); - cr &= ~UART010_CR_TIE; - writel(cr, uap->port.membase + UART010_CR); - } -@@ -92,7 +91,7 @@ static void pl010_start_tx(struct uart_p - struct uart_amba_port *uap = (struct uart_amba_port *)port; - unsigned int cr; - -- cr = readb(uap->port.membase + UART010_CR); -+ cr = readl(uap->port.membase + UART010_CR); - cr |= UART010_CR_TIE; - writel(cr, uap->port.membase + UART010_CR); - } -@@ -102,7 +101,7 @@ static void pl010_stop_rx(struct uart_po - struct uart_amba_port *uap = (struct uart_amba_port *)port; - unsigned int cr; - -- cr = readb(uap->port.membase + UART010_CR); -+ cr = readl(uap->port.membase + UART010_CR); - cr &= ~(UART010_CR_RIE | UART010_CR_RTIE); - writel(cr, uap->port.membase + UART010_CR); - } -@@ -112,7 +111,7 @@ static void pl010_enable_ms(struct uart_ - struct uart_amba_port *uap = (struct uart_amba_port *)port; - unsigned int cr; - -- cr = readb(uap->port.membase + UART010_CR); -+ cr = readl(uap->port.membase + UART010_CR); - cr |= UART010_CR_MSIE; - writel(cr, uap->port.membase + UART010_CR); - } -@@ -122,9 +121,9 @@ static void pl010_rx_chars(struct uart_a - struct tty_struct *tty = uap->port.info->tty; - unsigned int status, ch, flag, rsr, max_count = 256; - -- status = readb(uap->port.membase + UART01x_FR); -+ status = readl(uap->port.membase + UART01x_FR); - while (UART_RX_DATA(status) && max_count--) { -- ch = readb(uap->port.membase + UART01x_DR); -+ ch = readl(uap->port.membase + UART01x_DR); - flag = TTY_NORMAL; - - uap->port.icount.rx++; -@@ -133,7 +132,7 @@ static void pl010_rx_chars(struct uart_a - * Note that the error handling code is - * out of the main execution path - */ -- rsr = readb(uap->port.membase + UART01x_RSR) | UART_DUMMY_RSR_RX; -+ rsr = readl(uap->port.membase + UART01x_RSR) | UART_DUMMY_RSR_RX; - if (unlikely(rsr & UART01x_RSR_ANY)) { - writel(0, uap->port.membase + UART01x_ECR); - -@@ -165,7 +164,7 @@ static void pl010_rx_chars(struct uart_a - uart_insert_char(&uap->port, rsr, UART01x_RSR_OE, ch, flag); - - ignore_char: -- status = readb(uap->port.membase + UART01x_FR); -+ status = readl(uap->port.membase + UART01x_FR); - } - spin_unlock(&uap->port.lock); - tty_flip_buffer_push(tty); -@@ -210,7 +209,7 @@ static void pl010_modem_status(struct ua - - writel(0, uap->port.membase + UART010_ICR); - -- status = readb(uap->port.membase + UART01x_FR) & UART01x_FR_MODEM_ANY; -+ status = readl(uap->port.membase + UART01x_FR) & UART01x_FR_MODEM_ANY; - - delta = status ^ uap->old_status; - uap->old_status = status; -@@ -238,7 +237,7 @@ static irqreturn_t pl010_int(int irq, vo - - spin_lock(&uap->port.lock); - -- status = readb(uap->port.membase + UART010_IIR); -+ status = readl(uap->port.membase + UART010_IIR); - if (status) { - do { - if (status & (UART010_IIR_RTIS | UART010_IIR_RIS)) -@@ -251,7 +250,7 @@ static irqreturn_t pl010_int(int irq, vo - if (pass_counter-- == 0) - break; - -- status = readb(uap->port.membase + UART010_IIR); -+ status = readl(uap->port.membase + UART010_IIR); - } while (status & (UART010_IIR_RTIS | UART010_IIR_RIS | - UART010_IIR_TIS)); - handled = 1; -@@ -265,7 +264,7 @@ static irqreturn_t pl010_int(int irq, vo - static unsigned int pl010_tx_empty(struct uart_port *port) - { - struct uart_amba_port *uap = (struct uart_amba_port *)port; -- unsigned int status = readb(uap->port.membase + UART01x_FR); -+ unsigned int status = readl(uap->port.membase + UART01x_FR); - return status & UART01x_FR_BUSY ? 0 : TIOCSER_TEMT; - } - -@@ -275,7 +274,7 @@ static unsigned int pl010_get_mctrl(stru - unsigned int result = 0; - unsigned int status; - -- status = readb(uap->port.membase + UART01x_FR); -+ status = readl(uap->port.membase + UART01x_FR); - if (status & UART01x_FR_DCD) - result |= TIOCM_CAR; - if (status & UART01x_FR_DSR) -@@ -301,7 +300,7 @@ static void pl010_break_ctl(struct uart_ - unsigned int lcr_h; - - spin_lock_irqsave(&uap->port.lock, flags); -- lcr_h = readb(uap->port.membase + UART010_LCRH); -+ lcr_h = readl(uap->port.membase + UART010_LCRH); - if (break_state == -1) - lcr_h |= UART01x_LCRH_BRK; - else -@@ -334,7 +333,7 @@ static int pl010_startup(struct uart_por - /* - * initialise the old status of the modem signals - */ -- uap->old_status = readb(uap->port.membase + UART01x_FR) & UART01x_FR_MODEM_ANY; -+ uap->old_status = readl(uap->port.membase + UART01x_FR) & UART01x_FR_MODEM_ANY; - - /* - * Finally, enable interrupts -@@ -365,7 +364,7 @@ static void pl010_shutdown(struct uart_p - writel(0, uap->port.membase + UART010_CR); - - /* disable break condition and fifos */ -- writel(readb(uap->port.membase + UART010_LCRH) & -+ writel(readl(uap->port.membase + UART010_LCRH) & - ~(UART01x_LCRH_BRK | UART01x_LCRH_FEN), - uap->port.membase + UART010_LCRH); - -@@ -387,7 +386,7 @@ pl010_set_termios(struct uart_port *port - /* - * Ask the core to calculate the divisor for us. - */ -- baud = uart_get_baud_rate(port, termios, old, 0, uap->port.uartclk/16); -+ baud = uart_get_baud_rate(port, termios, old, 0, uap->port.uartclk/16); - quot = uart_get_divisor(port, baud); - - switch (termios->c_cflag & CSIZE) { -@@ -450,7 +449,7 @@ pl010_set_termios(struct uart_port *port - uap->port.ignore_status_mask |= UART_DUMMY_RSR_RX; - - /* first, disable everything */ -- old_cr = readb(uap->port.membase + UART010_CR) & ~UART010_CR_MSIE; -+ old_cr = readl(uap->port.membase + UART010_CR) & ~UART010_CR_MSIE; - - if (UART_ENABLE_MS(port, termios->c_cflag)) - old_cr |= UART010_CR_MSIE; -@@ -540,7 +539,7 @@ static struct uart_ops amba_pl010_pops = - .verify_port = pl010_verify_port, - }; - --static struct uart_amba_port *amba_ports[UART_NR]; -+static struct uart_amba_port *amba_ports[SERIAL_AMBA_NR]; - - #ifdef CONFIG_SERIAL_AMBA_PL010_CONSOLE - -@@ -550,7 +549,7 @@ static void pl010_console_putchar(struct - unsigned int status; - - do { -- status = readb(uap->port.membase + UART01x_FR); -+ status = readl(uap->port.membase + UART01x_FR); - barrier(); - } while (!UART_TX_READY(status)); - writel(ch, uap->port.membase + UART01x_DR); -@@ -567,7 +566,7 @@ pl010_console_write(struct console *co, - /* - * First save the CR then disable the interrupts - */ -- old_cr = readb(uap->port.membase + UART010_CR); -+ old_cr = readl(uap->port.membase + UART010_CR); - writel(UART01x_CR_UARTEN, uap->port.membase + UART010_CR); - - uart_console_write(&uap->port, s, count, pl010_console_putchar); -@@ -577,7 +576,7 @@ pl010_console_write(struct console *co, - * and restore the TCR - */ - do { -- status = readb(uap->port.membase + UART01x_FR); -+ status = readl(uap->port.membase + UART01x_FR); - barrier(); - } while (status & UART01x_FR_BUSY); - writel(old_cr, uap->port.membase + UART010_CR); -@@ -589,9 +588,9 @@ static void __init - pl010_console_get_options(struct uart_amba_port *uap, int *baud, - int *parity, int *bits) - { -- if (readb(uap->port.membase + UART010_CR) & UART01x_CR_UARTEN) { -+ if (readl(uap->port.membase + UART010_CR) & UART01x_CR_UARTEN) { - unsigned int lcr_h, quot; -- lcr_h = readb(uap->port.membase + UART010_LCRH); -+ lcr_h = readl(uap->port.membase + UART010_LCRH); - - *parity = 'n'; - if (lcr_h & UART01x_LCRH_PEN) { -@@ -606,8 +605,8 @@ pl010_console_get_options(struct uart_am - else - *bits = 8; - -- quot = readb(uap->port.membase + UART010_LCRL) | -- readb(uap->port.membase + UART010_LCRM) << 8; -+ quot = readl(uap->port.membase + UART010_LCRL) | -+ readl(uap->port.membase + UART010_LCRM) << 8; - *baud = uap->port.uartclk / (16 * (quot + 1)); - } - } -@@ -625,7 +624,7 @@ static int __init pl010_console_setup(st - * if so, search for the first available port that does have - * console support. - */ -- if (co->index >= UART_NR) -+ if (co->index >= SERIAL_AMBA_NR) - co->index = 0; - uap = amba_ports[co->index]; - if (!uap) -@@ -643,7 +642,7 @@ static int __init pl010_console_setup(st - - static struct uart_driver amba_reg; - static struct console amba_console = { -- .name = "ttyAM", -+ .name = SERIAL_AMBA_NAME, - .write = pl010_console_write, - .device = uart_console_device, - .setup = pl010_console_setup, -@@ -659,11 +658,11 @@ static struct console amba_console = { - - static struct uart_driver amba_reg = { - .owner = THIS_MODULE, -- .driver_name = "ttyAM", -- .dev_name = "ttyAM", -+ .driver_name = SERIAL_AMBA_NAME, -+ .dev_name = SERIAL_AMBA_NAME, - .major = SERIAL_AMBA_MAJOR, - .minor = SERIAL_AMBA_MINOR, -- .nr = UART_NR, -+ .nr = SERIAL_AMBA_NR, - .cons = AMBA_CONSOLE, - }; - -Index: linux-2.6.24/drivers/serial/Kconfig -=================================================================== ---- linux-2.6.24.orig/drivers/serial/Kconfig -+++ linux-2.6.24/drivers/serial/Kconfig -@@ -303,10 +303,25 @@ config SERIAL_AMBA_PL010 - help - This selects the ARM(R) AMBA(R) PrimeCell PL010 UART. If you have - an Integrator/AP or Integrator/PP2 platform, or if you have a -- Cirrus Logic EP93xx CPU, say Y or M here. -+ Cirrus Logic EP93xx CPU or an Infineon ADM5120 SOC, say Y or M here. - - If unsure, say N. - -+config SERIAL_AMBA_PL010_NUMPORTS -+ int "Maximum number of AMBA PL010 serial ports" -+ depends on SERIAL_AMBA_PL010 -+ default "8" -+ ---help--- -+ Set this to the number of serial ports you want the AMBA PL010 driver -+ to support. -+ -+config SERIAL_AMBA_PL010_PORTNAME -+ string "Name of the AMBA PL010 serial ports" -+ depends on SERIAL_AMBA_PL010 -+ default "ttyAM" -+ ---help--- -+ ::: To be written ::: -+ - config SERIAL_AMBA_PL010_CONSOLE - bool "Support for console on AMBA serial port" - depends on SERIAL_AMBA_PL010=y diff --git a/target/linux/adm5120/patches-2.6.24/201-amba_bus_hacks.patch b/target/linux/adm5120/patches-2.6.24/201-amba_bus_hacks.patch deleted file mode 100644 index 0f1c3b2..0000000 --- a/target/linux/adm5120/patches-2.6.24/201-amba_bus_hacks.patch +++ /dev/null @@ -1,15 +0,0 @@ -Index: linux-2.6.24/drivers/amba/bus.c -=================================================================== ---- linux-2.6.24.orig/drivers/amba/bus.c -+++ linux-2.6.24/drivers/amba/bus.c -@@ -17,6 +17,10 @@ - #include <asm/io.h> - #include <asm/sizes.h> - -+#ifndef NO_IRQ -+#define NO_IRQ (-1) -+#endif -+ - #define to_amba_device(d) container_of(d, struct amba_device, dev) - #define to_amba_driver(d) container_of(d, struct amba_driver, drv) - diff --git a/target/linux/adm5120/patches-2.6.24/202-pci_disable_common_quirks.patch b/target/linux/adm5120/patches-2.6.24/202-pci_disable_common_quirks.patch deleted file mode 100644 index 2aa86e2..0000000 --- a/target/linux/adm5120/patches-2.6.24/202-pci_disable_common_quirks.patch +++ /dev/null @@ -1,50 +0,0 @@ -Index: linux-2.6.24/drivers/pci/Kconfig -=================================================================== ---- linux-2.6.24.orig/drivers/pci/Kconfig -+++ linux-2.6.24/drivers/pci/Kconfig -@@ -42,6 +42,12 @@ config PCI_DEBUG - - When in doubt, say N. - -+config PCI_DISABLE_COMMON_QUIRKS -+ bool "PCI disable common quirks" -+ depends on PCI -+ help -+ If you don't know what to do here, say N. -+ - config HT_IRQ - bool "Interrupts on hypertransport devices" - default y -Index: linux-2.6.24/drivers/pci/quirks.c -=================================================================== ---- linux-2.6.24.orig/drivers/pci/quirks.c -+++ linux-2.6.24/drivers/pci/quirks.c -@@ -23,6 +23,7 @@ - #include <linux/acpi.h> - #include "pci.h" - -+#ifndef CONFIG_PCI_DISABLE_COMMON_QUIRKS - /* The Mellanox Tavor device gives false positive parity errors - * Mark this device with a broken_parity_status, to allow - * PCI scanning code to "skip" this now blacklisted device. -@@ -1479,6 +1480,7 @@ static void __devinit fixup_rev1_53c810( - } - } - DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NCR, PCI_DEVICE_ID_NCR_53C810, fixup_rev1_53c810); -+#endif /* !CONFIG_PCI_DISABLE_COMMON_QUIRKS */ - - static void pci_do_fixups(struct pci_dev *dev, struct pci_fixup *f, struct pci_fixup *end) - { -@@ -1542,6 +1544,7 @@ void pci_fixup_device(enum pci_fixup_pas - } - EXPORT_SYMBOL(pci_fixup_device); - -+#ifndef CONFIG_PCI_DISABLE_COMMON_QUIRKS - /* Enable 1k I/O space granularity on the Intel P64H2 */ - static void __devinit quirk_p64h2_1k_io(struct pci_dev *dev) - { -@@ -1755,3 +1758,4 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AT - quirk_msi_intx_disable_bug); - - #endif /* CONFIG_PCI_MSI */ -+#endif /* !CONFIG_PCI_DISABLE_COMMON_QUIRKS */ diff --git a/target/linux/adm5120/patches-2.6.24/203-gpio_leds_brightness.patch b/target/linux/adm5120/patches-2.6.24/203-gpio_leds_brightness.patch deleted file mode 100644 index 37eb0ab..0000000 --- a/target/linux/adm5120/patches-2.6.24/203-gpio_leds_brightness.patch +++ /dev/null @@ -1,29 +0,0 @@ -Index: linux-2.6.24/drivers/leds/leds-gpio.c -=================================================================== ---- linux-2.6.24.orig/drivers/leds/leds-gpio.c -+++ linux-2.6.24/drivers/leds/leds-gpio.c -@@ -41,13 +41,17 @@ static void gpio_led_set(struct led_clas - container_of(led_cdev, struct gpio_led_data, cdev); - int level; - -- if (value == LED_OFF) -- level = 0; -- else -- level = 1; -- -- if (led_dat->active_low) -- level = !level; -+ switch (value) { -+ case LED_OFF: -+ level = led_dat->active_low ? 1 : 0; -+ break; -+ case LED_FULL: -+ level = led_dat->active_low ? 0 : 1; -+ break; -+ default: -+ level = value; -+ break; -+ } - - /* setting GPIOs with I2C/etc requires a preemptible task context */ - if (led_dat->can_sleep) { diff --git a/target/linux/adm5120/patches-2.6.24/300-i2c_gpio_custom.patch b/target/linux/adm5120/patches-2.6.24/300-i2c_gpio_custom.patch deleted file mode 100644 index d0736f3..0000000 --- a/target/linux/adm5120/patches-2.6.24/300-i2c_gpio_custom.patch +++ /dev/null @@ -1,34 +0,0 @@ -Index: linux-2.6.24/drivers/i2c/busses/Kconfig -=================================================================== ---- linux-2.6.24.orig/drivers/i2c/busses/Kconfig -+++ linux-2.6.24/drivers/i2c/busses/Kconfig -@@ -146,6 +146,17 @@ config I2C_GPIO - This is a very simple bitbanging I2C driver utilizing the - arch-neutral GPIO API to control the SCL and SDA lines. - -+config I2C_GPIO_CUSTOM -+ tristate "Custom GPIO-based I2C driver" -+ depends on GENERIC_GPIO -+ select I2C_GPIO -+ help -+ This is an I2C driver to register 1 to 4 custom I2C buses using -+ GPIO lines. -+ -+ This support is also available as a module. If so, the module -+ will be called i2c-gpio-custom. -+ - config I2C_HYDRA - tristate "CHRP Apple Hydra Mac I/O I2C interface" - depends on PCI && PPC_CHRP && EXPERIMENTAL -Index: linux-2.6.24/drivers/i2c/busses/Makefile -=================================================================== ---- linux-2.6.24.orig/drivers/i2c/busses/Makefile -+++ linux-2.6.24/drivers/i2c/busses/Makefile -@@ -14,6 +14,7 @@ obj-$(CONFIG_I2C_BLACKFIN_TWI) += i2c-bf - obj-$(CONFIG_I2C_DAVINCI) += i2c-davinci.o - obj-$(CONFIG_I2C_ELEKTOR) += i2c-elektor.o - obj-$(CONFIG_I2C_GPIO) += i2c-gpio.o -+obj-$(CONFIG_I2C_GPIO_CUSTOM) += i2c-gpio-custom.o - obj-$(CONFIG_I2C_HYDRA) += i2c-hydra.o - obj-$(CONFIG_I2C_I801) += i2c-i801.o - obj-$(CONFIG_I2C_I810) += i2c-i810.o diff --git a/target/linux/adm5120/patches-2.6.24/310-adm5120_wdt.patch b/target/linux/adm5120/patches-2.6.24/310-adm5120_wdt.patch deleted file mode 100644 index 2f1ac53..0000000 --- a/target/linux/adm5120/patches-2.6.24/310-adm5120_wdt.patch +++ /dev/null @@ -1,35 +0,0 @@ -Index: linux-2.6.24/drivers/watchdog/Kconfig -=================================================================== ---- linux-2.6.24.orig/drivers/watchdog/Kconfig -+++ linux-2.6.24/drivers/watchdog/Kconfig -@@ -607,6 +607,18 @@ config SBC_EPX_C3_WATCHDOG - - # MIPS Architecture - -+config ADM5120_WDT -+ tristate "Infineon ADM5120 SoC hardware watchdog" -+ depends on WATCHDOG && MIPS_ADM5120 -+ help -+ This is a driver for hardware watchdog integrated in Infineon -+ ADM5120 SoC. This watchdog simply watches your kernel to make sure -+ it doesn't freeze, and if it does, it reboots your computer after a -+ certain amount of time. -+ -+ To compile this driver as a module, choose M here: the module will be -+ called adm5120_wdt. -+ - config INDYDOG - tristate "Indy/I2 Hardware Watchdog" - depends on SGI_IP22 -Index: linux-2.6.24/drivers/watchdog/Makefile -=================================================================== ---- linux-2.6.24.orig/drivers/watchdog/Makefile -+++ linux-2.6.24/drivers/watchdog/Makefile -@@ -89,6 +89,7 @@ obj-$(CONFIG_SBC_EPX_C3_WATCHDOG) += sbc - # M68KNOMMU Architecture - - # MIPS Architecture -+obj-$(CONFIG_ADM5120_WDT) += adm5120_wdt.o - obj-$(CONFIG_INDYDOG) += indydog.o - obj-$(CONFIG_WDT_MTX1) += mtx-1_wdt.o - obj-$(CONFIG_WDT_RM9K_GPI) += rm9k_wdt.o diff --git a/target/linux/adm5120/patches-2.6.24/900-adm5120_switch_napi.patch b/target/linux/adm5120/patches-2.6.24/900-adm5120_switch_napi.patch deleted file mode 100644 index 5c757a1..0000000 --- a/target/linux/adm5120/patches-2.6.24/900-adm5120_switch_napi.patch +++ /dev/null @@ -1,144 +0,0 @@ -Index: linux-2.6.24/drivers/net/adm5120sw.c -=================================================================== ---- linux-2.6.24.orig/drivers/net/adm5120sw.c -+++ linux-2.6.24/drivers/net/adm5120sw.c -@@ -93,8 +93,14 @@ - /* ------------------------------------------------------------------------ */ - - struct adm5120_if_priv { -+ struct net_device *dev; -+ - unsigned int vlan_no; - unsigned int port_mask; -+ -+#ifdef CONFIG_ADM5120_SWITCH_NAPI -+ struct napi_struct napi; -+#endif - }; - - struct dma_desc { -@@ -333,7 +339,6 @@ static void sw_dump_regs(void) - SW_DBG("rlda: %08X\n", t); - } - -- - /* ------------------------------------------------------------------------ */ - - static inline void adm5120_rx_dma_update(struct dma_desc *desc, -@@ -495,9 +500,11 @@ static void adm5120_switch_tx(void) - } - - #ifdef CONFIG_ADM5120_SWITCH_NAPI --static int adm5120_if_poll(struct net_device *dev, int *budget) -+static int adm5120_if_poll(struct napi_struct *napi, int limit) - { -- int limit = min(dev->quota, *budget); -+ struct adm5120_if_priv *priv = container_of(napi, -+ struct adm5120_if_priv, napi); -+ struct net_device *dev = priv->dev; - int done; - u32 status; - -@@ -509,13 +516,10 @@ static int adm5120_if_poll(struct net_de - SW_DBG("%s: processing RX ring\n", dev->name); - done = adm5120_switch_rx(limit); - -- *budget -= done; -- dev->quota -= done; -- - status = sw_int_status() & SWITCH_INTS_POLL; - if ((done < limit) && (!status)) { - SW_DBG("disable polling mode for %s\n", dev->name); -- netif_rx_complete(dev); -+ netif_rx_complete(dev, napi); - sw_int_unmask(SWITCH_INTS_POLL); - return 0; - } -@@ -541,10 +545,12 @@ static irqreturn_t adm5120_switch_irq(in - - if (status & SWITCH_INTS_POLL) { - struct net_device *dev = dev_id; -+ struct adm5120_if_priv *priv = netdev_priv(dev); -+ - sw_dump_intr_mask("poll ints", status); - SW_DBG("enable polling mode for %s\n", dev->name); - sw_int_mask(SWITCH_INTS_POLL); -- netif_rx_schedule(dev); -+ netif_rx_schedule(dev, &priv->napi); - } - #else - sw_int_ack(status); -@@ -779,12 +785,31 @@ static void adm5120_switch_set_vlan_port - - /* ------------------------------------------------------------------------ */ - -+#ifdef CONFIG_ADM5120_SWITCH_NAPI -+static inline void adm5120_if_napi_enable(struct net_device *dev) -+{ -+ struct adm5120_if_priv *priv = netdev_priv(dev); -+ napi_enable(&priv->napi); -+} -+ -+static inline void adm5120_if_napi_disable(struct net_device *dev) -+{ -+ struct adm5120_if_priv *priv = netdev_priv(dev); -+ napi_disable(&priv->napi); -+} -+#else -+static inline void adm5120_if_napi_enable(struct net_device *dev) {} -+static inline void adm5120_if_napi_disable(struct net_device *dev) {} -+#endif /* CONFIG_ADM5120_SWITCH_NAPI */ -+ - static int adm5120_if_open(struct net_device *dev) - { - u32 t; - int err; - int i; - -+ adm5120_if_napi_enable(dev); -+ - err = request_irq(dev->irq, adm5120_switch_irq, - (IRQF_SHARED | IRQF_DISABLED), dev->name, dev); - if (err) { -@@ -809,6 +834,7 @@ static int adm5120_if_open(struct net_de - return 0; - - err: -+ adm5120_if_napi_disable(dev); - return err; - } - -@@ -818,6 +844,7 @@ static int adm5120_if_stop(struct net_de - int i; - - netif_stop_queue(dev); -+ adm5120_if_napi_disable(dev); - - /* disable port if not assigned to other devices */ - t = sw_read_reg(SWITCH_REG_PORT_CONF0); -@@ -1001,6 +1028,9 @@ static struct net_device *adm5120_if_all - if (!dev) - return NULL; - -+ priv = netdev_priv(dev); -+ priv->dev = dev; -+ - dev->irq = ADM5120_IRQ_SWITCH; - dev->open = adm5120_if_open; - dev->hard_start_xmit = adm5120_if_hard_start_xmit; -@@ -1010,13 +1040,11 @@ static struct net_device *adm5120_if_all - dev->tx_timeout = adm5120_if_tx_timeout; - dev->watchdog_timeo = TX_TIMEOUT; - dev->set_mac_address = adm5120_if_set_mac_address; -+ - #ifdef CONFIG_ADM5120_SWITCH_NAPI -- dev->poll = adm5120_if_poll; -- dev->weight = 64; -+ netif_napi_add(dev, &priv->napi, adm5120_if_poll, 64); - #endif - -- SET_MODULE_OWNER(dev); -- - return dev; - } - diff --git a/target/linux/adm5120/patches-2.6.24/910-usb_manage_endpoint_queues.patch b/target/linux/adm5120/patches-2.6.24/910-usb_manage_endpoint_queues.patch deleted file mode 100644 index 46b61d6..0000000 --- a/target/linux/adm5120/patches-2.6.24/910-usb_manage_endpoint_queues.patch +++ /dev/null @@ -1,110 +0,0 @@ -Index: linux-2.6.24/drivers/usb/host/adm5120-hcd.c -=================================================================== ---- linux-2.6.24.orig/drivers/usb/host/adm5120-hcd.c -+++ linux-2.6.24/drivers/usb/host/adm5120-hcd.c -@@ -83,8 +83,8 @@ static void admhc_stop(struct usb_hcd *h - /* - * queue up an urb for anything except the root hub - */ --static int admhc_urb_enqueue(struct usb_hcd *hcd, struct usb_host_endpoint *ep, -- struct urb *urb, gfp_t mem_flags) -+static int admhc_urb_enqueue(struct usb_hcd *hcd, struct urb *urb, -+ gfp_t mem_flags) - { - struct admhcd *ahcd = hcd_to_admhcd(hcd); - struct ed *ed; -@@ -101,7 +101,7 @@ static int admhc_urb_enqueue(struct usb_ - #endif - - /* every endpoint has an ed, locate and maybe (re)initialize it */ -- ed = ed_get(ahcd, ep, urb->dev, pipe, urb->interval); -+ ed = ed_get(ahcd, urb->ep, urb->dev, pipe, urb->interval); - if (!ed) - return -ENOMEM; - -@@ -161,22 +161,17 @@ static int admhc_urb_enqueue(struct usb_ - goto fail; - } - -- /* in case of unlink-during-submit */ -- spin_lock(&urb->lock); -- if (urb->status != -EINPROGRESS) { -- spin_unlock(&urb->lock); -- urb->hcpriv = urb_priv; -- finish_urb(ahcd, urb); -- ret = 0; -+ ret = usb_hcd_link_urb_to_ep(hcd, urb); -+ if (ret) - goto fail; -- } - - /* schedule the ed if needed */ - if (ed->state == ED_IDLE) { - ret = ed_schedule(ahcd, ed); -- if (ret < 0) -- goto fail0; -- -+ if (ret < 0) { -+ usb_hcd_unlink_urb_from_ep(hcd, urb); -+ goto fail; -+ } - if (ed->type == PIPE_ISOCHRONOUS) { - u16 frame = admhc_frame_no(ahcd); - -@@ -204,8 +199,6 @@ static int admhc_urb_enqueue(struct usb_ - admhc_dump_ed(ahcd, "admhc_urb_enqueue", urb_priv->ed, 1); - #endif - --fail0: -- spin_unlock(&urb->lock); - fail: - if (ret) - urb_priv_free(ahcd, urb_priv); -@@ -220,18 +213,23 @@ fail: - * asynchronously, and we might be dealing with an urb that's - * partially transferred, or an ED with other urbs being unlinked. - */ --static int admhc_urb_dequeue(struct usb_hcd *hcd, struct urb *urb) -+static int admhc_urb_dequeue(struct usb_hcd *hcd, struct urb *urb, -+ int status) - { - struct admhcd *ahcd = hcd_to_admhcd(hcd); - unsigned long flags; -+ int ret; - - spin_lock_irqsave(&ahcd->lock, flags); - - #ifdef ADMHC_VERBOSE_DEBUG - urb_print(ahcd, urb, "DEQUEUE", 1); - #endif -- -- if (HC_IS_RUNNING(hcd->state)) { -+ ret = usb_hcd_check_unlink_urb(hcd, urb, status); -+ if (ret) { -+ /* Do nothing */ -+ ; -+ } else if (HC_IS_RUNNING(hcd->state)) { - struct urb_priv *urb_priv; - - /* Unless an IRQ completed the unlink while it was being -@@ -253,7 +251,7 @@ static int admhc_urb_dequeue(struct usb_ - } - spin_unlock_irqrestore(&ahcd->lock, flags); - -- return 0; -+ return ret; - } - - /*-------------------------------------------------------------------------*/ -Index: linux-2.6.24/drivers/usb/host/adm5120-q.c -=================================================================== ---- linux-2.6.24.orig/drivers/usb/host/adm5120-q.c -+++ linux-2.6.24/drivers/usb/host/adm5120-q.c -@@ -63,6 +63,7 @@ __acquires(ahcd->lock) - #endif - - /* urb->complete() can reenter this HCD */ -+ usb_hcd_unlink_urb_from_ep(admhcd_to_hcd(ahcd), urb); - spin_unlock(&ahcd->lock); - usb_hcd_giveback_urb(admhcd_to_hcd(ahcd), urb); - spin_lock(&ahcd->lock); diff --git a/target/linux/adm5120/patches-2.6.24/911-usb_centralize_eremoteio_handling.patch b/target/linux/adm5120/patches-2.6.24/911-usb_centralize_eremoteio_handling.patch deleted file mode 100644 index b4e0fb0..0000000 --- a/target/linux/adm5120/patches-2.6.24/911-usb_centralize_eremoteio_handling.patch +++ /dev/null @@ -1,30 +0,0 @@ -Index: linux-2.6.24/drivers/usb/host/adm5120-q.c -=================================================================== ---- linux-2.6.24.orig/drivers/usb/host/adm5120-q.c -+++ linux-2.6.24/drivers/usb/host/adm5120-q.c -@@ -28,25 +28,10 @@ __releases(ahcd->lock) - __acquires(ahcd->lock) - { - urb_priv_free(ahcd, urb->hcpriv); -- urb->hcpriv = NULL; - - spin_lock(&urb->lock); - if (likely(urb->status == -EINPROGRESS)) - urb->status = 0; -- -- /* report short control reads right even though the data TD always -- * has TD_R set. (much simpler, but creates the 1-td limit.) -- */ -- if (unlikely(urb->transfer_flags & URB_SHORT_NOT_OK) -- && unlikely(usb_pipecontrol(urb->pipe)) -- && urb->actual_length < urb->transfer_buffer_length -- && usb_pipein(urb->pipe) -- && urb->status == 0) { -- urb->status = -EREMOTEIO; --#ifdef ADMHC_VERBOSE_DEBUG -- urb_print(ahcd, urb, "SHORT", usb_pipeout(urb->pipe)); --#endif -- } - spin_unlock(&urb->lock); - - switch (usb_pipetype(urb->pipe)) { diff --git a/target/linux/adm5120/patches-2.6.24/912-usb_use_urb_unlinked_field.patch b/target/linux/adm5120/patches-2.6.24/912-usb_use_urb_unlinked_field.patch deleted file mode 100644 index a2af8ca..0000000 --- a/target/linux/adm5120/patches-2.6.24/912-usb_use_urb_unlinked_field.patch +++ /dev/null @@ -1,23 +0,0 @@ -Index: linux-2.6.24/drivers/usb/host/adm5120-q.c -=================================================================== ---- linux-2.6.24.orig/drivers/usb/host/adm5120-q.c -+++ linux-2.6.24/drivers/usb/host/adm5120-q.c -@@ -616,8 +616,7 @@ static int td_done(struct admhcd *ahcd, - - if (cc != TD_CC_NOERROR && cc < TD_CC_HCD0) { - spin_lock(&urb->lock); -- if (urb->status == -EINPROGRESS) -- urb->status = cc_to_error[cc]; -+ urb->status = cc_to_error[cc]; - spin_unlock(&urb->lock); - } - -@@ -787,7 +786,7 @@ rescan_this: - urb = td->urb; - urb_priv = td->urb->hcpriv; - -- if (urb->status == -EINPROGRESS) { -+ if (!urb->unlinked) { - prev = &td->hwNextTD; - continue; - } diff --git a/target/linux/adm5120/patches-2.6.24/913-usb_avoid_donelist_after_an_error.patch b/target/linux/adm5120/patches-2.6.24/913-usb_avoid_donelist_after_an_error.patch deleted file mode 100644 index c6d7d60..0000000 --- a/target/linux/adm5120/patches-2.6.24/913-usb_avoid_donelist_after_an_error.patch +++ /dev/null @@ -1,62 +0,0 @@ -Index: linux-2.6.24/drivers/usb/host/adm5120-q.c -=================================================================== ---- linux-2.6.24.orig/drivers/usb/host/adm5120-q.c -+++ linux-2.6.24/drivers/usb/host/adm5120-q.c -@@ -641,10 +641,11 @@ static int td_done(struct admhcd *ahcd, - - /*-------------------------------------------------------------------------*/ - --static inline struct td * -+static inline void - ed_halted(struct admhcd *ahcd, struct td *td, int cc, struct td *rev) - { - struct urb *urb = td->urb; -+ struct urb_priv *urb_priv = urb->hcpriv; - struct ed *ed = td->ed; - struct list_head *tmp = td->td_list.next; - __hc32 toggle = ed->hwHeadP & cpu_to_hc32(ahcd, ED_C); -@@ -657,13 +658,12 @@ ed_halted(struct admhcd *ahcd, struct td - wmb(); - ed->hwHeadP &= ~cpu_to_hc32(ahcd, ED_H); - -- /* put any later tds from this urb onto the donelist, after 'td', -- * order won't matter here: no errors, and nothing was transferred. -- * also patch the ed so it looks as if those tds completed normally. -+ /* Get rid of all later tds from this urb. We don't have -+ * to be careful: no errors and nothing was transferred. -+ * Also patch the ed so it looks as if those tds completed normally. - */ - while (tmp != &ed->td_list) { - struct td *next; -- __hc32 info; - - next = list_entry(tmp, struct td, td_list); - tmp = next->td_list.next; -@@ -678,16 +678,8 @@ ed_halted(struct admhcd *ahcd, struct td - * then we need to leave the control STATUS packet queued - * and clear ED_SKIP. - */ -- info = next->hwINFO; --#if 0 /* FIXME */ -- info |= cpu_to_hc32(ahcd, TD_DONE); --#endif -- info &= ~cpu_to_hc32(ahcd, TD_CC); -- next->hwINFO = info; -- -- next->next_dl_td = rev; -- rev = next; -- -+ list_del(&next->td_list); -+ urb_priv->td_cnt++; - ed->hwHeadP = next->hwNextTD | toggle; - } - -@@ -713,8 +705,6 @@ ed_halted(struct admhcd *ahcd, struct td - hc32_to_cpu(ahcd, td->hwINFO), - cc, cc_to_error [cc]); - } -- -- return rev; - } - - /*-------------------------------------------------------------------------*/ diff --git a/target/linux/adm5120/patches-2.6.24/914-usb_reorganize_urb_status_use.patch b/target/linux/adm5120/patches-2.6.24/914-usb_reorganize_urb_status_use.patch deleted file mode 100644 index 79a53d8..0000000 --- a/target/linux/adm5120/patches-2.6.24/914-usb_reorganize_urb_status_use.patch +++ /dev/null @@ -1,242 +0,0 @@ -Index: linux-2.6.24/drivers/usb/host/adm5120-dbg.c -=================================================================== ---- linux-2.6.24.orig/drivers/usb/host/adm5120-dbg.c -+++ linux-2.6.24/drivers/usb/host/adm5120-dbg.c -@@ -82,7 +82,7 @@ static inline char *td_togglestring(u32 - * small: 0) header + data packets 1) just header - */ - static void __attribute__((unused)) --urb_print(struct admhcd *ahcd, struct urb *urb, char *str, int small) -+urb_print(struct admhcd *ahcd, struct urb *urb, char *str, int small, int status) - { - unsigned int pipe = urb->pipe; - -@@ -92,7 +92,7 @@ urb_print(struct admhcd *ahcd, struct ur - } - - #ifndef ADMHC_VERBOSE_DEBUG -- if (urb->status != 0) -+ if (status != 0) - #endif - admhc_dbg(ahcd, "URB-%s %p dev=%d ep=%d%s-%s flags=%x len=%d/%d " - "stat=%d\n", -@@ -105,7 +105,7 @@ urb_print(struct admhcd *ahcd, struct ur - urb->transfer_flags, - urb->actual_length, - urb->transfer_buffer_length, -- urb->status); -+ status); - - #ifdef ADMHC_VERBOSE_DEBUG - if (!small) { -@@ -125,7 +125,7 @@ urb_print(struct admhcd *ahcd, struct ur - urb->transfer_buffer_length: urb->actual_length; - for (i = 0; i < 16 && i < len; i++) - printk(" %02x", ((__u8 *)urb->transfer_buffer)[i]); -- printk("%s stat:%d\n", i < len? "...": "", urb->status); -+ printk("%s stat:%d\n", i < len? "...": "", status); - } - } - #endif /* ADMHC_VERBOSE_DEBUG */ -Index: linux-2.6.24/drivers/usb/host/adm5120-hcd.c -=================================================================== ---- linux-2.6.24.orig/drivers/usb/host/adm5120-hcd.c -+++ linux-2.6.24/drivers/usb/host/adm5120-hcd.c -@@ -96,7 +96,7 @@ static int admhc_urb_enqueue(struct usb_ - - #ifdef ADMHC_VERBOSE_DEBUG - spin_lock_irqsave(&ahcd->lock, flags); -- urb_print(ahcd, urb, "ENQEUE", usb_pipein(pipe)); -+ urb_print(ahcd, urb, "ENQEUE", usb_pipein(pipe), -EINPROGRESS); - spin_unlock_irqrestore(&ahcd->lock, flags); - #endif - -@@ -208,8 +208,8 @@ fail: - } - - /* -- * decouple the URB from the HC queues (TDs, urb_priv); it's -- * already marked using urb->status. reporting is always done -+ * decouple the URB from the HC queues (TDs, urb_priv); -+ * reporting is always done - * asynchronously, and we might be dealing with an urb that's - * partially transferred, or an ED with other urbs being unlinked. - */ -@@ -223,7 +223,7 @@ static int admhc_urb_dequeue(struct usb_ - spin_lock_irqsave(&ahcd->lock, flags); - - #ifdef ADMHC_VERBOSE_DEBUG -- urb_print(ahcd, urb, "DEQUEUE", 1); -+ urb_print(ahcd, urb, "DEQUEUE", 1, status); - #endif - ret = usb_hcd_check_unlink_urb(hcd, urb, status); - if (ret) { -@@ -247,7 +247,7 @@ static int admhc_urb_dequeue(struct usb_ - * any more ... just clean up every urb's memory. - */ - if (urb->hcpriv) -- finish_urb(ahcd, urb); -+ finish_urb(ahcd, urb, status); - } - spin_unlock_irqrestore(&ahcd->lock, flags); - -Index: linux-2.6.24/drivers/usb/host/adm5120-pm.c -=================================================================== ---- linux-2.6.24.orig/drivers/usb/host/adm5120-pm.c -+++ linux-2.6.24/drivers/usb/host/adm5120-pm.c -@@ -383,9 +383,8 @@ static int admhc_restart(struct admhcd * - ed, ed->state); - } - -- spin_lock(&urb->lock); -- urb->status = -ESHUTDOWN; -- spin_unlock(&urb->lock); -+ if (!urb->unlinked) -+ urb->unlinked = -ESHUTDOWN; - } - finish_unlinks(ahcd, 0); - spin_unlock_irq(&ahcd->lock); -Index: linux-2.6.24/drivers/usb/host/adm5120-q.c -=================================================================== ---- linux-2.6.24.orig/drivers/usb/host/adm5120-q.c -+++ linux-2.6.24/drivers/usb/host/adm5120-q.c -@@ -23,16 +23,14 @@ - * PRECONDITION: ahcd lock held, irqs blocked. - */ - static void --finish_urb(struct admhcd *ahcd, struct urb *urb) -+finish_urb(struct admhcd *ahcd, struct urb *urb, int status) - __releases(ahcd->lock) - __acquires(ahcd->lock) - { - urb_priv_free(ahcd, urb->hcpriv); - -- spin_lock(&urb->lock); -- if (likely(urb->status == -EINPROGRESS)) -- urb->status = 0; -- spin_unlock(&urb->lock); -+ if (likely(status == -EINPROGRESS)) -+ status = 0; - - switch (usb_pipetype(urb->pipe)) { - case PIPE_ISOCHRONOUS: -@@ -44,12 +42,13 @@ __acquires(ahcd->lock) - } - - #ifdef ADMHC_VERBOSE_DEBUG -- urb_print(ahcd, urb, "RET", usb_pipeout (urb->pipe)); -+ urb_print(ahcd, urb, "RET", usb_pipeout (urb->pipe), status); - #endif - - /* urb->complete() can reenter this HCD */ - usb_hcd_unlink_urb_from_ep(admhcd_to_hcd(ahcd), urb); - spin_unlock(&ahcd->lock); -+ urb->status = status; - usb_hcd_giveback_urb(admhcd_to_hcd(ahcd), urb); - spin_lock(&ahcd->lock); - } -@@ -557,9 +556,7 @@ static void td_submit_urb(struct admhcd - * Done List handling functions - *-------------------------------------------------------------------------*/ - --/* calculate transfer length/status and update the urb -- * PRECONDITION: irqsafe (only for urb->status locking) -- */ -+/* calculate transfer length/status and update the urb */ - static int td_done(struct admhcd *ahcd, struct urb *urb, struct td *td) - { - struct urb_priv *urb_priv = urb->hcpriv; -@@ -568,6 +565,7 @@ static int td_done(struct admhcd *ahcd, - u32 tdDBP; - int type = usb_pipetype(urb->pipe); - int cc; -+ int status = -EINPROGRESS; - - info = hc32_to_cpup(ahcd, &td->hwINFO); - tdDBP = hc32_to_cpup(ahcd, &td->hwDBP); -@@ -582,10 +580,9 @@ static int td_done(struct admhcd *ahcd, - /* NOTE: assumes FC in tdINFO == 0, and that - * only the first of 0..MAXPSW psws is used. - */ --#if 0 -- if (tdINFO & TD_CC) /* hc didn't touch? */ -- return; --#endif -+ if (info & TD_CC) /* hc didn't touch? */ -+ return status; -+ - if (usb_pipeout(urb->pipe)) - dlen = urb->iso_frame_desc[td->index].length; - else { -@@ -614,11 +611,9 @@ static int td_done(struct admhcd *ahcd, - && !(urb->transfer_flags & URB_SHORT_NOT_OK)) - cc = TD_CC_NOERROR; - -- if (cc != TD_CC_NOERROR && cc < TD_CC_HCD0) { -- spin_lock(&urb->lock); -- urb->status = cc_to_error[cc]; -- spin_unlock(&urb->lock); -- } -+ if (cc != TD_CC_NOERROR && cc < TD_CC_HCD0) -+ status = cc_to_error[cc]; -+ - - /* count all non-empty packets except control SETUP packet */ - if ((type != PIPE_CONTROL || td->index != 0) && tdDBP != 0) { -@@ -636,7 +631,7 @@ static int td_done(struct admhcd *ahcd, - list_del(&td->td_list); - urb_priv->td_idx++; - -- return cc; -+ return status; - } - - /*-------------------------------------------------------------------------*/ -@@ -771,6 +766,7 @@ rescan_this: - struct urb *urb; - struct urb_priv *urb_priv; - __hc32 savebits; -+ int status; - - td = list_entry(entry, struct td, td_list); - urb = td->urb; -@@ -792,12 +788,12 @@ rescan_this: - #ifdef ADMHC_VERBOSE_DEBUG - urb_print(ahcd, urb, "PARTIAL", 0); - #endif -- td_done(ahcd, urb, td); -+ status = td_done(ahcd, urb, td); - - /* if URB is done, clean up */ - if (urb_priv->td_idx == urb_priv->td_cnt) { - modified = completed = 1; -- finish_urb(ahcd, urb); -+ finish_urb(ahcd, urb, status); - } - } - if (completed && !list_empty(&ed->td_list)) -@@ -895,13 +891,13 @@ static void ed_update(struct admhcd *ahc - struct td *td = list_entry(entry, struct td, td_list); - struct urb *urb = td->urb; - struct urb_priv *urb_priv = urb->hcpriv; -- int cc; -+ int status; - - if (hc32_to_cpup(ahcd, &td->hwINFO) & TD_OWN) - break; - - /* update URB's length and status from TD */ -- cc = td_done(ahcd, urb, td); -+ status = td_done(ahcd, urb, td); - if (is_ed_halted(ahcd, ed) && is_td_halted(ahcd, ed, td)) - ed_unhalt(ahcd, ed, urb); - -@@ -910,7 +906,7 @@ static void ed_update(struct admhcd *ahc - - /* If all this urb's TDs are done, call complete() */ - if (urb_priv->td_idx == urb_priv->td_cnt) -- finish_urb(ahcd, urb); -+ finish_urb(ahcd, urb, status); - - /* clean schedule: unlink EDs that are no longer busy */ - if (list_empty(&ed->td_list)) { diff --git a/target/linux/adm5120/patches-2.6.24/915-usb_eliminate_urb_status.patch b/target/linux/adm5120/patches-2.6.24/915-usb_eliminate_urb_status.patch deleted file mode 100644 index 291b1ad..0000000 --- a/target/linux/adm5120/patches-2.6.24/915-usb_eliminate_urb_status.patch +++ /dev/null @@ -1,14 +0,0 @@ -Index: linux-2.6.24/drivers/usb/host/adm5120-q.c -=================================================================== ---- linux-2.6.24.orig/drivers/usb/host/adm5120-q.c -+++ linux-2.6.24/drivers/usb/host/adm5120-q.c -@@ -48,8 +48,7 @@ __acquires(ahcd->lock) - /* urb->complete() can reenter this HCD */ - usb_hcd_unlink_urb_from_ep(admhcd_to_hcd(ahcd), urb); - spin_unlock(&ahcd->lock); -- urb->status = status; -- usb_hcd_giveback_urb(admhcd_to_hcd(ahcd), urb); -+ usb_hcd_giveback_urb(admhcd_to_hcd(ahcd), urb, status); - spin_lock(&ahcd->lock); - } - diff --git a/target/linux/adm5120/patches-2.6.24/916-usb_bump_version_number.patch b/target/linux/adm5120/patches-2.6.24/916-usb_bump_version_number.patch deleted file mode 100644 index 312c1f3..0000000 --- a/target/linux/adm5120/patches-2.6.24/916-usb_bump_version_number.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: linux-2.6.24/drivers/usb/host/adm5120-hcd.c -=================================================================== ---- linux-2.6.24.orig/drivers/usb/host/adm5120-hcd.c -+++ linux-2.6.24/drivers/usb/host/adm5120-hcd.c -@@ -45,7 +45,7 @@ - #include "../core/hcd.h" - #include "../core/hub.h" - --#define DRIVER_VERSION "0.16.3" -+#define DRIVER_VERSION "0.24.0" - #define DRIVER_AUTHOR "Gabor Juhos <juhosg at openwrt.org>" - #define DRIVER_DESC "ADMtek USB 1.1 Host Controller Driver" - |