summaryrefslogtreecommitdiff
path: root/package/mac80211/patches/451-add-platform-eeprom-support-to-ath5k.patch
diff options
context:
space:
mode:
authorGabor Juhos <juhosg@openwrt.org>2010-07-15 07:36:55 +0000
committerGabor Juhos <juhosg@openwrt.org>2010-07-15 07:36:55 +0000
commit3f4e29691e8a08fd52016eadd42a99de3b4212e4 (patch)
treef974aa16acd326620cf0b678893ad076a7304dd0 /package/mac80211/patches/451-add-platform-eeprom-support-to-ath5k.patch
parent95e09cccd837ee04c9c8ae8f94425def176de8f7 (diff)
downloadmtk-20170518-3f4e29691e8a08fd52016eadd42a99de3b4212e4.zip
mtk-20170518-3f4e29691e8a08fd52016eadd42a99de3b4212e4.tar.gz
mtk-20170518-3f4e29691e8a08fd52016eadd42a99de3b4212e4.tar.bz2
ath5k: in-flash macs and eeprom for mach-eap7660d
This adds ath5k_platform.h to mac80211 and patches ath5k to respect MAC addresses and eeprom content from platform_data, if supplied. Signed-off-by: Daniel Golle <daniel.golle@gmail.com> SVN-Revision: 22188
Diffstat (limited to 'package/mac80211/patches/451-add-platform-eeprom-support-to-ath5k.patch')
-rw-r--r--package/mac80211/patches/451-add-platform-eeprom-support-to-ath5k.patch57
1 files changed, 57 insertions, 0 deletions
diff --git a/package/mac80211/patches/451-add-platform-eeprom-support-to-ath5k.patch b/package/mac80211/patches/451-add-platform-eeprom-support-to-ath5k.patch
new file mode 100644
index 0000000..717acd2
--- /dev/null
+++ b/package/mac80211/patches/451-add-platform-eeprom-support-to-ath5k.patch
@@ -0,0 +1,57 @@
+--- a/drivers/net/wireless/ath/ath5k/eeprom.c 2010-06-23 03:08:32.000000000 +0200
++++ b/drivers/net/wireless/ath/ath5k/eeprom.c 2010-06-23 05:59:30.000000000 +0200
+@@ -22,6 +23,8 @@
+ \*************************************/
+
+ #include <linux/slab.h>
++#include <linux/ath5k_platform.h>
++#include <linux/pci.h>
+
+ #include "ath5k.h"
+ #include "reg.h"
+@@ -34,6 +37,18 @@
+ static int ath5k_hw_eeprom_read(struct ath5k_hw *ah, u32 offset, u16 *data)
+ {
+ u32 status, timeout;
++ struct ath5k_platform_data *pdata = NULL;
++
++ if (ah->ah_sc->pdev)
++ pdata = ah->ah_sc->pdev->dev.platform_data;
++
++ if (pdata && pdata->eeprom_data && pdata->eeprom_data[0] == AR5K_EEPROM_MAGIC_VALUE)
++ {
++ ATH5K_INFO(ah->ah_sc, "using eeprom-content from platform_data\n");
++ if (offset >= ATH5K_PLAT_EEP_MAX_WORDS) return -EIO;
++ *data = pdata->eeprom_data[offset];
++ return 0;
++ }
+
+ /*
+ * Initialize EEPROM access
+@@ -1788,7 +1802,7 @@
+ }
+
+ /*
+- * Read the MAC address from eeprom
++ * Read the MAC address from eeprom or platform_data
+ */
+ int ath5k_eeprom_read_mac(struct ath5k_hw *ah, u8 *mac)
+ {
+@@ -1796,6 +1810,16 @@
+ u32 total, offset;
+ u16 data;
+ int octet, ret;
++ struct ath5k_platform_data *pdata = NULL;
++
++ if (ah->ah_sc->pdev)
++ pdata = ah->ah_sc->pdev->dev.platform_data;
++
++ if (pdata && pdata->macaddr)
++ {
++ memcpy(mac, pdata->macaddr, ETH_ALEN);
++ return 0;
++ }
+
+ ret = ath5k_hw_eeprom_read(ah, 0x20, &data);
+ if (ret)
+