diff options
Diffstat (limited to 'target/linux')
| -rw-r--r-- | target/linux/brcm47xx/patches-2.6.23/700-ssb-gigabit-ethernet-driver.patch | 78 | 
1 files changed, 41 insertions, 37 deletions
diff --git a/target/linux/brcm47xx/patches-2.6.23/700-ssb-gigabit-ethernet-driver.patch b/target/linux/brcm47xx/patches-2.6.23/700-ssb-gigabit-ethernet-driver.patch index 90346e289..38df059be 100644 --- a/target/linux/brcm47xx/patches-2.6.23/700-ssb-gigabit-ethernet-driver.patch +++ b/target/linux/brcm47xx/patches-2.6.23/700-ssb-gigabit-ethernet-driver.patch @@ -1,16 +1,16 @@  Index: linux-2.6.23.16/drivers/ssb/Kconfig  =================================================================== ---- linux-2.6.23.16.orig/drivers/ssb/Kconfig	2008-02-22 19:40:57.000000000 +0100 -+++ linux-2.6.23.16/drivers/ssb/Kconfig	2008-02-22 19:42:52.000000000 +0100 +--- linux-2.6.23.16.orig/drivers/ssb/Kconfig	2008-02-28 12:52:40.000000000 +0100 ++++ linux-2.6.23.16/drivers/ssb/Kconfig	2008-02-29 01:01:00.000000000 +0100  @@ -120,4 +120,13 @@ config SSB_DRIVER_EXTIF   	  If unsure, say N  +config SSB_DRIVER_GIGE -+	bool "SSB Broadcom Gigabit Ethernet driver (EXPERIMENTAL)" -+	depends on SSB_PCIHOST_POSSIBLE && SSB_EMBEDDED && MIPS && EXPERIMENTAL ++	bool "SSB Broadcom Gigabit Ethernet driver" ++	depends on SSB_PCIHOST_POSSIBLE && SSB_EMBEDDED && MIPS  +	help -+	  Driver the the Sonics Silicon Backplane attached ++	  Driver for the Sonics Silicon Backplane attached  +	  Broadcom Gigabit Ethernet.  +  +	  If unsure, say N @@ -18,8 +18,8 @@ Index: linux-2.6.23.16/drivers/ssb/Kconfig   endmenu  Index: linux-2.6.23.16/drivers/ssb/Makefile  =================================================================== ---- linux-2.6.23.16.orig/drivers/ssb/Makefile	2008-02-22 19:40:57.000000000 +0100 -+++ linux-2.6.23.16/drivers/ssb/Makefile	2008-02-22 19:42:52.000000000 +0100 +--- linux-2.6.23.16.orig/drivers/ssb/Makefile	2008-02-28 12:52:40.000000000 +0100 ++++ linux-2.6.23.16/drivers/ssb/Makefile	2008-02-28 12:52:40.000000000 +0100  @@ -11,6 +11,7 @@ ssb-y					+= driver_chipcommon.o   ssb-$(CONFIG_SSB_DRIVER_MIPS)		+= driver_mipscore.o   ssb-$(CONFIG_SSB_DRIVER_EXTIF)		+= driver_extif.o @@ -31,8 +31,8 @@ Index: linux-2.6.23.16/drivers/ssb/Makefile  Index: linux-2.6.23.16/drivers/ssb/driver_gige.c  ===================================================================  --- /dev/null	1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.23.16/drivers/ssb/driver_gige.c	2008-02-28 12:26:18.000000000 +0100 -@@ -0,0 +1,286 @@ ++++ linux-2.6.23.16/drivers/ssb/driver_gige.c	2008-02-29 01:05:04.000000000 +0100 +@@ -0,0 +1,294 @@  +/*  + * Sonics Silicon Backplane  + * Broadcom Gigabit Ethernet core driver @@ -44,9 +44,9 @@ Index: linux-2.6.23.16/drivers/ssb/driver_gige.c  + */  +  +#include <linux/ssb/ssb.h> ++#include <linux/ssb/ssb_driver_gige.h>  +#include <linux/pci.h>  +#include <linux/pci_regs.h> -+#include <linux/ssb/ssb_driver_gige.h>  +  +  +/* @@ -271,6 +271,14 @@ Index: linux-2.6.23.16/drivers/ssb/driver_gige.c  +	return 0;  +}  + ++bool pdev_is_ssb_gige_core(struct pci_dev *pdev) ++{ ++	if (!pdev->resource[0].name) ++		return 0; ++	return (strcmp(pdev->resource[0].name, SSB_GIGE_MEM_RES_NAME) == 0); ++} ++EXPORT_SYMBOL(pdev_is_ssb_gige_core); ++  +int ssb_gige_pcibios_plat_dev_init(struct ssb_device *sdev,  +				   struct pci_dev *pdev)  +{ @@ -322,8 +330,8 @@ Index: linux-2.6.23.16/drivers/ssb/driver_gige.c  Index: linux-2.6.23.16/include/linux/ssb/ssb_driver_gige.h  ===================================================================  --- /dev/null	1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.23.16/include/linux/ssb/ssb_driver_gige.h	2008-02-22 20:47:58.000000000 +0100 -@@ -0,0 +1,178 @@ ++++ linux-2.6.23.16/include/linux/ssb/ssb_driver_gige.h	2008-02-29 01:10:50.000000000 +0100 +@@ -0,0 +1,174 @@  +#ifndef LINUX_SSB_DRIVER_GIGE_H_  +#define LINUX_SSB_DRIVER_GIGE_H_  + @@ -376,11 +384,7 @@ Index: linux-2.6.23.16/include/linux/ssb/ssb_driver_gige.h  +};  +  +/* Check whether a PCI device is a SSB Gigabit Ethernet core. */ -+static inline bool pdev_is_ssb_gige_core(struct pci_dev *pdev) -+{ -+	return (pdev->resource[0].name && -+		strcmp(pdev->resource[0].name, SSB_GIGE_MEM_RES_NAME) == 0); -+} ++extern bool pdev_is_ssb_gige_core(struct pci_dev *pdev);  +  +/* Convert a pci_dev pointer to a ssb_gige pointer. */  +static inline struct ssb_gige * pdev_to_ssb_gige(struct pci_dev *pdev) @@ -426,12 +430,12 @@ Index: linux-2.6.23.16/include/linux/ssb/ssb_driver_gige.h  +	return 0;  +}  + -+extern char * nvram_get(const char *name); //FIXME ++extern char * nvram_get(const char *name);  +/* Get the device MAC address */  +static inline void ssb_gige_get_macaddr(struct pci_dev *pdev, u8 *macaddr)  +{  +#ifdef CONFIG_BCM947XX -+	char *res = nvram_get("et0macaddr"); //FIXME ++	char *res = nvram_get("et0macaddr");  +	if (res)  +		memcpy(macaddr, res, 6);  +#endif @@ -504,8 +508,8 @@ Index: linux-2.6.23.16/include/linux/ssb/ssb_driver_gige.h  +#endif /* LINUX_SSB_DRIVER_GIGE_H_ */  Index: linux-2.6.23.16/drivers/ssb/driver_pcicore.c  =================================================================== ---- linux-2.6.23.16.orig/drivers/ssb/driver_pcicore.c	2008-02-22 19:40:57.000000000 +0100 -+++ linux-2.6.23.16/drivers/ssb/driver_pcicore.c	2008-02-22 19:42:52.000000000 +0100 +--- linux-2.6.23.16.orig/drivers/ssb/driver_pcicore.c	2008-02-28 12:52:40.000000000 +0100 ++++ linux-2.6.23.16/drivers/ssb/driver_pcicore.c	2008-02-28 12:52:40.000000000 +0100  @@ -60,74 +60,6 @@ static DEFINE_SPINLOCK(cfgspace_lock);   /* Core to access the external PCI config space. Can only have one. */   static struct ssb_pcicore *extpci_core; @@ -676,8 +680,8 @@ Index: linux-2.6.23.16/drivers/ssb/driver_pcicore.c   	u32 val;  Index: linux-2.6.23.16/drivers/ssb/embedded.c  =================================================================== ---- linux-2.6.23.16.orig/drivers/ssb/embedded.c	2008-02-22 19:40:57.000000000 +0100 -+++ linux-2.6.23.16/drivers/ssb/embedded.c	2008-02-22 19:42:52.000000000 +0100 +--- linux-2.6.23.16.orig/drivers/ssb/embedded.c	2008-02-28 12:52:40.000000000 +0100 ++++ linux-2.6.23.16/drivers/ssb/embedded.c	2008-02-28 12:52:40.000000000 +0100  @@ -10,6 +10,9 @@   #include <linux/ssb/ssb.h> @@ -781,8 +785,8 @@ Index: linux-2.6.23.16/drivers/ssb/embedded.c  +}  Index: linux-2.6.23.16/include/linux/ssb/ssb.h  =================================================================== ---- linux-2.6.23.16.orig/include/linux/ssb/ssb.h	2008-02-22 19:40:57.000000000 +0100 -+++ linux-2.6.23.16/include/linux/ssb/ssb.h	2008-02-22 19:42:52.000000000 +0100 +--- linux-2.6.23.16.orig/include/linux/ssb/ssb.h	2008-02-28 12:52:40.000000000 +0100 ++++ linux-2.6.23.16/include/linux/ssb/ssb.h	2008-02-28 12:52:40.000000000 +0100  @@ -422,5 +422,12 @@ extern int ssb_bus_powerup(struct ssb_bu   extern u32 ssb_admatch_base(u32 adm);   extern u32 ssb_admatch_size(u32 adm); @@ -798,8 +802,8 @@ Index: linux-2.6.23.16/include/linux/ssb/ssb.h   #endif /* LINUX_SSB_H_ */  Index: linux-2.6.23.16/include/linux/ssb/ssb_driver_pci.h  =================================================================== ---- linux-2.6.23.16.orig/include/linux/ssb/ssb_driver_pci.h	2008-02-22 19:40:57.000000000 +0100 -+++ linux-2.6.23.16/include/linux/ssb/ssb_driver_pci.h	2008-02-22 19:42:52.000000000 +0100 +--- linux-2.6.23.16.orig/include/linux/ssb/ssb_driver_pci.h	2008-02-28 12:52:40.000000000 +0100 ++++ linux-2.6.23.16/include/linux/ssb/ssb_driver_pci.h	2008-02-28 12:52:40.000000000 +0100  @@ -1,6 +1,11 @@   #ifndef LINUX_SSB_PCICORE_H_   #define LINUX_SSB_PCICORE_H_ @@ -841,8 +845,8 @@ Index: linux-2.6.23.16/include/linux/ssb/ssb_driver_pci.h   #endif /* LINUX_SSB_PCICORE_H_ */  Index: linux-2.6.23.16/drivers/ssb/main.c  =================================================================== ---- linux-2.6.23.16.orig/drivers/ssb/main.c	2008-02-22 19:40:57.000000000 +0100 -+++ linux-2.6.23.16/drivers/ssb/main.c	2008-02-22 19:42:52.000000000 +0100 +--- linux-2.6.23.16.orig/drivers/ssb/main.c	2008-02-28 12:52:40.000000000 +0100 ++++ linux-2.6.23.16/drivers/ssb/main.c	2008-02-28 12:52:40.000000000 +0100  @@ -14,6 +14,7 @@   #include <linux/io.h>   #include <linux/ssb/ssb.h> @@ -903,8 +907,8 @@ Index: linux-2.6.23.16/drivers/ssb/main.c   }  Index: linux-2.6.23.16/drivers/ssb/ssb_private.h  =================================================================== ---- linux-2.6.23.16.orig/drivers/ssb/ssb_private.h	2008-02-22 19:40:57.000000000 +0100 -+++ linux-2.6.23.16/drivers/ssb/ssb_private.h	2008-02-22 19:42:52.000000000 +0100 +--- linux-2.6.23.16.orig/drivers/ssb/ssb_private.h	2008-02-28 12:52:37.000000000 +0100 ++++ linux-2.6.23.16/drivers/ssb/ssb_private.h	2008-02-28 12:52:40.000000000 +0100  @@ -118,6 +118,8 @@ extern u32 ssb_calc_clock_rate(u32 pllty   extern int ssb_devices_freeze(struct ssb_bus *bus);   extern int ssb_devices_thaw(struct ssb_bus *bus); @@ -916,8 +920,8 @@ Index: linux-2.6.23.16/drivers/ssb/ssb_private.h   #ifdef CONFIG_SSB_PCIHOST  Index: linux-2.6.23.16/drivers/net/tg3.c  =================================================================== ---- linux-2.6.23.16.orig/drivers/net/tg3.c	2008-02-22 19:40:57.000000000 +0100 -+++ linux-2.6.23.16/drivers/net/tg3.c	2008-02-28 12:28:17.000000000 +0100 +--- linux-2.6.23.16.orig/drivers/net/tg3.c	2008-02-28 12:52:37.000000000 +0100 ++++ linux-2.6.23.16/drivers/net/tg3.c	2008-02-29 00:59:00.000000000 +0100  @@ -38,6 +38,7 @@   #include <linux/workqueue.h>   #include <linux/prefetch.h> @@ -1203,8 +1207,8 @@ Index: linux-2.6.23.16/drivers/net/tg3.c   	 * swapping.  DMA data byte swapping is controlled in the GRC_MODE  Index: linux-2.6.23.16/drivers/net/tg3.h  =================================================================== ---- linux-2.6.23.16.orig/drivers/net/tg3.h	2008-02-22 19:40:57.000000000 +0100 -+++ linux-2.6.23.16/drivers/net/tg3.h	2008-02-23 20:56:08.000000000 +0100 +--- linux-2.6.23.16.orig/drivers/net/tg3.h	2008-02-28 12:52:37.000000000 +0100 ++++ linux-2.6.23.16/drivers/net/tg3.h	2008-02-28 12:52:40.000000000 +0100  @@ -2279,6 +2279,10 @@ struct tg3 {   #define TG3_FLG2_PHY_JITTER_BUG		0x20000000   #define TG3_FLG2_NO_FWARE_REPORTED	0x40000000 @@ -1236,8 +1240,8 @@ Index: linux-2.6.23.16/drivers/net/tg3.h   	dma_addr_t			stats_mapping;  Index: linux-2.6.23.16/drivers/ssb/driver_mipscore.c  =================================================================== ---- linux-2.6.23.16.orig/drivers/ssb/driver_mipscore.c	2008-02-20 20:02:43.000000000 +0100 -+++ linux-2.6.23.16/drivers/ssb/driver_mipscore.c	2008-02-28 12:16:12.000000000 +0100 +--- linux-2.6.23.16.orig/drivers/ssb/driver_mipscore.c	2008-02-28 12:52:40.000000000 +0100 ++++ linux-2.6.23.16/drivers/ssb/driver_mipscore.c	2008-02-28 12:52:40.000000000 +0100  @@ -211,6 +211,7 @@ void ssb_mipscore_init(struct ssb_mipsco   			/* fallthrough */   		case SSB_DEV_PCI:  | 
