From eb0da340cb92c24623b36d4dc48c2f3eca77765e Mon Sep 17 00:00:00 2001 From: hauke Date: Sat, 27 Nov 2010 22:47:11 +0000 Subject: brcm47xx: reorder patches like they were commitet upstream git-svn-id: svn://svn.openwrt.org/openwrt/trunk@24162 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../031-sb-fix-nvram_get-on-bcm47xx-platform.patch | 51 ++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 target/linux/brcm47xx/patches-2.6.37/031-sb-fix-nvram_get-on-bcm47xx-platform.patch (limited to 'target/linux/brcm47xx/patches-2.6.37/031-sb-fix-nvram_get-on-bcm47xx-platform.patch') diff --git a/target/linux/brcm47xx/patches-2.6.37/031-sb-fix-nvram_get-on-bcm47xx-platform.patch b/target/linux/brcm47xx/patches-2.6.37/031-sb-fix-nvram_get-on-bcm47xx-platform.patch new file mode 100644 index 000000000..a6f98ee4c --- /dev/null +++ b/target/linux/brcm47xx/patches-2.6.37/031-sb-fix-nvram_get-on-bcm47xx-platform.patch @@ -0,0 +1,51 @@ +From 99dfec6e793651963ede3c2721b9ff3c81e3aeac Mon Sep 17 00:00:00 2001 +From: Hauke Mehrtens +Date: Sat, 27 Nov 2010 14:04:36 +0100 +Subject: [PATCH 6/6] sb: fix nvram_get on bcm47xx platform + +The nvram_get function was never in the mainline kernel, it only +existed in an external OpenWrt patch. Use nvram_getenv function, which +is in mainline and use an include instead of an extra function +declaration. +et0macaddr contains the mac address in text from like +00:11:22:33:44:55. We have to parse it before adding it into macaddr. + +nvram_parse_macaddr will be merged into asm/mach-bcm47xx/nvram.h though +the MIPS git tree and will be available soon. It will not build now +without nvram_parse_macaddr, but it haven't done before. + +Signed-off-by: Hauke Mehrtens +--- + include/linux/ssb/ssb_driver_gige.h | 17 +++++++++++------ + 1 files changed, 11 insertions(+), 6 deletions(-) + +--- a/include/linux/ssb/ssb_driver_gige.h ++++ b/include/linux/ssb/ssb_driver_gige.h +@@ -96,16 +96,21 @@ static inline bool ssb_gige_must_flush_p + return 0; + } + +-extern char * nvram_get(const char *name); ++#ifdef CONFIG_BCM47XX ++#include + /* Get the device MAC address */ + static inline void ssb_gige_get_macaddr(struct pci_dev *pdev, u8 *macaddr) + { +-#ifdef CONFIG_BCM47XX +- char *res = nvram_get("et0macaddr"); +- if (res) +- memcpy(macaddr, res, 6); +-#endif ++ char buf[20]; ++ if (nvram_getenv("et0macaddr", buf, sizeof(buf)) < 0) ++ return; ++ nvram_parse_macaddr(buf, macaddr); + } ++#else ++static inline void ssb_gige_get_macaddr(struct pci_dev *pdev, u8 *macaddr) ++{ ++} ++#endif + + extern int ssb_gige_pcibios_plat_dev_init(struct ssb_device *sdev, + struct pci_dev *pdev); -- cgit v1.2.3