diff options
Diffstat (limited to 'package/madwifi/patches/470-mac_addresss_from_ath5k_platform_data.patch')
-rw-r--r-- | package/madwifi/patches/470-mac_addresss_from_ath5k_platform_data.patch | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/package/madwifi/patches/470-mac_addresss_from_ath5k_platform_data.patch b/package/madwifi/patches/470-mac_addresss_from_ath5k_platform_data.patch new file mode 100644 index 000000000..0c35050c5 --- /dev/null +++ b/package/madwifi/patches/470-mac_addresss_from_ath5k_platform_data.patch @@ -0,0 +1,36 @@ +--- a/ath/if_ath.c ++++ b/ath/if_ath.c +@@ -63,6 +63,8 @@ + #include <linux/rtnetlink.h> + #include <linux/time.h> + #include <linux/pci.h> ++#include <linux/device.h> ++#include <linux/ath5k_platform.h> + #include <asm/uaccess.h> + + #include "if_ethersubr.h" /* for ETHER_IS_MULTICAST */ +@@ -587,6 +589,10 @@ ath_attach(u_int16_t devid, struct net_d + unsigned int i; + int autocreatemode = -1; + u_int8_t csz; ++#ifdef ATH_PCI ++ struct ath5k_platform_data *pdata; ++ struct pci_dev *pdev; ++#endif + + sc->devid = devid; + #ifdef AR_DEBUG +@@ -648,6 +654,13 @@ ath_attach(u_int16_t devid, struct net_d + } + sc->sc_ah = ah; + ++#ifdef ATH_PCI ++ /* set MAC from ath_platform_data */ ++ pdev = (struct pci_dev *)sc->sc_bdev; ++ pdata = pdev->dev.platform_data; ++ if (pdata && pdata->macaddr) ++ ath_hal_setmac(ah, pdata->macaddr); ++#endif + /* WAR for AR7100 PCI bug */ + #if defined(CONFIG_ATHEROS_AR71XX) || defined(CONFIG_ATH79) + if ((ar_device(sc->devid) >= 5210) && (ar_device(sc->devid) < 5416)) { |