mt76: mt7615: move mt7615_mac_get_key_info in mac.c
This is a preliminary patch to update wtbl key directly from host processor Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
880495e2f0
commit
92671eb95c
|
@ -586,6 +586,41 @@ void mt7615_mac_set_rates(struct mt7615_dev *dev, struct mt7615_sta *sta,
|
|||
sta->rate_count = 2 * MT7615_RATE_RETRY * n_rates;
|
||||
sta->wcid.tx_info |= MT_WCID_TX_INFO_SET;
|
||||
}
|
||||
|
||||
enum mt7615_cipher_type
|
||||
mt7615_mac_get_key_info(struct ieee80211_key_conf *key,
|
||||
u8 *key_data)
|
||||
{
|
||||
if (!key || key->keylen > 32)
|
||||
return MT_CIPHER_NONE;
|
||||
|
||||
memcpy(key_data, key->key, key->keylen);
|
||||
|
||||
switch (key->cipher) {
|
||||
case WLAN_CIPHER_SUITE_WEP40:
|
||||
return MT_CIPHER_WEP40;
|
||||
case WLAN_CIPHER_SUITE_WEP104:
|
||||
return MT_CIPHER_WEP104;
|
||||
case WLAN_CIPHER_SUITE_TKIP:
|
||||
/* Rx/Tx MIC keys are swapped */
|
||||
memcpy(key_data + 16, key->key + 24, 8);
|
||||
memcpy(key_data + 24, key->key + 16, 8);
|
||||
return MT_CIPHER_TKIP;
|
||||
case WLAN_CIPHER_SUITE_CCMP:
|
||||
return MT_CIPHER_AES_CCMP;
|
||||
case WLAN_CIPHER_SUITE_CCMP_256:
|
||||
return MT_CIPHER_CCMP_256;
|
||||
case WLAN_CIPHER_SUITE_GCMP:
|
||||
return MT_CIPHER_GCMP;
|
||||
case WLAN_CIPHER_SUITE_GCMP_256:
|
||||
return MT_CIPHER_GCMP_256;
|
||||
case WLAN_CIPHER_SUITE_SMS4:
|
||||
return MT_CIPHER_WAPI;
|
||||
default:
|
||||
return MT_CIPHER_NONE;
|
||||
}
|
||||
}
|
||||
|
||||
int mt7615_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
|
||||
enum mt76_txq_id qid, struct mt76_wcid *wcid,
|
||||
struct ieee80211_sta *sta,
|
||||
|
|
|
@ -302,4 +302,23 @@ struct mt7615_tx_free {
|
|||
#define MT_TXS6_F1_RCPI_1 GENMASK(15, 8)
|
||||
#define MT_TXS6_F1_RCPI_0 GENMASK(7, 0)
|
||||
|
||||
enum mt7615_cipher_type {
|
||||
MT_CIPHER_NONE,
|
||||
MT_CIPHER_WEP40,
|
||||
MT_CIPHER_TKIP,
|
||||
MT_CIPHER_TKIP_NO_MIC,
|
||||
MT_CIPHER_AES_CCMP,
|
||||
MT_CIPHER_WEP104,
|
||||
MT_CIPHER_BIP_CMAC_128,
|
||||
MT_CIPHER_WEP128,
|
||||
MT_CIPHER_WAPI,
|
||||
MT_CIPHER_CCMP_256 = 10,
|
||||
MT_CIPHER_GCMP,
|
||||
MT_CIPHER_GCMP_256,
|
||||
};
|
||||
|
||||
enum mt7615_cipher_type
|
||||
mt7615_mac_get_key_info(struct ieee80211_key_conf *key,
|
||||
u8 *key_data);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -877,39 +877,6 @@ int mt7615_mcu_set_bss_info(struct mt7615_dev *dev,
|
|||
return ret;
|
||||
}
|
||||
|
||||
static enum mt7615_cipher_type
|
||||
mt7615_get_key_info(struct ieee80211_key_conf *key, u8 *key_data)
|
||||
{
|
||||
if (!key || key->keylen > 32)
|
||||
return MT_CIPHER_NONE;
|
||||
|
||||
memcpy(key_data, key->key, key->keylen);
|
||||
|
||||
switch (key->cipher) {
|
||||
case WLAN_CIPHER_SUITE_WEP40:
|
||||
return MT_CIPHER_WEP40;
|
||||
case WLAN_CIPHER_SUITE_WEP104:
|
||||
return MT_CIPHER_WEP104;
|
||||
case WLAN_CIPHER_SUITE_TKIP:
|
||||
/* Rx/Tx MIC keys are swapped */
|
||||
memcpy(key_data + 16, key->key + 24, 8);
|
||||
memcpy(key_data + 24, key->key + 16, 8);
|
||||
return MT_CIPHER_TKIP;
|
||||
case WLAN_CIPHER_SUITE_CCMP:
|
||||
return MT_CIPHER_AES_CCMP;
|
||||
case WLAN_CIPHER_SUITE_CCMP_256:
|
||||
return MT_CIPHER_CCMP_256;
|
||||
case WLAN_CIPHER_SUITE_GCMP:
|
||||
return MT_CIPHER_GCMP;
|
||||
case WLAN_CIPHER_SUITE_GCMP_256:
|
||||
return MT_CIPHER_GCMP_256;
|
||||
case WLAN_CIPHER_SUITE_SMS4:
|
||||
return MT_CIPHER_WAPI;
|
||||
default:
|
||||
return MT_CIPHER_NONE;
|
||||
}
|
||||
}
|
||||
|
||||
int mt7615_mcu_set_wtbl_key(struct mt7615_dev *dev, int wcid,
|
||||
struct ieee80211_key_conf *key,
|
||||
enum set_key_cmd cmd)
|
||||
|
@ -933,7 +900,7 @@ int mt7615_mcu_set_wtbl_key(struct mt7615_dev *dev, int wcid,
|
|||
if (cmd == SET_KEY) {
|
||||
u8 cipher;
|
||||
|
||||
cipher = mt7615_get_key_info(key, req.key.key_material);
|
||||
cipher = mt7615_mac_get_key_info(key, req.key.key_material);
|
||||
if (cipher == MT_CIPHER_NONE)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
|
|
|
@ -288,21 +288,6 @@ struct wtbl_hdr_trans {
|
|||
u8 rsv;
|
||||
} __packed;
|
||||
|
||||
enum mt7615_cipher_type {
|
||||
MT_CIPHER_NONE,
|
||||
MT_CIPHER_WEP40,
|
||||
MT_CIPHER_TKIP,
|
||||
MT_CIPHER_TKIP_NO_MIC,
|
||||
MT_CIPHER_AES_CCMP,
|
||||
MT_CIPHER_WEP104,
|
||||
MT_CIPHER_BIP_CMAC_128,
|
||||
MT_CIPHER_WEP128,
|
||||
MT_CIPHER_WAPI,
|
||||
MT_CIPHER_CCMP_256 = 10,
|
||||
MT_CIPHER_GCMP,
|
||||
MT_CIPHER_GCMP_256,
|
||||
};
|
||||
|
||||
struct wtbl_sec_key {
|
||||
__le16 tag;
|
||||
__le16 len;
|
||||
|
|
Loading…
Reference in New Issue