summaryrefslogtreecommitdiffstats
path: root/package/mac80211/patches/542-ath9k-add-MAC-revision-detection-for-AR9330.patch
diff options
context:
space:
mode:
authorjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>2011-06-01 13:12:31 +0000
committerjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>2011-06-01 13:12:31 +0000
commit520149cb7f85a6f527f270005c83afad3a0b7bda (patch)
tree0808a998afabf4c21d3dcc55c2f2cd40f413bcd8 /package/mac80211/patches/542-ath9k-add-MAC-revision-detection-for-AR9330.patch
parent3db28f95612c6624080170a8ad73192e579f82ea (diff)
mac80211: add initial support for AR9330
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27084 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/mac80211/patches/542-ath9k-add-MAC-revision-detection-for-AR9330.patch')
-rw-r--r--package/mac80211/patches/542-ath9k-add-MAC-revision-detection-for-AR9330.patch57
1 files changed, 57 insertions, 0 deletions
diff --git a/package/mac80211/patches/542-ath9k-add-MAC-revision-detection-for-AR9330.patch b/package/mac80211/patches/542-ath9k-add-MAC-revision-detection-for-AR9330.patch
new file mode 100644
index 000000000..9f5fa1c0a
--- /dev/null
+++ b/package/mac80211/patches/542-ath9k-add-MAC-revision-detection-for-AR9330.patch
@@ -0,0 +1,57 @@
+diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c
+index 05c2ba2..ade8655 100644
+--- a/drivers/net/wireless/ath/ath9k/hw.c
++++ b/drivers/net/wireless/ath/ath9k/hw.c
+@@ -251,6 +251,15 @@ static void ath9k_hw_read_revisions(struct ath_hw *ah)
+ case AR5416_AR9100_DEVID:
+ ah->hw_version.macVersion = AR_SREV_VERSION_9100;
+ break;
++ case AR9300_DEVID_AR9330:
++ ah->hw_version.macVersion = AR_SREV_VERSION_9330;
++ if (ah->get_mac_revision) {
++ ah->hw_version.macRev = ah->get_mac_revision();
++ } else {
++ val = REG_READ(ah, AR_SREV);
++ ah->hw_version.macRev = MS(val, AR_SREV_REVISION2);
++ }
++ return;
+ case AR9300_DEVID_AR9340:
+ ah->hw_version.macVersion = AR_SREV_VERSION_9340;
+ val = REG_READ(ah, AR_SREV);
+diff --git a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h
+index 9f23451..8d9ac49 100644
+--- a/drivers/net/wireless/ath/ath9k/hw.h
++++ b/drivers/net/wireless/ath/ath9k/hw.h
+@@ -863,6 +863,7 @@ struct ath_hw {
+ u32 ent_mode;
+
+ bool is_clk_25mhz;
++ int (*get_mac_revision)(void);
+ };
+
+ struct ath_bus_ops {
+diff --git a/drivers/net/wireless/ath/ath9k/init.c b/drivers/net/wireless/ath/ath9k/init.c
+index 45c585a..c2defa2 100644
+--- a/drivers/net/wireless/ath/ath9k/init.c
++++ b/drivers/net/wireless/ath/ath9k/init.c
+@@ -575,6 +575,7 @@ static int ath9k_init_softc(u16 devid, struct ath_softc *sc, u16 subsysid,
+ sc->sc_ah->gpio_val = pdata->gpio_val;
+ sc->sc_ah->led_pin = pdata->led_pin;
+ ah->is_clk_25mhz = pdata->is_clk_25mhz;
++ ah->get_mac_revision = pdata->get_mac_revision;
+ }
+
+ common = ath9k_hw_common(ah);
+diff --git a/include/linux/ath9k_platform.h b/include/linux/ath9k_platform.h
+index 60a7c49..c207607 100644
+--- a/include/linux/ath9k_platform.h
++++ b/include/linux/ath9k_platform.h
+@@ -30,6 +30,7 @@ struct ath9k_platform_data {
+ u32 gpio_val;
+
+ bool is_clk_25mhz;
++ int (*get_mac_revision)(void);
+ };
+
+ #endif /* _LINUX_ATH9K_PLATFORM_H */
+