aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm63xx/patches-2.6.30
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm63xx/patches-2.6.30')
-rw-r--r--target/linux/brcm63xx/patches-2.6.30/001-add_broadcom_63xx_cpu_definitions.patch95
-rw-r--r--target/linux/brcm63xx/patches-2.6.30/002-add_support_for_broadcom_63xx_cpus.patch122
-rw-r--r--target/linux/brcm63xx/patches-2.6.30/003-add_serial_driver_for_bcm63xx_integr.patch66
-rw-r--r--target/linux/brcm63xx/patches-2.6.30/004_add_pci_support.patch33
-rw-r--r--target/linux/brcm63xx/patches-2.6.30/006-pcmcia_cardbus_support.patch43
-rw-r--r--target/linux/brcm63xx/patches-2.6.30/007-usb_ohci_support.patch56
-rw-r--r--target/linux/brcm63xx/patches-2.6.30/008-usb_ehci_support.patch58
-rw-r--r--target/linux/brcm63xx/patches-2.6.30/009-add_integrated_ethernet_mac_support.patch48
-rw-r--r--target/linux/brcm63xx/patches-2.6.30/010-add_integrated_ethernet_phy_support.patch38
-rw-r--r--target/linux/brcm63xx/patches-2.6.30/020-watchdog.patch29
-rw-r--r--target/linux/brcm63xx/patches-2.6.30/040-bcm963xx_flashmap.patch73
-rw-r--r--target/linux/brcm63xx/patches-2.6.30/050-spi.patch26
-rw-r--r--target/linux/brcm63xx/patches-2.6.30/060-bcm63xx_enet_upstream_fixes.patch448
-rw-r--r--target/linux/brcm63xx/patches-2.6.30/070_bcm63xx_enet_vlan_incoming_fixed.patch13
14 files changed, 0 insertions, 1148 deletions
diff --git a/target/linux/brcm63xx/patches-2.6.30/001-add_broadcom_63xx_cpu_definitions.patch b/target/linux/brcm63xx/patches-2.6.30/001-add_broadcom_63xx_cpu_definitions.patch
deleted file mode 100644
index 8564132479..0000000000
--- a/target/linux/brcm63xx/patches-2.6.30/001-add_broadcom_63xx_cpu_definitions.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-From a9f65413f9ea81ef2208da66a3db9cb8a9020eef Mon Sep 17 00:00:00 2001
-From: Maxime Bizon <mbizon@freebox.fr>
-Date: Fri, 18 Jul 2008 15:53:08 +0200
-Subject: [PATCH] [MIPS] BCM63XX: Add Broadcom 63xx CPU definitions.
-
-Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
----
- arch/mips/kernel/cpu-probe.c | 25 +++++++++++++++++++++++++
- arch/mips/mm/tlbex.c | 4 ++++
- arch/mips/include/asm/cpu.h | 7 +++++++
- 3 files changed, 36 insertions(+), 0 deletions(-)
-
---- a/arch/mips/kernel/cpu-probe.c
-+++ b/arch/mips/kernel/cpu-probe.c
-@@ -158,6 +158,9 @@ void __init check_wait(void)
- case CPU_25KF:
- case CPU_PR4450:
- case CPU_BCM3302:
-+ case CPU_BCM6338:
-+ case CPU_BCM6348:
-+ case CPU_BCM6358:
- case CPU_CAVIUM_OCTEON:
- cpu_wait = r4k_wait;
- break;
-@@ -855,6 +858,7 @@ static inline void cpu_probe_broadcom(st
- {
- decode_configs(c);
- switch (c->processor_id & 0xff00) {
-+ /* same as PRID_IMP_BCM6338 */
- case PRID_IMP_BCM3302:
- c->cputype = CPU_BCM3302;
- __cpu_name[cpu] = "Broadcom BCM3302";
-@@ -863,6 +867,26 @@ static inline void cpu_probe_broadcom(st
- c->cputype = CPU_BCM4710;
- __cpu_name[cpu] = "Broadcom BCM4710";
- break;
-+ case PRID_IMP_BCM6345:
-+ c->cputype = CPU_BCM6345;
-+ __cpu_name[cpu] = "Broadcom BCM6345";
-+ break;
-+ case PRID_IMP_BCM6348:
-+ c->cputype = CPU_BCM6348;
-+ __cpu_name[cpu] = "Broadcom BCM6348";
-+ break;
-+ case PRID_IMP_BCM4350:
-+ switch (c->processor_id & 0xf0) {
-+ case PRID_REV_BCM6358:
-+ c->cputype = CPU_BCM6358;
-+ __cpu_name[cpu] = "Broadcom BCM6358";
-+ break;
-+ default:
-+ c->cputype = CPU_UNKNOWN;
-+ __cpu_name[cpu] = "Broadcom BCM63xx";
-+ break;
-+ }
-+ break;
- }
- }
-
---- a/arch/mips/mm/tlbex.c
-+++ b/arch/mips/mm/tlbex.c
-@@ -310,6 +310,10 @@ static void __cpuinit build_tlb_write_en
- case CPU_BCM3302:
- case CPU_BCM4710:
- case CPU_LOONGSON2:
-+ case CPU_BCM6338:
-+ case CPU_BCM6345:
-+ case CPU_BCM6348:
-+ case CPU_BCM6358:
- case CPU_CAVIUM_OCTEON:
- case CPU_R5500:
- if (m4kc_tlbp_war())
---- a/arch/mips/include/asm/cpu.h
-+++ b/arch/mips/include/asm/cpu.h
-@@ -113,6 +113,12 @@
-
- #define PRID_IMP_BCM4710 0x4000
- #define PRID_IMP_BCM3302 0x9000
-+#define PRID_IMP_BCM6338 0x9000
-+#define PRID_IMP_BCM6345 0x8000
-+#define PRID_IMP_BCM6348 0x9100
-+#define PRID_IMP_BCM4350 0xA000
-+#define PRID_REV_BCM6358 0x0010
-+#define PRID_REV_BCM6368 0x0030
-
- /*
- * These are the PRID's for when 23:16 == PRID_COMP_CAVIUM
-@@ -210,6 +216,7 @@ enum cpu_type_enum {
- */
- CPU_4KC, CPU_4KEC, CPU_4KSC, CPU_24K, CPU_34K, CPU_1004K, CPU_74K,
- CPU_ALCHEMY, CPU_PR4450, CPU_BCM3302, CPU_BCM4710,
-+ CPU_BCM6338, CPU_BCM6345, CPU_BCM6348, CPU_BCM6358,
-
- /*
- * MIPS64 class processors
diff --git a/target/linux/brcm63xx/patches-2.6.30/002-add_support_for_broadcom_63xx_cpus.patch b/target/linux/brcm63xx/patches-2.6.30/002-add_support_for_broadcom_63xx_cpus.patch
deleted file mode 100644
index 9137889cf5..0000000000
--- a/target/linux/brcm63xx/patches-2.6.30/002-add_support_for_broadcom_63xx_cpus.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-From 0713aadd2a4e543b69022aa40bdec3e1dc5bc1e5 Mon Sep 17 00:00:00 2001
-From: Maxime Bizon <mbizon@freebox.fr>
-Date: Mon, 18 Aug 2008 13:56:57 +0200
-Subject: [PATCH] [MIPS] BCM63XX: Add support for Broadcom 63xx CPUs.
-
-Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
----
- arch/mips/Kconfig | 16 +
- arch/mips/Makefile | 7 +
- arch/mips/bcm63xx/Kconfig | 9 +
- arch/mips/bcm63xx/Makefile | 2 +
- arch/mips/bcm63xx/clk.c | 220 ++++++
- arch/mips/bcm63xx/cpu.c | 245 +++++++
- arch/mips/bcm63xx/cs.c | 144 ++++
- arch/mips/bcm63xx/early_printk.c | 30 +
- arch/mips/bcm63xx/gpio.c | 98 +++
- arch/mips/bcm63xx/irq.c | 253 +++++++
- arch/mips/bcm63xx/prom.c | 43 ++
- arch/mips/bcm63xx/setup.c | 108 +++
- arch/mips/bcm63xx/timer.c | 205 ++++++
- arch/mips/include/asm/fixmap.h | 4 +
- arch/mips/include/asm/mach-bcm63xx/bcm63xx_clk.h | 11 +
- arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h | 314 +++++++++
- arch/mips/include/asm/mach-bcm63xx/bcm63xx_cs.h | 10 +
- arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h | 14 +
- arch/mips/include/asm/mach-bcm63xx/bcm63xx_io.h | 93 +++
- arch/mips/include/asm/mach-bcm63xx/bcm63xx_irq.h | 15 +
- arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h | 728 ++++++++++++++++++++
- arch/mips/include/asm/mach-bcm63xx/bcm63xx_timer.h | 11 +
- .../asm-mips/mach-bcm63xx/cpu-feature-overrides.h | 51 ++
- arch/mips/include/asm/mach-bcm63xx/gpio.h | 52 ++
- arch/mips/include/asm/mach-bcm63xx/war.h | 25 +
- 25 files changed, 2708 insertions(+), 0 deletions(-)
- create mode 100644 arch/mips/bcm63xx/Kconfig
- create mode 100644 arch/mips/bcm63xx/Makefile
- create mode 100644 arch/mips/bcm63xx/clk.c
- create mode 100644 arch/mips/bcm63xx/cpu.c
- create mode 100644 arch/mips/bcm63xx/cs.c
- create mode 100644 arch/mips/bcm63xx/early_printk.c
- create mode 100644 arch/mips/bcm63xx/gpio.c
- create mode 100644 arch/mips/bcm63xx/irq.c
- create mode 100644 arch/mips/bcm63xx/prom.c
- create mode 100644 arch/mips/bcm63xx/setup.c
- create mode 100644 arch/mips/bcm63xx/timer.c
- create mode 100644 arch/mips/include/asm/mach-bcm63xx/bcm63xx_clk.h
- create mode 100644 arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h
- create mode 100644 arch/mips/include/asm/mach-bcm63xx/bcm63xx_cs.h
- create mode 100644 arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h
- create mode 100644 arch/mips/include/asm/mach-bcm63xx/bcm63xx_io.h
- create mode 100644 arch/mips/include/asm/mach-bcm63xx/bcm63xx_irq.h
- create mode 100644 arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h
- create mode 100644 arch/mips/include/asm/mach-bcm63xx/bcm63xx_timer.h
- create mode 100644 arch/mips/include/asm/mach-bcm63xx/cpu-feature-overrides.h
- create mode 100644 arch/mips/include/asm/mach-bcm63xx/gpio.h
- create mode 100644 arch/mips/include/asm/mach-bcm63xx/war.h
-
---- a/arch/mips/Kconfig
-+++ b/arch/mips/Kconfig
-@@ -60,6 +60,21 @@ config BCM47XX
- help
- Support for BCM47XX based boards
-
-+config BCM63XX
-+ bool "Broadcom 63xx based boards"
-+ select CEVT_R4K
-+ select CSRC_R4K
-+ select DMA_NONCOHERENT
-+ select IRQ_CPU
-+ select SYS_HAS_CPU_MIPS32_R1
-+ select SYS_SUPPORTS_32BIT_KERNEL
-+ select SYS_SUPPORTS_BIG_ENDIAN
-+ select SYS_HAS_EARLY_PRINTK
-+ select SWAP_IO_SPACE
-+ select ARCH_REQUIRE_GPIOLIB
-+ help
-+ Support for BCM63XX based boards
-+
- config MIPS_COBALT
- bool "Cobalt Server"
- select CEVT_R4K
-@@ -635,6 +650,7 @@ endchoice
-
- source "arch/mips/alchemy/Kconfig"
- source "arch/mips/basler/excite/Kconfig"
-+source "arch/mips/bcm63xx/Kconfig"
- source "arch/mips/jazz/Kconfig"
- source "arch/mips/lasat/Kconfig"
- source "arch/mips/pmc-sierra/Kconfig"
---- a/arch/mips/Makefile
-+++ b/arch/mips/Makefile
-@@ -551,6 +551,13 @@ cflags-$(CONFIG_BCM47XX) += -I$(srctree)
- load-$(CONFIG_BCM47XX) := 0xffffffff80001000
-
- #
-+# Broadcom BCM63XX boards
-+#
-+core-$(CONFIG_BCM63XX) += arch/mips/bcm63xx/
-+cflags-$(CONFIG_BCM63XX) += -Iarch/mips/include/asm/mach-bcm63xx/
-+load-$(CONFIG_BCM63XX) := 0xffffffff80010000
-+
-+#
- # SNI RM
- #
- core-$(CONFIG_SNI_RM) += arch/mips/sni/
---- a/arch/mips/include/asm/fixmap.h
-+++ b/arch/mips/include/asm/fixmap.h
-@@ -67,11 +67,15 @@ enum fixed_addresses {
- * the start of the fixmap, and leave one page empty
- * at the top of mem..
- */
-+#ifdef CONFIG_BCM63XX
-+#define FIXADDR_TOP ((unsigned long)(long)(int)0xff000000)
-+#else
- #if defined(CONFIG_CPU_TX39XX) || defined(CONFIG_CPU_TX49XX)
- #define FIXADDR_TOP ((unsigned long)(long)(int)(0xff000000 - 0x20000))
- #else
- #define FIXADDR_TOP ((unsigned long)(long)(int)0xfffe0000)
- #endif
-+#endif
- #define FIXADDR_SIZE (__end_of_fixed_addresses << PAGE_SHIFT)
- #define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE)
-
diff --git a/target/linux/brcm63xx/patches-2.6.30/003-add_serial_driver_for_bcm63xx_integr.patch b/target/linux/brcm63xx/patches-2.6.30/003-add_serial_driver_for_bcm63xx_integr.patch
deleted file mode 100644
index 478147d30a..0000000000
--- a/target/linux/brcm63xx/patches-2.6.30/003-add_serial_driver_for_bcm63xx_integr.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 6c489656b09998ed6a6f857e01ccf630e29358dd Mon Sep 17 00:00:00 2001
-From: Maxime Bizon <mbizon@freebox.fr>
-Date: Fri, 18 Jul 2008 19:35:55 +0200
-Subject: [PATCH] [MIPS] BCM63XX: Add serial driver for bcm63xx integrated UART.
-
-Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
----
- arch/mips/bcm63xx/Makefile | 1 +
- arch/mips/bcm63xx/dev-uart.c | 41 +
- drivers/serial/Kconfig | 19 +
- drivers/serial/Makefile | 1 +
- drivers/serial/bcm63xx_uart.c | 890 ++++++++++++++++++++++
- include/asm-mips/mach-bcm63xx/bcm63xx_dev_uart.h | 6 +
- include/linux/serial_core.h | 2 +
- 7 files changed, 960 insertions(+), 0 deletions(-)
- create mode 100644 arch/mips/bcm63xx/dev-uart.c
- create mode 100644 drivers/serial/bcm63xx_uart.c
- create mode 100644 include/asm-mips/mach-bcm63xx/bcm63xx_dev_uart.h
-
---- a/drivers/serial/Kconfig
-+++ b/drivers/serial/Kconfig
-@@ -1433,4 +1433,23 @@ config SPORT_BAUD_RATE
- default 19200 if (SERIAL_SPORT_BAUD_RATE_19200)
- default 9600 if (SERIAL_SPORT_BAUD_RATE_9600)
-
-+config SERIAL_BCM63XX
-+ tristate "bcm63xx serial port support"
-+ select SERIAL_CORE
-+ depends on BCM63XX
-+ help
-+ If you have a bcm63xx CPU, you can enable its onboard
-+ serial port by enabling this options.
-+
-+ To compile this driver as a module, choose M here: the
-+ module will be called bcm963xx_uart.
-+
-+config SERIAL_BCM63XX_CONSOLE
-+ bool "Console on bcm63xx serial port"
-+ depends on SERIAL_BCM63XX
-+ select SERIAL_CORE_CONSOLE
-+ help
-+ If you have enabled the serial port on the bcm63xx CPU
-+ you can make it the console by answering Y to this option.
-+
- endmenu
---- a/drivers/serial/Makefile
-+++ b/drivers/serial/Makefile
-@@ -34,6 +34,7 @@ obj-$(CONFIG_SERIAL_CLPS711X) += clps711
- obj-$(CONFIG_SERIAL_PXA) += pxa.o
- obj-$(CONFIG_SERIAL_PNX8XXX) += pnx8xxx_uart.o
- obj-$(CONFIG_SERIAL_SA1100) += sa1100.o
-+obj-$(CONFIG_SERIAL_BCM63XX) += bcm63xx_uart.o
- obj-$(CONFIG_SERIAL_BFIN) += bfin_5xx.o
- obj-$(CONFIG_SERIAL_BFIN_SPORT) += bfin_sport_uart.o
- obj-$(CONFIG_SERIAL_SAMSUNG) += samsung.o
---- a/include/linux/serial_core.h
-+++ b/include/linux/serial_core.h
-@@ -167,6 +167,8 @@
- /* MAX3100 */
- #define PORT_MAX3100 86
-
-+#define PORT_BCM63XX 83
-+
- #ifdef __KERNEL__
-
- #include <linux/compiler.h>
diff --git a/target/linux/brcm63xx/patches-2.6.30/004_add_pci_support.patch b/target/linux/brcm63xx/patches-2.6.30/004_add_pci_support.patch
deleted file mode 100644
index 4e65c41d40..0000000000
--- a/target/linux/brcm63xx/patches-2.6.30/004_add_pci_support.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 2a7fa2dbbf68650644f807a50cc2d84ca30835c1 Mon Sep 17 00:00:00 2001
-From: Maxime Bizon <mbizon@freebox.fr>
-Date: Sun, 21 Sep 2008 04:47:13 +0200
-Subject: [PATCH] [MIPS] BCM63XX: Add PCI support.
-
-Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
----
- arch/mips/bcm63xx/Kconfig | 2 +
- arch/mips/bcm63xx/setup.c | 2 +
- arch/mips/pci/Makefile | 2 +
- arch/mips/pci/fixup-bcm63xx.c | 21 +++
- arch/mips/pci/ops-bcm63xx.c | 179 +++++++++++++++++++++++
- arch/mips/pci/pci-bcm63xx.c | 178 ++++++++++++++++++++++
- arch/mips/pci/pci-bcm63xx.h | 27 ++++
- include/asm-mips/mach-bcm63xx/bcm63xx_dev_pci.h | 6 +
- 8 files changed, 417 insertions(+), 0 deletions(-)
- create mode 100644 arch/mips/pci/fixup-bcm63xx.c
- create mode 100644 arch/mips/pci/ops-bcm63xx.c
- create mode 100644 arch/mips/pci/pci-bcm63xx.c
- create mode 100644 arch/mips/pci/pci-bcm63xx.h
- create mode 100644 include/asm-mips/mach-bcm63xx/bcm63xx_dev_pci.h
-
---- a/arch/mips/pci/Makefile
-+++ b/arch/mips/pci/Makefile
-@@ -16,6 +16,8 @@ obj-$(CONFIG_PCI_VR41XX) += ops-vr41xx.o
- obj-$(CONFIG_NEC_MARKEINS) += ops-emma2rh.o pci-emma2rh.o fixup-emma2rh.o
- obj-$(CONFIG_PCI_TX4927) += ops-tx4927.o
- obj-$(CONFIG_BCM47XX) += pci-bcm47xx.o
-+obj-$(CONFIG_BCM63XX) += pci-bcm63xx.o fixup-bcm63xx.o \
-+ ops-bcm63xx.o
-
- #
- # These are still pretty much in the old state, watch, go blind.
diff --git a/target/linux/brcm63xx/patches-2.6.30/006-pcmcia_cardbus_support.patch b/target/linux/brcm63xx/patches-2.6.30/006-pcmcia_cardbus_support.patch
deleted file mode 100644
index e6e867f174..0000000000
--- a/target/linux/brcm63xx/patches-2.6.30/006-pcmcia_cardbus_support.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From b17597be763621ba63534fda6e1ea0a802be2087 Mon Sep 17 00:00:00 2001
-From: Maxime Bizon <mbizon@freebox.fr>
-Date: Fri, 18 Jul 2008 21:18:51 +0200
-Subject: [PATCH] [MIPS] BCM63XX: Add PCMCIA & Cardbus support.
-
-Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
----
- arch/mips/bcm63xx/Makefile | 1 +
- arch/mips/bcm63xx/dev-pcmcia.c | 135 +++++
- drivers/pcmcia/Kconfig | 4 +
- drivers/pcmcia/Makefile | 1 +
- drivers/pcmcia/bcm63xx_pcmcia.c | 521 ++++++++++++++++++++
- drivers/pcmcia/bcm63xx_pcmcia.h | 65 +++
- include/asm-mips/mach-bcm63xx/bcm63xx_dev_pcmcia.h | 13 +
- 7 files changed, 740 insertions(+), 0 deletions(-)
- create mode 100644 arch/mips/bcm63xx/dev-pcmcia.c
- create mode 100644 drivers/pcmcia/bcm63xx_pcmcia.c
- create mode 100644 drivers/pcmcia/bcm63xx_pcmcia.h
- create mode 100644 include/asm-mips/mach-bcm63xx/bcm63xx_dev_pcmcia.h
-
---- a/drivers/pcmcia/Kconfig
-+++ b/drivers/pcmcia/Kconfig
-@@ -192,6 +192,10 @@ config PCMCIA_AU1X00
- tristate "Au1x00 pcmcia support"
- depends on SOC_AU1X00 && PCMCIA
-
-+config PCMCIA_BCM63XX
-+ tristate "bcm63xx pcmcia support"
-+ depends on BCM63XX && PCMCIA
-+
- config PCMCIA_SA1100
- tristate "SA1100 support"
- depends on ARM && ARCH_SA1100 && PCMCIA
---- a/drivers/pcmcia/Makefile
-+++ b/drivers/pcmcia/Makefile
-@@ -27,6 +27,7 @@ obj-$(CONFIG_PCMCIA_SA1111) += sa11xx_
- obj-$(CONFIG_M32R_PCC) += m32r_pcc.o
- obj-$(CONFIG_M32R_CFC) += m32r_cfc.o
- obj-$(CONFIG_PCMCIA_AU1X00) += au1x00_ss.o
-+obj-$(CONFIG_PCMCIA_BCM63XX) += bcm63xx_pcmcia.o
- obj-$(CONFIG_PCMCIA_VRC4171) += vrc4171_card.o
- obj-$(CONFIG_PCMCIA_VRC4173) += vrc4173_cardu.o
- obj-$(CONFIG_OMAP_CF) += omap_cf.o
diff --git a/target/linux/brcm63xx/patches-2.6.30/007-usb_ohci_support.patch b/target/linux/brcm63xx/patches-2.6.30/007-usb_ohci_support.patch
deleted file mode 100644
index a43c06a479..0000000000
--- a/target/linux/brcm63xx/patches-2.6.30/007-usb_ohci_support.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From f7416412febd7efc1d33c7506c81265719368667 Mon Sep 17 00:00:00 2001
-From: Maxime Bizon <mbizon@freebox.fr>
-Date: Mon, 21 Jul 2008 14:58:19 +0200
-Subject: [PATCH] [MIPS] BCM63XX: Add USB OHCI support.
-
-Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
----
- arch/mips/bcm63xx/Kconfig | 6 +
- arch/mips/bcm63xx/Makefile | 1 +
- arch/mips/bcm63xx/dev-usb-ohci.c | 50 ++++++
- drivers/usb/host/ohci-bcm63xx.c | 159 ++++++++++++++++++++
- drivers/usb/host/ohci-hcd.c | 5 +
- drivers/usb/host/ohci.h | 7 +-
- .../asm-mips/mach-bcm63xx/bcm63xx_dev_usb_ohci.h | 6 +
- 7 files changed, 233 insertions(+), 1 deletions(-)
- create mode 100644 arch/mips/bcm63xx/dev-usb-ohci.c
- create mode 100644 drivers/usb/host/ohci-bcm63xx.c
- create mode 100644 include/asm-mips/mach-bcm63xx/bcm63xx_dev_usb_ohci.h
-
---- a/drivers/usb/host/ohci-hcd.c
-+++ b/drivers/usb/host/ohci-hcd.c
-@@ -1047,6 +1047,11 @@ MODULE_LICENSE ("GPL");
- #define PLATFORM_DRIVER usb_hcd_pnx4008_driver
- #endif
-
-+#ifdef CONFIG_BCM63XX
-+#include "ohci-bcm63xx.c"
-+#define PLATFORM_DRIVER ohci_hcd_bcm63xx_driver
-+#endif
-+
- #if defined(CONFIG_CPU_SUBTYPE_SH7720) || \
- defined(CONFIG_CPU_SUBTYPE_SH7721) || \
- defined(CONFIG_CPU_SUBTYPE_SH7763) || \
---- a/drivers/usb/host/ohci.h
-+++ b/drivers/usb/host/ohci.h
-@@ -536,6 +536,11 @@ static inline struct usb_hcd *ohci_to_hc
- #define big_endian_mmio(ohci) 0 /* only little endian */
- #endif
-
-+#if defined(CONFIG_MIPS) && defined(CONFIG_BCM63XX)
-+#define readl_be(addr) __raw_readl((__force unsigned *)addr)
-+#define writel_be(val, addr) __raw_writel(val, (__force unsigned *)addr)
-+#endif
-+
- /*
- * Big-endian read/write functions are arch-specific.
- * Other arches can be added if/when they're needed.
-@@ -646,7 +651,7 @@ static inline u32 hc32_to_cpup (const st
- * some big-endian SOC implementations. Same thing happens with PSW access.
- */
-
--#ifdef CONFIG_PPC_MPC52xx
-+#if defined(CONFIG_PPC_MPC52xx) || defined(CONFIG_BCM63XX)
- #define big_endian_frame_no_quirk(ohci) (ohci->flags & OHCI_QUIRK_FRAME_NO)
- #else
- #define big_endian_frame_no_quirk(ohci) 0
diff --git a/target/linux/brcm63xx/patches-2.6.30/008-usb_ehci_support.patch b/target/linux/brcm63xx/patches-2.6.30/008-usb_ehci_support.patch
deleted file mode 100644
index 29433d94bc..0000000000
--- a/target/linux/brcm63xx/patches-2.6.30/008-usb_ehci_support.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 2940d1996c86c4c4dd7a82214f846d0c0b707165 Mon Sep 17 00:00:00 2001
-From: Maxime Bizon <mbizon@freebox.fr>
-Date: Mon, 21 Jul 2008 18:24:42 +0200
-Subject: [PATCH] [MIPS] BCM63XX: Add USB EHCI support.
-
-Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
----
- arch/mips/bcm63xx/Kconfig | 2 +
- arch/mips/bcm63xx/Makefile | 1 +
- arch/mips/bcm63xx/dev-usb-ehci.c | 50 +++++++
- drivers/usb/host/ehci-bcm63xx.c | 152 ++++++++++++++++++++
- drivers/usb/host/ehci-hcd.c | 5 +
- drivers/usb/host/ehci.h | 5 +
- .../asm-mips/mach-bcm63xx/bcm63xx_dev_usb_ehci.h | 6 +
- 7 files changed, 221 insertions(+), 0 deletions(-)
- create mode 100644 arch/mips/bcm63xx/dev-usb-ehci.c
- create mode 100644 drivers/usb/host/ehci-bcm63xx.c
- create mode 100644 include/asm-mips/mach-bcm63xx/bcm63xx_dev_usb_ehci.h
-
---- a/drivers/usb/host/ehci-hcd.c
-+++ b/drivers/usb/host/ehci-hcd.c
-@@ -1072,6 +1072,11 @@ MODULE_LICENSE ("GPL");
- #define PLATFORM_DRIVER ixp4xx_ehci_driver
- #endif
-
-+#ifdef CONFIG_BCM63XX
-+#include "ehci-bcm63xx.c"
-+#define PLATFORM_DRIVER ehci_hcd_bcm63xx_driver
-+#endif
-+
- #if !defined(PCI_DRIVER) && !defined(PLATFORM_DRIVER) && \
- !defined(PS3_SYSTEM_BUS_DRIVER) && !defined(OF_PLATFORM_DRIVER)
- #error "missing bus glue for ehci-hcd"
---- a/drivers/usb/host/ehci.h
-+++ b/drivers/usb/host/ehci.h
-@@ -597,6 +597,11 @@ ehci_port_speed(struct ehci_hcd *ehci, u
- #define writel_be(val, addr) __raw_writel(val, (__force unsigned *)addr)
- #endif
-
-+#if defined(CONFIG_MIPS) && defined(CONFIG_BCM63XX)
-+#define readl_be(addr) __raw_readl((__force unsigned *)addr)
-+#define writel_be(val, addr) __raw_writel(val, (__force unsigned *)addr)
-+#endif
-+
- static inline unsigned int ehci_readl(const struct ehci_hcd *ehci,
- __u32 __iomem * regs)
- {
---- a/drivers/usb/host/Kconfig
-+++ b/drivers/usb/host/Kconfig
-@@ -41,7 +41,7 @@ config USB_EHCI_HCD
-
- config USB_EHCI_ROOT_HUB_TT
- bool "Root Hub Transaction Translators"
-- depends on USB_EHCI_HCD
-+ depends on USB_EHCI_HCD && !BCM63XX
- ---help---
- Some EHCI chips have vendor-specific extensions to integrate
- transaction translators, so that no OHCI or UHCI companion
diff --git a/target/linux/brcm63xx/patches-2.6.30/009-add_integrated_ethernet_mac_support.patch b/target/linux/brcm63xx/patches-2.6.30/009-add_integrated_ethernet_mac_support.patch
deleted file mode 100644
index 82015ae16b..0000000000
--- a/target/linux/brcm63xx/patches-2.6.30/009-add_integrated_ethernet_mac_support.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 49aa7ffcd9bd2d9a0af99fced7b8511160dbf345 Mon Sep 17 00:00:00 2001
-From: Maxime Bizon <mbizon@freebox.fr>
-Date: Sun, 21 Sep 2008 03:43:26 +0200
-Subject: [PATCH] [MIPS] BCM63XX: Add integrated ethernet mac support.
-
-Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
----
- arch/mips/bcm63xx/Makefile | 1 +
- arch/mips/bcm63xx/dev-enet.c | 158 ++
- drivers/net/Kconfig | 9 +
- drivers/net/Makefile | 1 +
- drivers/net/bcm63xx_enet.c | 1894 ++++++++++++++++++++++
- drivers/net/bcm63xx_enet.h | 294 ++++
- include/asm-mips/mach-bcm63xx/bcm63xx_dev_enet.h | 45 +
- 7 files changed, 2402 insertions(+), 0 deletions(-)
- create mode 100644 arch/mips/bcm63xx/dev-enet.c
- create mode 100644 drivers/net/bcm63xx_enet.c
- create mode 100644 drivers/net/bcm63xx_enet.h
- create mode 100644 include/asm-mips/mach-bcm63xx/bcm63xx_dev_enet.h
-
---- a/drivers/net/Kconfig
-+++ b/drivers/net/Kconfig
-@@ -2035,6 +2035,15 @@ config ATL2
- To compile this driver as a module, choose M here. The module
- will be called atl2.
-
-+config BCM63XX_ENET
-+ tristate "Broadcom 63xx internal mac support"
-+ depends on BCM63XX
-+ select MII
-+ select PHYLIB
-+ help
-+ This driver supports the ethernet MACs in the Broadcom 63xx
-+ MIPS chipset family (BCM63XX).
-+
- source "drivers/net/fs_enet/Kconfig"
-
- endif # NET_ETHERNET
---- a/drivers/net/Makefile
-+++ b/drivers/net/Makefile
-@@ -130,6 +130,7 @@ obj-$(CONFIG_SB1250_MAC) += sb1250-mac.o
- obj-$(CONFIG_B44) += b44.o
- obj-$(CONFIG_FORCEDETH) += forcedeth.o
- obj-$(CONFIG_NE_H8300) += ne-h8300.o 8390.o
-+obj-$(CONFIG_BCM63XX_ENET) += bcm63xx_enet.o
- obj-$(CONFIG_AX88796) += ax88796.o
-
- obj-$(CONFIG_TSI108_ETH) += tsi108_eth.o
diff --git a/target/linux/brcm63xx/patches-2.6.30/010-add_integrated_ethernet_phy_support.patch b/target/linux/brcm63xx/patches-2.6.30/010-add_integrated_ethernet_phy_support.patch
deleted file mode 100644
index b2eace1c52..0000000000
--- a/target/linux/brcm63xx/patches-2.6.30/010-add_integrated_ethernet_phy_support.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 7eefcb968019804e024c8243e28afb1eebd674a2 Mon Sep 17 00:00:00 2001
-From: Maxime Bizon <mbizon@freebox.fr>
-Date: Sun, 21 Sep 2008 02:20:53 +0200
-Subject: [PATCH] [MIPS] BCM63XX: Add integrated ethernet PHY support for phylib.
-
-Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
----
- drivers/net/phy/Kconfig | 6 ++
- drivers/net/phy/Makefile | 1 +
- drivers/net/phy/bcm63xx.c | 132 +++++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 139 insertions(+), 0 deletions(-)
- create mode 100644 drivers/net/phy/bcm63xx.c
-
---- a/drivers/net/phy/Kconfig
-+++ b/drivers/net/phy/Kconfig
-@@ -62,6 +62,12 @@ config BROADCOM_PHY
- Currently supports the BCM5411, BCM5421, BCM5461, BCM5464, BCM5481
- and BCM5482 PHYs.
-
-+config BCM63XX_PHY
-+ tristate "Drivers for Broadcom 63xx SOCs internal PHY"
-+ depends on BCM63XX
-+ ---help---
-+ Currently supports the 6348 and 6358 PHYs.
-+
- config ICPLUS_PHY
- tristate "Drivers for ICPlus PHYs"
- ---help---
---- a/drivers/net/phy/Makefile
-+++ b/drivers/net/phy/Makefile
-@@ -12,6 +12,7 @@ obj-$(CONFIG_QSEMI_PHY) += qsemi.o
- obj-$(CONFIG_SMSC_PHY) += smsc.o
- obj-$(CONFIG_VITESSE_PHY) += vitesse.o
- obj-$(CONFIG_BROADCOM_PHY) += broadcom.o
-+obj-$(CONFIG_BCM63XX_PHY) += bcm63xx.o
- obj-$(CONFIG_ICPLUS_PHY) += icplus.o
- obj-$(CONFIG_ADM6996_PHY) += adm6996.o
- obj-$(CONFIG_MVSWITCH_PHY) += mvswitch.o
diff --git a/target/linux/brcm63xx/patches-2.6.30/020-watchdog.patch b/target/linux/brcm63xx/patches-2.6.30/020-watchdog.patch
deleted file mode 100644
index 302c6c79b7..0000000000
--- a/target/linux/brcm63xx/patches-2.6.30/020-watchdog.patch
+++ /dev/null
@@ -1,29 +0,0 @@
---- a/drivers/watchdog/Makefile
-+++ b/drivers/watchdog/Makefile
-@@ -105,6 +105,7 @@ obj-$(CONFIG_WDT_RM9K_GPI) += rm9k_wdt.o
- obj-$(CONFIG_SIBYTE_WDOG) += sb_wdog.o
- obj-$(CONFIG_AR7_WDT) += ar7_wdt.o
- obj-$(CONFIG_TXX9_WDT) += txx9wdt.o
-+obj-$(CONFIG_BCM63XX_WDT) += bcm63xx_wdt.o
-
- # PARISC Architecture
-
---- a/drivers/watchdog/Kconfig
-+++ b/drivers/watchdog/Kconfig
-@@ -764,6 +764,16 @@ config TXX9_WDT
- help
- Hardware driver for the built-in watchdog timer on TXx9 MIPS SoCs.
-
-+config BCM63XX_WDT
-+ tristate "Broadcom BCM63xx hardware watchdog"
-+ depends on BCM63XX
-+ help
-+ Watchdog driver for the built in watchdog hardware in Broadcom
-+ BCM63xx SoC.
-+
-+ To compile thi driver as a loadable module, choose M here.
-+ The module will be called bcm63xx_wdt.
-+
- # PARISC Architecture
-
- # POWERPC Architecture
diff --git a/target/linux/brcm63xx/patches-2.6.30/040-bcm963xx_flashmap.patch b/target/linux/brcm63xx/patches-2.6.30/040-bcm963xx_flashmap.patch
deleted file mode 100644
index f8d37abd89..0000000000
--- a/target/linux/brcm63xx/patches-2.6.30/040-bcm963xx_flashmap.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From e734ace5baa04e0e8af1d4483475fbd6bd2b32a1 Mon Sep 17 00:00:00 2001
-From: Axel Gembe <ago@bastart.eu.org>
-Date: Mon, 12 May 2008 18:54:09 +0200
-Subject: [PATCH] bcm963xx: flashmap support
-
-
-Signed-off-by: Axel Gembe <ago@bastart.eu.org>
----
- drivers/mtd/maps/Kconfig | 7 +++++++
- drivers/mtd/maps/Makefile | 1 +
- drivers/mtd/redboot.c | 13 ++++++++++---
- 3 files changed, 18 insertions(+), 3 deletions(-)
-
---- a/drivers/mtd/maps/Kconfig
-+++ b/drivers/mtd/maps/Kconfig
-@@ -268,6 +268,13 @@ config MTD_ALCHEMY
- help
- Flash memory access on AMD Alchemy Pb/Db/RDK Reference Boards
-
-+config MTD_BCM963XX
-+ tristate "BCM963xx Flash device"
-+ depends on MIPS && BCM63XX
-+ help
-+ Flash memory access on BCM963xx boards. Currently only works with
-+ RedBoot and CFE.
-+
- config MTD_DILNETPC
- tristate "CFI Flash device mapped on DIL/Net PC"
- depends on X86 && MTD_CONCAT && MTD_PARTITIONS && MTD_CFI_INTELEXT
---- a/drivers/mtd/redboot.c
-+++ b/drivers/mtd/redboot.c
-@@ -39,7 +39,7 @@ static inline int redboot_checksum(struc
- return 1;
- }
-
--static int parse_redboot_partitions(struct mtd_info *master,
-+int parse_redboot_partitions(struct mtd_info *master,
- struct mtd_partition **pparts,
- unsigned long fis_origin)
- {
-@@ -162,6 +162,14 @@ static int parse_redboot_partitions(stru
- goto out;
- }
-
-+ if (!fis_origin) {
-+ for (i = 0; i < numslots; i++) {
-+ if (!strncmp(buf[i].name, "RedBoot", 8)) {
-+ fis_origin = (buf[i].flash_base & (master->size << 1) - 1);
-+ }
-+ }
-+ }
-+
- for (i = 0; i < numslots; i++) {
- struct fis_list *new_fl, **prev;
-
-@@ -184,9 +192,8 @@ static int parse_redboot_partitions(stru
- new_fl->img = &buf[i];
- if (fis_origin) {
- buf[i].flash_base -= fis_origin;
-- } else {
-- buf[i].flash_base &= master->size-1;
- }
-+ buf[i].flash_base &= (master->size << 1) - 1;
-
- /* I'm sure the JFFS2 code has done me permanent damage.
- * I now think the following is _normal_
---- a/drivers/mtd/maps/Makefile
-+++ b/drivers/mtd/maps/Makefile
-@@ -62,3 +62,4 @@ obj-$(CONFIG_MTD_INTEL_VR_NOR) += intel_
- obj-$(CONFIG_MTD_BFIN_ASYNC) += bfin-async-flash.o
- obj-$(CONFIG_MTD_RBTX4939) += rbtx4939-flash.o
- obj-$(CONFIG_MTD_VMU) += vmu-flash.o
-+obj-$(CONFIG_MTD_BCM963XX) += bcm963xx-flash.o
diff --git a/target/linux/brcm63xx/patches-2.6.30/050-spi.patch b/target/linux/brcm63xx/patches-2.6.30/050-spi.patch
deleted file mode 100644
index 64eb6a7d21..0000000000
--- a/target/linux/brcm63xx/patches-2.6.30/050-spi.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- a/drivers/spi/Kconfig
-+++ b/drivers/spi/Kconfig
-@@ -229,6 +229,13 @@ config SPI_XILINX
- See the "OPB Serial Peripheral Interface (SPI) (v1.00e)"
- Product Specification document (DS464) for hardware details.
-
-+config SPI_BCM63XX
-+ tristate "Broadcom BCM63xx SPI controller"
-+ depends on BCM63XX
-+ select SPI_BITBANG
-+ help
-+ SPI driver for the Broadcom BCM63xx SPI controller.
-+
- #
- # Add new SPI master controllers in alphabetical order above this line
- #
---- a/drivers/spi/Makefile
-+++ b/drivers/spi/Makefile
-@@ -31,6 +31,7 @@ obj-$(CONFIG_SPI_S3C24XX) += spi_s3c24x
- obj-$(CONFIG_SPI_TXX9) += spi_txx9.o
- obj-$(CONFIG_SPI_XILINX) += xilinx_spi.o
- obj-$(CONFIG_SPI_SH_SCI) += spi_sh_sci.o
-+obj-$(CONFIG_SPI_BCM63XX) += bcm63xx_spi.o
- # ... add above this line ...
-
- # SPI protocol drivers (device/link on bus)
diff --git a/target/linux/brcm63xx/patches-2.6.30/060-bcm63xx_enet_upstream_fixes.patch b/target/linux/brcm63xx/patches-2.6.30/060-bcm63xx_enet_upstream_fixes.patch
deleted file mode 100644
index e4c8026b36..0000000000
--- a/target/linux/brcm63xx/patches-2.6.30/060-bcm63xx_enet_upstream_fixes.patch
+++ /dev/null
@@ -1,448 +0,0 @@
---- a/drivers/net/bcm63xx_enet.c 2009-07-31 22:06:20.000000000 +0200
-+++ b/drivers/net/bcm63xx_enet.c 2009-08-05 10:02:28.000000000 +0200
-@@ -28,7 +28,6 @@
- #include <linux/dma-mapping.h>
- #include <linux/platform_device.h>
- #include <linux/if_vlan.h>
--#include <linux/version.h>
-
- #include <bcm63xx_dev_enet.h>
- #include "bcm63xx_enet.h"
-@@ -91,7 +90,7 @@
- if (enet_readl(priv, ENET_IR_REG) & ENET_IR_MII)
- break;
- udelay(1);
-- } while (limit-- >= 0);
-+ } while (limit-- > 0);
-
- return (limit < 0) ? 1 : 0;
- }
-@@ -321,7 +320,7 @@
- if (len < copybreak) {
- struct sk_buff *nskb;
-
-- nskb = netdev_alloc_skb(dev, len + 2);
-+ nskb = netdev_alloc_skb(dev, len + NET_IP_ALIGN);
- if (!nskb) {
- /* forget packet, just rearm desc */
- priv->stats.rx_dropped++;
-@@ -452,11 +451,7 @@
-
- /* no more packet in rx/tx queue, remove device from poll
- * queue */
--#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
-- netif_rx_complete(dev, napi);
--#else
- napi_complete(napi);
--#endif
-
- /* restore rx/tx interrupt */
- enet_dma_writel(priv, ENETDMA_IR_PKTDONE_MASK,
-@@ -508,11 +503,7 @@
- enet_dma_writel(priv, 0, ENETDMA_IRMASK_REG(priv->rx_chan));
- enet_dma_writel(priv, 0, ENETDMA_IRMASK_REG(priv->tx_chan));
-
--#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
-- netif_rx_schedule(dev, &priv->napi);
--#else
- napi_schedule(&priv->napi);
--#endif
-
- return IRQ_HANDLED;
- }
-@@ -764,11 +755,11 @@
- pr_info("%s: link %s", dev->name, phydev->link ?
- "UP" : "DOWN");
- if (phydev->link)
-- printk(" - %d/%s - flow control %s", phydev->speed,
-+ pr_cont(" - %d/%s - flow control %s", phydev->speed,
- DUPLEX_FULL == phydev->duplex ? "full" : "half",
- phydev->pause == 1 ? "rx&tx" : "off");
-
-- printk("\n");
-+ pr_cont("\n");
- }
- }
-
-@@ -782,6 +773,7 @@
- priv = netdev_priv(dev);
- bcm_enet_set_duplex(priv, priv->force_duplex_full);
- bcm_enet_set_flow(priv, priv->pause_rx, priv->pause_tx);
-+ netif_carrier_on(dev);
-
- pr_info("%s: link forced UP - %d/%s - flow control %s/%s\n",
- dev->name,
-@@ -800,21 +792,18 @@
- struct sockaddr addr;
- struct device *kdev;
- struct phy_device *phydev;
-- int irq_requested, i, ret;
-+ int i, ret;
- unsigned int size;
-- char phy_id[BUS_ID_SIZE];
-+ char phy_id[MII_BUS_ID_SIZE + 3];
- void *p;
- u32 val;
-
- priv = netdev_priv(dev);
-- priv->rx_desc_cpu = priv->tx_desc_cpu = NULL;
-- priv->rx_skb = priv->tx_skb = NULL;
--
- kdev = &priv->pdev->dev;
-
- if (priv->has_phy) {
- /* connect to PHY */
-- snprintf(phy_id, BUS_ID_SIZE, PHY_ID_FMT,
-+ snprintf(phy_id, sizeof(phy_id), PHY_ID_FMT,
- priv->mac_id ? "1" : "0", priv->phy_id);
-
- phydev = phy_connect(dev, phy_id, &bcm_enet_adjust_phy_link, 0,
-@@ -854,23 +843,19 @@
- enet_dma_writel(priv, 0, ENETDMA_IRMASK_REG(priv->rx_chan));
- enet_dma_writel(priv, 0, ENETDMA_IRMASK_REG(priv->tx_chan));
-
-- irq_requested = 0;
- ret = request_irq(dev->irq, bcm_enet_isr_mac, 0, dev->name, dev);
- if (ret)
-- goto out;
-- irq_requested++;
-+ goto out_phy_disconnect;
-
- ret = request_irq(priv->irq_rx, bcm_enet_isr_dma,
- IRQF_SAMPLE_RANDOM | IRQF_DISABLED, dev->name, dev);
- if (ret)
-- goto out;
-- irq_requested++;
-+ goto out_freeirq;
-
- ret = request_irq(priv->irq_tx, bcm_enet_isr_dma,
- IRQF_DISABLED, dev->name, dev);
- if (ret)
-- goto out;
-- irq_requested++;
-+ goto out_freeirq_rx;
-
- /* initialize perfect match registers */
- for (i = 0; i < 4; i++) {
-@@ -888,7 +873,7 @@
- if (!p) {
- dev_err(kdev, "cannot allocate rx ring %u\n", size);
- ret = -ENOMEM;
-- goto out;
-+ goto out_freeirq_tx;
- }
-
- memset(p, 0, size);
-@@ -901,7 +886,7 @@
- if (!p) {
- dev_err(kdev, "cannot allocate tx ring\n");
- ret = -ENOMEM;
-- goto out;
-+ goto out_free_rx_ring;
- }
-
- memset(p, 0, size);
-@@ -913,7 +898,7 @@
- if (!priv->tx_skb) {
- dev_err(kdev, "cannot allocate rx skb queue\n");
- ret = -ENOMEM;
-- goto out;
-+ goto out_free_tx_ring;
- }
-
- priv->tx_desc_count = priv->tx_ring_size;
-@@ -927,7 +912,7 @@
- if (!priv->rx_skb) {
- dev_err(kdev, "cannot allocate rx skb queue\n");
- ret = -ENOMEM;
-- goto out;
-+ goto out_free_tx_skb;
- }
-
- priv->rx_desc_count = 0;
-@@ -1012,13 +997,6 @@
- return 0;
-
- out:
-- phy_disconnect(priv->phydev);
-- if (irq_requested > 2)
-- free_irq(priv->irq_tx, dev);
-- if (irq_requested > 1)
-- free_irq(priv->irq_rx, dev);
-- if (irq_requested > 0)
-- free_irq(dev->irq, dev);
- for (i = 0; i < priv->rx_ring_size; i++) {
- struct bcm_enet_desc *desc;
-
-@@ -1030,14 +1008,31 @@
- DMA_FROM_DEVICE);
- kfree_skb(priv->rx_skb[i]);
- }
-- if (priv->rx_desc_cpu)
-- dma_free_coherent(kdev, priv->rx_desc_alloc_size,
-- priv->rx_desc_cpu, priv->rx_desc_dma);
-- if (priv->tx_desc_cpu)
-- dma_free_coherent(kdev, priv->tx_desc_alloc_size,
-- priv->tx_desc_cpu, priv->tx_desc_dma);
- kfree(priv->rx_skb);
-+
-+out_free_tx_skb:
- kfree(priv->tx_skb);
-+
-+out_free_tx_ring:
-+ dma_free_coherent(kdev, priv->tx_desc_alloc_size,
-+ priv->tx_desc_cpu, priv->tx_desc_dma);
-+
-+out_free_rx_ring:
-+ dma_free_coherent(kdev, priv->rx_desc_alloc_size,
-+ priv->rx_desc_cpu, priv->rx_desc_dma);
-+
-+out_freeirq_tx:
-+ free_irq(priv->irq_tx, dev);
-+
-+out_freeirq_rx:
-+ free_irq(priv->irq_rx, dev);
-+
-+out_freeirq:
-+ free_irq(dev->irq, dev);
-+
-+out_phy_disconnect:
-+ phy_disconnect(priv->phydev);
-+
- return ret;
- }
-
-@@ -1606,6 +1601,20 @@
- enet_writel(priv, val, ENET_MIBCTL_REG);
- }
-
-+static const struct net_device_ops bcm_enet_ops = {
-+ .ndo_open = bcm_enet_open,
-+ .ndo_stop = bcm_enet_stop,
-+ .ndo_start_xmit = bcm_enet_start_xmit,
-+ .ndo_get_stats = bcm_enet_get_stats,
-+ .ndo_set_mac_address = bcm_enet_set_mac_address,
-+ .ndo_set_multicast_list = bcm_enet_set_multicast_list,
-+ .ndo_do_ioctl = bcm_enet_ioctl,
-+ .ndo_change_mtu = bcm_enet_change_mtu,
-+#ifdef CONFIG_NET_POLL_CONTROLLER
-+ .ndo_poll_controller = bcm_enet_netpoll,
-+#endif
-+};
-+
- /*
- * allocate netdevice, request register memory and register device.
- */
-@@ -1618,15 +1627,13 @@
- struct mii_bus *bus;
- const char *clk_name;
- unsigned int iomem_size;
-- int i, ret, mdio_registered, mem_requested;
-+ int i, ret;
-
- /* stop if shared driver failed, assume driver->probe will be
- * called in the same order we register devices (correct ?) */
- if (!bcm_enet_shared_base)
- return -ENODEV;
-
-- mdio_registered = mem_requested = 0;
--
- res_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- res_irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
- res_irq_rx = platform_get_resource(pdev, IORESOURCE_IRQ, 1);
-@@ -1648,14 +1655,13 @@
- iomem_size = res_mem->end - res_mem->start + 1;
- if (!request_mem_region(res_mem->start, iomem_size, "bcm63xx_enet")) {
- ret = -EBUSY;
-- goto err;
-+ goto out;
- }
-- mem_requested = 1;
-
- priv->base = ioremap(res_mem->start, iomem_size);
- if (priv->base == NULL) {
- ret = -ENOMEM;
-- goto err;
-+ goto out_release_mem;
- }
- dev->irq = priv->irq = res_irq->start;
- priv->irq_rx = res_irq_rx->start;
-@@ -1676,8 +1682,7 @@
- priv->mac_clk = clk_get(&pdev->dev, clk_name);
- if (IS_ERR(priv->mac_clk)) {
- ret = PTR_ERR(priv->mac_clk);
-- priv->mac_clk = NULL;
-- goto err;
-+ goto out_unmap;
- }
- clk_enable(priv->mac_clk);
-
-@@ -1706,7 +1711,7 @@
- if (IS_ERR(priv->phy_clk)) {
- ret = PTR_ERR(priv->phy_clk);
- priv->phy_clk = NULL;
-- goto err;
-+ goto out_put_clk_mac;
- }
- clk_enable(priv->phy_clk);
- }
-@@ -1716,13 +1721,16 @@
-
- /* MII bus registration */
- if (priv->has_phy) {
-- bus = &priv->mii_bus;
-+
-+ priv->mii_bus = mdiobus_alloc();
-+ if (!priv->mii_bus) {
-+ ret = -ENOMEM;
-+ goto out_uninit_hw;
-+ }
-+
-+ bus = priv->mii_bus;
- bus->name = "bcm63xx_enet MII bus";
--#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28)
-- bus->dev = &pdev->dev;
--#else
- bus->parent = &pdev->dev;
--#endif
- bus->priv = priv;
- bus->read = bcm_enet_mdio_read_phylib;
- bus->write = bcm_enet_mdio_write_phylib;
-@@ -1736,7 +1744,7 @@
- bus->irq = kmalloc(sizeof(int) * PHY_MAX_ADDR, GFP_KERNEL);
- if (!bus->irq) {
- ret = -ENOMEM;
-- goto err;
-+ goto out_free_mdio;
- }
-
- if (priv->has_phy_interrupt)
-@@ -1747,9 +1755,8 @@
- ret = mdiobus_register(bus);
- if (ret) {
- dev_err(&pdev->dev, "unable to register mdio bus\n");
-- goto err;
-+ goto out_free_mdio;
- }
-- mdio_registered = 1;
- } else {
-
- /* run platform code to initialize PHY device */
-@@ -1757,7 +1764,7 @@
- pd->mii_config(dev, 1, bcm_enet_mdio_read_mii,
- bcm_enet_mdio_write_mii)) {
- dev_err(&pdev->dev, "unable to configure mdio bus\n");
-- goto err;
-+ goto out_uninit_hw;
- }
- }
-
-@@ -1777,51 +1784,50 @@
- enet_writel(priv, 0, ENET_MIB_REG(i));
-
- /* register netdevice */
-- dev->open = bcm_enet_open;
-- dev->stop = bcm_enet_stop;
-- dev->hard_start_xmit = bcm_enet_start_xmit;
-- dev->get_stats = bcm_enet_get_stats;
-- dev->set_mac_address = bcm_enet_set_mac_address;
-- dev->set_multicast_list = bcm_enet_set_multicast_list;
-+ dev->netdev_ops = &bcm_enet_ops;
- netif_napi_add(dev, &priv->napi, bcm_enet_poll, 16);
-- dev->do_ioctl = bcm_enet_ioctl;
--#ifdef CONFIG_NET_POLL_CONTROLLER
-- dev->poll_controller = bcm_enet_netpoll;
--#endif
-- dev->change_mtu = bcm_enet_change_mtu;
-
- SET_ETHTOOL_OPS(dev, &bcm_enet_ethtool_ops);
-- SET_NETDEV_DEV(dev, &pdev->dev);
-
- ret = register_netdev(dev);
- if (ret)
-- goto err;
-+ goto out_unregister_mdio;
-
-+ netif_carrier_off(dev);
- platform_set_drvdata(pdev, dev);
- priv->pdev = pdev;
- priv->net_dev = dev;
-+ SET_NETDEV_DEV(dev, &pdev->dev);
-
- return 0;
-
--err:
-- if (mem_requested)
-- release_mem_region(res_mem->start, iomem_size);
-- if (mdio_registered)
-- mdiobus_unregister(&priv->mii_bus);
-- kfree(priv->mii_bus.irq);
-- if (priv->mac_clk) {
-- clk_disable(priv->mac_clk);
-- clk_put(priv->mac_clk);
-+out_unregister_mdio:
-+ if (priv->mii_bus) {
-+ mdiobus_unregister(priv->mii_bus);
-+ kfree(priv->mii_bus->irq);
- }
-+
-+out_free_mdio:
-+ if (priv->mii_bus)
-+ mdiobus_free(priv->mii_bus);
-+
-+out_uninit_hw:
-+ /* turn off mdc clock */
-+ enet_writel(priv, 0, ENET_MIISC_REG);
- if (priv->phy_clk) {
- clk_disable(priv->phy_clk);
- clk_put(priv->phy_clk);
- }
-- if (priv->base) {
-- /* turn off mdc clock */
-- enet_writel(priv, 0, ENET_MIISC_REG);
-- iounmap(priv->base);
-- }
-+
-+out_put_clk_mac:
-+ clk_disable(priv->mac_clk);
-+ clk_put(priv->mac_clk);
-+
-+out_unmap:
-+ iounmap(priv->base);
-+
-+out_release_mem:
-+ release_mem_region(res_mem->start, iomem_size);
- out:
- free_netdev(dev);
- return ret;
-@@ -1846,8 +1852,9 @@
- enet_writel(priv, 0, ENET_MIISC_REG);
-
- if (priv->has_phy) {
-- mdiobus_unregister(&priv->mii_bus);
-- kfree(priv->mii_bus.irq);
-+ mdiobus_unregister(priv->mii_bus);
-+ kfree(priv->mii_bus->irq);
-+ mdiobus_free(priv->mii_bus);
- } else {
- struct bcm63xx_enet_platform_data *pd;
-
-@@ -1870,7 +1877,6 @@
- clk_disable(priv->mac_clk);
- clk_put(priv->mac_clk);
-
-- platform_set_drvdata(pdev, NULL);
- free_netdev(dev);
- return 0;
- }
---- a/drivers/net/bcm63xx_enet.h 2009-06-07 11:25:51.000000000 +0200
-+++ b/drivers/net/bcm63xx_enet.h 2009-08-05 10:02:28.000000000 +0200
-@@ -258,7 +258,7 @@
- int phy_interrupt;
-
- /* used when a phy is connected (phylib used) */
-- struct mii_bus mii_bus;
-+ struct mii_bus *mii_bus;
- struct phy_device *phydev;
- int old_link;
- int old_duplex;
diff --git a/target/linux/brcm63xx/patches-2.6.30/070_bcm63xx_enet_vlan_incoming_fixed.patch b/target/linux/brcm63xx/patches-2.6.30/070_bcm63xx_enet_vlan_incoming_fixed.patch
deleted file mode 100644
index f18830ff29..0000000000
--- a/target/linux/brcm63xx/patches-2.6.30/070_bcm63xx_enet_vlan_incoming_fixed.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: linux-2.6.30.10/drivers/net/bcm63xx_enet.c
-===================================================================
---- linux-2.6.30.10.orig/drivers/net/bcm63xx_enet.c 2010-02-18 12:57:05.332799586 -0500
-+++ linux-2.6.30.10/drivers/net/bcm63xx_enet.c 2010-02-18 12:57:53.954051082 -0500
-@@ -1520,7 +1520,7 @@
- actual_mtu = mtu;
-
- /* add ethernet header + vlan tag size */
-- actual_mtu += VLAN_ETH_HLEN;
-+ actual_mtu += VLAN_ETH_HLEN + VLAN_HLEN;
-
- if (actual_mtu < 64 || actual_mtu > BCMENET_MAX_MTU)
- return -EINVAL;