diff options
Diffstat (limited to 'target/linux/brcm63xx/patches-2.6.30')
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; |