1 --- a/drivers/net/wireless/ath/ath9k/hw.c
2 +++ b/drivers/net/wireless/ath/ath9k/hw.c
3 @@ -252,6 +252,15 @@ static void ath9k_hw_read_revisions(stru
4 case AR5416_AR9100_DEVID:
5 ah->hw_version.macVersion = AR_SREV_VERSION_9100;
7 + case AR9300_DEVID_AR9330:
8 + ah->hw_version.macVersion = AR_SREV_VERSION_9330;
9 + if (ah->get_mac_revision) {
10 + ah->hw_version.macRev = ah->get_mac_revision();
12 + val = REG_READ(ah, AR_SREV);
13 + ah->hw_version.macRev = MS(val, AR_SREV_REVISION2);
16 case AR9300_DEVID_AR9340:
17 ah->hw_version.macVersion = AR_SREV_VERSION_9340;
18 val = REG_READ(ah, AR_SREV);
19 --- a/drivers/net/wireless/ath/ath9k/hw.h
20 +++ b/drivers/net/wireless/ath/ath9k/hw.h
21 @@ -863,6 +863,7 @@ struct ath_hw {
25 + int (*get_mac_revision)(void);
29 --- a/drivers/net/wireless/ath/ath9k/init.c
30 +++ b/drivers/net/wireless/ath/ath9k/init.c
31 @@ -575,6 +575,7 @@ static int ath9k_init_softc(u16 devid, s
32 sc->sc_ah->gpio_val = pdata->gpio_val;
33 sc->sc_ah->led_pin = pdata->led_pin;
34 ah->is_clk_25mhz = pdata->is_clk_25mhz;
35 + ah->get_mac_revision = pdata->get_mac_revision;
38 common = ath9k_hw_common(ah);
39 --- a/include/linux/ath9k_platform.h
40 +++ b/include/linux/ath9k_platform.h
41 @@ -30,6 +30,7 @@ struct ath9k_platform_data {
45 + int (*get_mac_revision)(void);
48 #endif /* _LINUX_ATH9K_PLATFORM_H */