diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/ath5k/ath5k.h | 1 | ||||
-rw-r--r-- | drivers/net/wireless/ath5k/attach.c | 6 | ||||
-rw-r--r-- | drivers/net/wireless/ath5k/pcu.c | 28 | ||||
-rw-r--r-- | drivers/net/wireless/ath5k/reg.h | 1 |
4 files changed, 22 insertions, 14 deletions
diff --git a/drivers/net/wireless/ath5k/ath5k.h b/drivers/net/wireless/ath5k/ath5k.h index 5ee2dd1814c2..13df1191b070 100644 --- a/drivers/net/wireless/ath5k/ath5k.h +++ b/drivers/net/wireless/ath5k/ath5k.h | |||
@@ -1052,6 +1052,7 @@ struct ath5k_hw { | |||
1052 | bool ah_calibration; | 1052 | bool ah_calibration; |
1053 | bool ah_running; | 1053 | bool ah_running; |
1054 | bool ah_single_chip; | 1054 | bool ah_single_chip; |
1055 | bool ah_combined_mic; | ||
1055 | enum ath5k_rfgain ah_rf_gain; | 1056 | enum ath5k_rfgain ah_rf_gain; |
1056 | 1057 | ||
1057 | u32 ah_mac_srev; | 1058 | u32 ah_mac_srev; |
diff --git a/drivers/net/wireless/ath5k/attach.c b/drivers/net/wireless/ath5k/attach.c index 49d82d79d3fc..dea378f76731 100644 --- a/drivers/net/wireless/ath5k/attach.c +++ b/drivers/net/wireless/ath5k/attach.c | |||
@@ -317,6 +317,12 @@ struct ath5k_hw *ath5k_hw_attach(struct ath5k_softc *sc, u8 mac_version) | |||
317 | goto err_free; | 317 | goto err_free; |
318 | } | 318 | } |
319 | 319 | ||
320 | if (srev >= AR5K_SREV_AR2414) { | ||
321 | ah->ah_combined_mic = true; | ||
322 | AR5K_REG_ENABLE_BITS(ah, AR5K_MISC_MODE, | ||
323 | AR5K_MISC_MODE_COMBINED_MIC); | ||
324 | } | ||
325 | |||
320 | /* MAC address is cleared until add_interface */ | 326 | /* MAC address is cleared until add_interface */ |
321 | ath5k_hw_set_lladdr(ah, mac); | 327 | ath5k_hw_set_lladdr(ah, mac); |
322 | 328 | ||
diff --git a/drivers/net/wireless/ath5k/pcu.c b/drivers/net/wireless/ath5k/pcu.c index ad7ea36502bd..dabe42219e2a 100644 --- a/drivers/net/wireless/ath5k/pcu.c +++ b/drivers/net/wireless/ath5k/pcu.c | |||
@@ -1096,20 +1096,20 @@ int ath5k_hw_set_key(struct ath5k_hw *ah, u16 entry, | |||
1096 | /* Install rx/tx MIC */ | 1096 | /* Install rx/tx MIC */ |
1097 | rxmic = (__le32 *) &key->key[16]; | 1097 | rxmic = (__le32 *) &key->key[16]; |
1098 | txmic = (__le32 *) &key->key[24]; | 1098 | txmic = (__le32 *) &key->key[24]; |
1099 | #if 0 | 1099 | |
1100 | /* MISC_MODE register & 0x04 - for mac srev >= griffin */ | 1100 | if (ah->ah_combined_mic) { |
1101 | key_v[0] = rxmic[0]; | 1101 | key_v[0] = rxmic[0]; |
1102 | key_v[1] = (txmic[0] >> 16) & 0xffff; | 1102 | key_v[1] = (txmic[0] >> 16) & 0xffff; |
1103 | key_v[2] = rxmic[1]; | 1103 | key_v[2] = rxmic[1]; |
1104 | key_v[3] = txmic[0] & 0xffff; | 1104 | key_v[3] = txmic[0] & 0xffff; |
1105 | key_v[4] = txmic[1]; | 1105 | key_v[4] = txmic[1]; |
1106 | #else | 1106 | } else { |
1107 | key_v[0] = rxmic[0]; | 1107 | key_v[0] = rxmic[0]; |
1108 | key_v[1] = 0; | 1108 | key_v[1] = 0; |
1109 | key_v[2] = rxmic[1]; | 1109 | key_v[2] = rxmic[1]; |
1110 | key_v[3] = 0; | 1110 | key_v[3] = 0; |
1111 | key_v[4] = 0; | 1111 | key_v[4] = 0; |
1112 | #endif | 1112 | } |
1113 | for (i = 0; i < ARRAY_SIZE(key_v); i++) | 1113 | for (i = 0; i < ARRAY_SIZE(key_v); i++) |
1114 | ath5k_hw_reg_write(ah, le32_to_cpu(key_v[i]), | 1114 | ath5k_hw_reg_write(ah, le32_to_cpu(key_v[i]), |
1115 | AR5K_KEYTABLE_OFF(micentry, i)); | 1115 | AR5K_KEYTABLE_OFF(micentry, i)); |
diff --git a/drivers/net/wireless/ath5k/reg.h b/drivers/net/wireless/ath5k/reg.h index 69755fc2f9be..91aaeaf88199 100644 --- a/drivers/net/wireless/ath5k/reg.h +++ b/drivers/net/wireless/ath5k/reg.h | |||
@@ -1729,6 +1729,7 @@ | |||
1729 | #define AR5K_MISC_MODE 0x8120 /* Register Address */ | 1729 | #define AR5K_MISC_MODE 0x8120 /* Register Address */ |
1730 | #define AR5K_MISC_MODE_FBSSID_MATCH 0x00000001 /* Force BSSID match */ | 1730 | #define AR5K_MISC_MODE_FBSSID_MATCH 0x00000001 /* Force BSSID match */ |
1731 | #define AR5K_MISC_MODE_ACKSIFS_MEM 0x00000002 /* ACK SIFS memory (?) */ | 1731 | #define AR5K_MISC_MODE_ACKSIFS_MEM 0x00000002 /* ACK SIFS memory (?) */ |
1732 | #define AR5K_MISC_MODE_COMBINED_MIC 0x00000004 /* use rx/tx MIC key */ | ||
1732 | /* more bits */ | 1733 | /* more bits */ |
1733 | 1734 | ||
1734 | /* | 1735 | /* |