mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-19 15:17:02 +07:00
Merge ath-current from git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
ath.git fixes for 4.15. Major changes: ath10k * fix CCMP-256, GCMP and GCMP-256 in raw mode, they never worked with raw mode wcn36xx * fix device tree node search
This commit is contained in:
commit
ed59b7d53c
@ -566,18 +566,16 @@ static int ath10k_htt_rx_crypto_param_len(struct ath10k *ar,
|
|||||||
|
|
||||||
#define MICHAEL_MIC_LEN 8
|
#define MICHAEL_MIC_LEN 8
|
||||||
|
|
||||||
static int ath10k_htt_rx_crypto_tail_len(struct ath10k *ar,
|
static int ath10k_htt_rx_crypto_mic_len(struct ath10k *ar,
|
||||||
enum htt_rx_mpdu_encrypt_type type)
|
enum htt_rx_mpdu_encrypt_type type)
|
||||||
{
|
{
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case HTT_RX_MPDU_ENCRYPT_NONE:
|
case HTT_RX_MPDU_ENCRYPT_NONE:
|
||||||
return 0;
|
|
||||||
case HTT_RX_MPDU_ENCRYPT_WEP40:
|
case HTT_RX_MPDU_ENCRYPT_WEP40:
|
||||||
case HTT_RX_MPDU_ENCRYPT_WEP104:
|
case HTT_RX_MPDU_ENCRYPT_WEP104:
|
||||||
return IEEE80211_WEP_ICV_LEN;
|
|
||||||
case HTT_RX_MPDU_ENCRYPT_TKIP_WITHOUT_MIC:
|
case HTT_RX_MPDU_ENCRYPT_TKIP_WITHOUT_MIC:
|
||||||
case HTT_RX_MPDU_ENCRYPT_TKIP_WPA:
|
case HTT_RX_MPDU_ENCRYPT_TKIP_WPA:
|
||||||
return IEEE80211_TKIP_ICV_LEN;
|
return 0;
|
||||||
case HTT_RX_MPDU_ENCRYPT_AES_CCM_WPA2:
|
case HTT_RX_MPDU_ENCRYPT_AES_CCM_WPA2:
|
||||||
return IEEE80211_CCMP_MIC_LEN;
|
return IEEE80211_CCMP_MIC_LEN;
|
||||||
case HTT_RX_MPDU_ENCRYPT_AES_CCM256_WPA2:
|
case HTT_RX_MPDU_ENCRYPT_AES_CCM256_WPA2:
|
||||||
@ -594,6 +592,31 @@ static int ath10k_htt_rx_crypto_tail_len(struct ath10k *ar,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int ath10k_htt_rx_crypto_icv_len(struct ath10k *ar,
|
||||||
|
enum htt_rx_mpdu_encrypt_type type)
|
||||||
|
{
|
||||||
|
switch (type) {
|
||||||
|
case HTT_RX_MPDU_ENCRYPT_NONE:
|
||||||
|
case HTT_RX_MPDU_ENCRYPT_AES_CCM_WPA2:
|
||||||
|
case HTT_RX_MPDU_ENCRYPT_AES_CCM256_WPA2:
|
||||||
|
case HTT_RX_MPDU_ENCRYPT_AES_GCMP_WPA2:
|
||||||
|
case HTT_RX_MPDU_ENCRYPT_AES_GCMP256_WPA2:
|
||||||
|
return 0;
|
||||||
|
case HTT_RX_MPDU_ENCRYPT_WEP40:
|
||||||
|
case HTT_RX_MPDU_ENCRYPT_WEP104:
|
||||||
|
return IEEE80211_WEP_ICV_LEN;
|
||||||
|
case HTT_RX_MPDU_ENCRYPT_TKIP_WITHOUT_MIC:
|
||||||
|
case HTT_RX_MPDU_ENCRYPT_TKIP_WPA:
|
||||||
|
return IEEE80211_TKIP_ICV_LEN;
|
||||||
|
case HTT_RX_MPDU_ENCRYPT_WEP128:
|
||||||
|
case HTT_RX_MPDU_ENCRYPT_WAPI:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
ath10k_warn(ar, "unsupported encryption type %d\n", type);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
struct amsdu_subframe_hdr {
|
struct amsdu_subframe_hdr {
|
||||||
u8 dst[ETH_ALEN];
|
u8 dst[ETH_ALEN];
|
||||||
u8 src[ETH_ALEN];
|
u8 src[ETH_ALEN];
|
||||||
@ -1063,25 +1086,27 @@ static void ath10k_htt_rx_h_undecap_raw(struct ath10k *ar,
|
|||||||
/* Tail */
|
/* Tail */
|
||||||
if (status->flag & RX_FLAG_IV_STRIPPED) {
|
if (status->flag & RX_FLAG_IV_STRIPPED) {
|
||||||
skb_trim(msdu, msdu->len -
|
skb_trim(msdu, msdu->len -
|
||||||
ath10k_htt_rx_crypto_tail_len(ar, enctype));
|
ath10k_htt_rx_crypto_mic_len(ar, enctype));
|
||||||
|
|
||||||
|
skb_trim(msdu, msdu->len -
|
||||||
|
ath10k_htt_rx_crypto_icv_len(ar, enctype));
|
||||||
} else {
|
} else {
|
||||||
/* MIC */
|
/* MIC */
|
||||||
if ((status->flag & RX_FLAG_MIC_STRIPPED) &&
|
if (status->flag & RX_FLAG_MIC_STRIPPED)
|
||||||
enctype == HTT_RX_MPDU_ENCRYPT_AES_CCM_WPA2)
|
skb_trim(msdu, msdu->len -
|
||||||
skb_trim(msdu, msdu->len - 8);
|
ath10k_htt_rx_crypto_mic_len(ar, enctype));
|
||||||
|
|
||||||
/* ICV */
|
/* ICV */
|
||||||
if (status->flag & RX_FLAG_ICV_STRIPPED &&
|
if (status->flag & RX_FLAG_ICV_STRIPPED)
|
||||||
enctype != HTT_RX_MPDU_ENCRYPT_AES_CCM_WPA2)
|
|
||||||
skb_trim(msdu, msdu->len -
|
skb_trim(msdu, msdu->len -
|
||||||
ath10k_htt_rx_crypto_tail_len(ar, enctype));
|
ath10k_htt_rx_crypto_icv_len(ar, enctype));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* MMIC */
|
/* MMIC */
|
||||||
if ((status->flag & RX_FLAG_MMIC_STRIPPED) &&
|
if ((status->flag & RX_FLAG_MMIC_STRIPPED) &&
|
||||||
!ieee80211_has_morefrags(hdr->frame_control) &&
|
!ieee80211_has_morefrags(hdr->frame_control) &&
|
||||||
enctype == HTT_RX_MPDU_ENCRYPT_TKIP_WPA)
|
enctype == HTT_RX_MPDU_ENCRYPT_TKIP_WPA)
|
||||||
skb_trim(msdu, msdu->len - 8);
|
skb_trim(msdu, msdu->len - MICHAEL_MIC_LEN);
|
||||||
|
|
||||||
/* Head */
|
/* Head */
|
||||||
if (status->flag & RX_FLAG_IV_STRIPPED) {
|
if (status->flag & RX_FLAG_IV_STRIPPED) {
|
||||||
|
@ -1233,7 +1233,7 @@ static int wcn36xx_platform_get_resources(struct wcn36xx *wcn,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* External RF module */
|
/* External RF module */
|
||||||
iris_node = of_find_node_by_name(mmio_node, "iris");
|
iris_node = of_get_child_by_name(mmio_node, "iris");
|
||||||
if (iris_node) {
|
if (iris_node) {
|
||||||
if (of_device_is_compatible(iris_node, "qcom,wcn3620"))
|
if (of_device_is_compatible(iris_node, "qcom,wcn3620"))
|
||||||
wcn->rf_id = RF_IRIS_WCN3620;
|
wcn->rf_id = RF_IRIS_WCN3620;
|
||||||
|
Loading…
Reference in New Issue
Block a user