ath5k: add hardware CCMP encyption support
Recent ath5k hardware is capable of doing CCMP acceleration. Enable it for the cards that support it. Signed-off-by: Bob Copeland <me@bobcopeland.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
1c5256bb16
commit
1c81874078
3 changed files with 14 additions and 0 deletions
|
@ -1037,6 +1037,7 @@ struct ath5k_hw {
|
|||
bool ah_turbo;
|
||||
bool ah_calibration;
|
||||
bool ah_single_chip;
|
||||
bool ah_aes_support;
|
||||
bool ah_combined_mic;
|
||||
|
||||
enum ath5k_version ah_version;
|
||||
|
|
|
@ -106,6 +106,7 @@ struct ath5k_hw *ath5k_hw_attach(struct ath5k_softc *sc, u8 mac_version)
|
|||
{
|
||||
struct ath5k_hw *ah;
|
||||
struct pci_dev *pdev = sc->pdev;
|
||||
struct ath5k_eeprom_info *ee;
|
||||
int ret;
|
||||
u32 srev;
|
||||
|
||||
|
@ -315,6 +316,15 @@ struct ath5k_hw *ath5k_hw_attach(struct ath5k_softc *sc, u8 mac_version)
|
|||
goto err_free;
|
||||
}
|
||||
|
||||
/* Crypto settings */
|
||||
ee = &ah->ah_capabilities.cap_eeprom;
|
||||
ah->ah_aes_support =
|
||||
(ee->ee_version >= AR5K_EEPROM_VERSION_5_0 &&
|
||||
!AR5K_EEPROM_AES_DIS(ee->ee_misc5) &&
|
||||
(ah->ah_mac_version > (AR5K_SREV_AR5212 >> 4) ||
|
||||
(ah->ah_mac_version == (AR5K_SREV_AR5212 >> 4) &&
|
||||
ah->ah_mac_revision >= (AR5K_SREV_AR5211 >> 4))));
|
||||
|
||||
if (srev >= AR5K_SREV_AR2414) {
|
||||
ah->ah_combined_mic = true;
|
||||
AR5K_REG_ENABLE_BITS(ah, AR5K_MISC_MODE,
|
||||
|
|
|
@ -3022,6 +3022,9 @@ ath5k_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
|
|||
case ALG_TKIP:
|
||||
break;
|
||||
case ALG_CCMP:
|
||||
if (sc->ah->ah_aes_support)
|
||||
break;
|
||||
|
||||
return -EOPNOTSUPP;
|
||||
default:
|
||||
WARN_ON(1);
|
||||
|
|
Loading…
Reference in a new issue