ath11k_nss: Refresh patches for backports 6.11

Signed-off-by: Sean Khan <datapronix@protonmail.com>
This commit is contained in:
Sean Khan 2024-09-27 15:09:45 -04:00
parent 1b95ec24a6
commit 7bfaa1c251
73 changed files with 529 additions and 529 deletions

View File

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -4186,22 +4186,28 @@ static int ath11k_clear_peer_keys(struct
@@ -4275,22 +4275,28 @@ static int ath11k_clear_peer_keys(struct
int ret;
int i;
u32 flags = 0;
@ -35,7 +35,7 @@
DISABLE_KEY, addr, flags);
if (ret < 0 && first_errno == 0)
first_errno = ret;
@@ -4209,10 +4215,6 @@ static int ath11k_clear_peer_keys(struct
@@ -4298,10 +4304,6 @@ static int ath11k_clear_peer_keys(struct
if (ret < 0)
ath11k_warn(ab, "failed to remove peer key %d: %d\n",
i, ret);

View File

@ -29,7 +29,7 @@ Signed-off-by: Manikanta Pubbisetty <mpubbise@codeaurora.org>
/* SMBIOS type containing Board Data File Name Extension */
#define ATH11K_SMBIOS_BDF_EXT_TYPE 0xF8
@@ -415,6 +417,17 @@ struct ath11k_vif_iter {
@@ -418,6 +420,17 @@ struct ath11k_vif_iter {
struct ath11k_vif *arvif;
};
@ -47,7 +47,7 @@ Signed-off-by: Manikanta Pubbisetty <mpubbise@codeaurora.org>
struct ath11k_rx_peer_stats {
u64 num_msdu;
u64 num_mpdu_fcs_ok;
@@ -426,10 +439,6 @@ struct ath11k_rx_peer_stats {
@@ -429,10 +442,6 @@ struct ath11k_rx_peer_stats {
u64 non_ampdu_msdu_count;
u64 stbc_count;
u64 beamformed_count;
@ -58,7 +58,7 @@ Signed-off-by: Manikanta Pubbisetty <mpubbise@codeaurora.org>
u64 coding_count[HAL_RX_SU_MU_CODING_MAX];
u64 tid_count[IEEE80211_NUM_TIDS + 1];
u64 pream_cnt[HAL_RX_PREAMBLE_MAX];
@@ -437,6 +446,8 @@ struct ath11k_rx_peer_stats {
@@ -440,6 +449,8 @@ struct ath11k_rx_peer_stats {
u64 rx_duration;
u64 dcm_count;
u64 ru_alloc_cnt[HAL_RX_RU_ALLOC_TYPE_MAX];
@ -269,7 +269,7 @@ Signed-off-by: Manikanta Pubbisetty <mpubbise@codeaurora.org>
&fops_htt_peer_stats);
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -2763,10 +2763,43 @@ exit:
@@ -2762,10 +2762,43 @@ exit:
return total_msdu_reaped;
}
@ -313,7 +313,7 @@ Signed-off-by: Manikanta Pubbisetty <mpubbise@codeaurora.org>
u32 num_msdu;
int i;
@@ -2776,6 +2809,8 @@ static void ath11k_dp_rx_update_peer_sta
@@ -2775,6 +2808,8 @@ static void ath11k_dp_rx_update_peer_sta
arsta->rssi_comb = ppdu_info->rssi_comb;
ewma_avg_rssi_add(&arsta->avg_rssi, ppdu_info->rssi_comb);
@ -322,7 +322,7 @@ Signed-off-by: Manikanta Pubbisetty <mpubbise@codeaurora.org>
num_msdu = ppdu_info->tcp_msdu_count + ppdu_info->tcp_ack_msdu_count +
ppdu_info->udp_msdu_count + ppdu_info->other_msdu_count;
@@ -2792,18 +2827,6 @@ static void ath11k_dp_rx_update_peer_sta
@@ -2791,18 +2826,6 @@ static void ath11k_dp_rx_update_peer_sta
ppdu_info->tid = IEEE80211_NUM_TIDS;
}
@ -341,7 +341,7 @@ Signed-off-by: Manikanta Pubbisetty <mpubbise@codeaurora.org>
if (ppdu_info->ldpc < HAL_RX_SU_MU_CODING_MAX)
rx_stats->coding_count[ppdu_info->ldpc] += num_msdu;
@@ -2832,8 +2855,6 @@ static void ath11k_dp_rx_update_peer_sta
@@ -2831,8 +2854,6 @@ static void ath11k_dp_rx_update_peer_sta
rx_stats->dcm_count += ppdu_info->dcm;
rx_stats->ru_alloc_cnt[ppdu_info->ru_alloc] += num_msdu;
@ -350,7 +350,7 @@ Signed-off-by: Manikanta Pubbisetty <mpubbise@codeaurora.org>
BUILD_BUG_ON(ARRAY_SIZE(arsta->chain_signal) >
ARRAY_SIZE(ppdu_info->rssi_chain_pri20));
@@ -2842,6 +2863,52 @@ static void ath11k_dp_rx_update_peer_sta
@@ -2841,6 +2862,52 @@ static void ath11k_dp_rx_update_peer_sta
rx_stats->rx_duration += ppdu_info->rx_duration;
arsta->rx_duration = rx_stats->rx_duration;
@ -405,7 +405,7 @@ Signed-off-by: Manikanta Pubbisetty <mpubbise@codeaurora.org>
static struct sk_buff *ath11k_dp_rx_alloc_mon_status_buf(struct ath11k_base *ab,
--- a/drivers/net/wireless/ath/ath11k/dp_rx.h
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.h
@@ -41,6 +41,25 @@ struct ath11k_dp_rfc1042_hdr {
@@ -42,6 +42,25 @@ struct ath11k_dp_rfc1042_hdr {
__be16 snap_type;
} __packed;

View File

@ -23,7 +23,7 @@ Signed-off-by: Miles Hu <milehu@codeaurora.org>
#include "fw.h"
#define SM(_v, _f) (((_v) << _f##_LSB) & _f##_MASK)
@@ -508,6 +509,8 @@ struct ath11k_htt_data_stats {
@@ -511,6 +512,8 @@ struct ath11k_htt_data_stats {
u64 bw[ATH11K_COUNTER_TYPE_MAX][ATH11K_BW_NUM];
u64 nss[ATH11K_COUNTER_TYPE_MAX][ATH11K_NSS_NUM];
u64 gi[ATH11K_COUNTER_TYPE_MAX][ATH11K_GI_NUM];
@ -32,7 +32,7 @@ Signed-off-by: Miles Hu <milehu@codeaurora.org>
};
struct ath11k_htt_tx_stats {
@@ -515,6 +518,9 @@ struct ath11k_htt_tx_stats {
@@ -518,6 +521,9 @@ struct ath11k_htt_tx_stats {
u64 tx_duration;
u64 ba_fails;
u64 ack_fails;
@ -42,7 +42,7 @@ Signed-off-by: Miles Hu <milehu@codeaurora.org>
};
struct ath11k_per_ppdu_tx_stats {
@@ -631,11 +637,16 @@ struct ath11k_per_peer_tx_stats {
@@ -634,11 +640,16 @@ struct ath11k_per_peer_tx_stats {
u32 succ_bytes;
u32 retry_bytes;
u32 failed_bytes;

View File

@ -5,7 +5,7 @@
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -5452,8 +5452,11 @@ int ath11k_dp_rx_process_mon_status(stru
@@ -5515,8 +5515,11 @@ int ath11k_dp_rx_process_mon_status(stru
goto next_skb;
}

View File

@ -15,7 +15,7 @@
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -2902,11 +2902,12 @@ exit:
@@ -2901,11 +2901,12 @@ exit:
static void
ath11k_dp_rx_update_peer_rate_table_stats(struct ath11k_rx_peer_stats *rx_stats,
struct hal_rx_mon_ppdu_info *ppdu_info,
@ -30,7 +30,7 @@
u32 bw_idx = ppdu_info->bw;
u32 gi_idx = ppdu_info->gi;
@@ -2928,10 +2929,13 @@ ath11k_dp_rx_update_peer_rate_table_stat
@@ -2927,10 +2928,13 @@ ath11k_dp_rx_update_peer_rate_table_stat
}
rx_stats->pkt_stats.rx_rate[rate_idx] += num_msdu;
@ -46,7 +46,7 @@
struct hal_rx_mon_ppdu_info *ppdu_info)
{
struct ath11k_rx_peer_stats *rx_stats = arsta->rx_stats;
@@ -2989,7 +2993,6 @@ static void ath11k_dp_rx_update_peer_sta
@@ -2988,7 +2992,6 @@ static void ath11k_dp_rx_update_peer_sta
rx_stats->num_mpdu_fcs_ok += ppdu_info->num_mpdu_fcs_ok;
rx_stats->num_mpdu_fcs_err += ppdu_info->num_mpdu_fcs_err;
rx_stats->dcm_count += ppdu_info->dcm;
@ -54,7 +54,7 @@
BUILD_BUG_ON(ARRAY_SIZE(arsta->chain_signal) >
ARRAY_SIZE(ppdu_info->rssi_chain_pri20));
@@ -3007,10 +3010,10 @@ static void ath11k_dp_rx_update_peer_sta
@@ -3006,10 +3009,10 @@ static void ath11k_dp_rx_update_peer_sta
if (ppdu_info->preamble_type == HAL_RX_PREAMBLE_11N &&
ppdu_info->mcs <= HAL_RX_MAX_MCS_HT) {
@ -69,7 +69,7 @@
}
if (ppdu_info->preamble_type == HAL_RX_PREAMBLE_11AC &&
@@ -3043,7 +3046,120 @@ static void ath11k_dp_rx_update_peer_sta
@@ -3042,7 +3045,120 @@ static void ath11k_dp_rx_update_peer_sta
rx_stats->byte_stats.bw_count[ppdu_info->bw] += ppdu_info->mpdu_len;
}
@ -191,7 +191,7 @@
}
@@ -5381,6 +5497,55 @@ static void ath11k_dp_rx_mon_dest_proces
@@ -5444,6 +5560,55 @@ static void ath11k_dp_rx_mon_dest_proces
}
}
@ -247,7 +247,7 @@
int ath11k_dp_rx_process_mon_status(struct ath11k_base *ab, int mac_id,
struct napi_struct *napi, int budget)
{
@@ -5454,8 +5619,13 @@ int ath11k_dp_rx_process_mon_status(stru
@@ -5517,8 +5682,13 @@ int ath11k_dp_rx_process_mon_status(stru
if ((ppdu_info->fc_valid) &&
(ppdu_info->ast_index != HAL_AST_IDX_INVALID)) {

View File

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -2306,6 +2306,42 @@ static void ath11k_dp_rx_h_undecap_eth(s
@@ -2305,6 +2305,42 @@ static void ath11k_dp_rx_h_undecap_eth(s
ether_addr_copy(ieee80211_get_SA(hdr), sa);
}
@ -43,7 +43,7 @@
static void ath11k_dp_rx_h_undecap(struct ath11k *ar, struct sk_buff *msdu,
struct hal_rx_desc *rx_desc,
enum hal_encrypt_type enctype,
@@ -2347,7 +2383,8 @@ static void ath11k_dp_rx_h_undecap(struc
@@ -2346,7 +2382,8 @@ static void ath11k_dp_rx_h_undecap(struc
enctype, status);
break;
case DP_RX_DECAP_TYPE_8023:

View File

@ -16,8 +16,8 @@
#define SM(_v, _f) (((_v) << _f##_LSB) & _f##_MASK)
@@ -355,6 +355,16 @@ struct ath11k_reg_tpc_power_info {
struct ath11k_chan_power_info chan_power_info[IEEE80211_MAX_NUM_PWR_LEVEL];
@@ -358,6 +358,16 @@ struct ath11k_reg_tpc_power_info {
struct ath11k_chan_power_info chan_power_info[ATH11K_NUM_PWR_LEVELS];
};
+#define ATH11K_STATS_MGMT_FRM_TYPE_MAX 16
@ -33,7 +33,7 @@
struct ath11k_vif {
u32 vdev_id;
enum wmi_vdev_type vdev_type;
@@ -411,6 +421,7 @@ struct ath11k_vif {
@@ -414,6 +424,7 @@ struct ath11k_vif {
struct ath11k_rekey_data rekey_data;
struct ath11k_reg_tpc_power_info reg_tpc_info;
@ -143,7 +143,7 @@
debugfs_create_file("dfs_simulate_radar", 0200,
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -5934,9 +5934,9 @@ static int ath11k_mac_mgmt_tx(struct ath
@@ -6031,9 +6031,9 @@ static int ath11k_mac_mgmt_tx(struct ath
*/
if (is_prb_rsp &&
atomic_read(&ar->num_pending_mgmt_tx) > ATH11K_PRB_RSP_DROP_THRESHOLD) {
@ -155,7 +155,7 @@
}
if (skb_queue_len_lockless(q) >= ATH11K_TX_MGMT_NUM_PENDING_MAX) {
@@ -5962,9 +5962,11 @@ static void ath11k_mac_op_tx(struct ieee
@@ -6059,9 +6059,11 @@ static void ath11k_mac_op_tx(struct ieee
struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif);
struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
struct ieee80211_key_conf *key = info->control.hw_key;
@ -167,7 +167,7 @@
int ret;
memset(skb_cb, 0, sizeof(*skb_cb));
@@ -5978,12 +5980,21 @@ static void ath11k_mac_op_tx(struct ieee
@@ -6075,12 +6077,21 @@ static void ath11k_mac_op_tx(struct ieee
if (info_flags & IEEE80211_TX_CTL_HW_80211_ENCAP) {
skb_cb->flags |= ATH11K_SKB_HW_80211_ENCAP;
} else if (ieee80211_is_mgmt(hdr->frame_control)) {
@ -213,7 +213,7 @@
int peer_id;
--- a/drivers/net/wireless/ath/ath11k/wmi.c
+++ b/drivers/net/wireless/ath/ath11k/wmi.c
@@ -5896,6 +5896,12 @@ static int wmi_process_mgmt_tx_comp(stru
@@ -5941,6 +5941,12 @@ static int wmi_process_mgmt_tx_comp(stru
struct sk_buff *msdu;
struct ieee80211_tx_info *info;
struct ath11k_skb_cb *skb_cb;
@ -226,7 +226,7 @@
int num_mgmt;
spin_lock_bh(&ar->txmgmt_idr_lock);
@@ -5923,6 +5929,31 @@ static int wmi_process_mgmt_tx_comp(stru
@@ -5968,6 +5974,31 @@ static int wmi_process_mgmt_tx_comp(stru
info->status.ack_signal = tx_compl_param->ack_rssi;
}
@ -258,7 +258,7 @@
ieee80211_tx_status_irqsafe(ar->hw, msdu);
num_mgmt = atomic_dec_if_positive(&ar->num_pending_mgmt_tx);
@@ -7500,6 +7531,11 @@ static void ath11k_mgmt_rx_event(struct
@@ -7545,6 +7576,11 @@ static void ath11k_mgmt_rx_event(struct
struct ieee80211_hdr *hdr;
u16 fc;
struct ieee80211_supported_band *sband;
@ -270,7 +270,7 @@
if (ath11k_pull_mgmt_rx_params_tlv(ab, skb, &rx_ev) != 0) {
ath11k_warn(ab, "failed to extract mgmt rx event");
@@ -7565,7 +7601,34 @@ static void ath11k_mgmt_rx_event(struct
@@ -7610,7 +7646,34 @@ static void ath11k_mgmt_rx_event(struct
hdr = (struct ieee80211_hdr *)skb->data;
fc = le16_to_cpu(hdr->frame_control);

View File

@ -34,7 +34,7 @@ Signed-off-by: Anilkumar Kolli <akolli@codeaurora.org>
--- a/drivers/net/wireless/ath/ath11k/core.c
+++ b/drivers/net/wireless/ath/ath11k/core.c
@@ -2294,5 +2294,17 @@ err_sc_free:
@@ -2303,5 +2303,17 @@ err_sc_free:
}
EXPORT_SYMBOL(ath11k_core_alloc);

View File

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -10159,6 +10159,8 @@ static int __ath11k_mac_register(struct
@@ -10199,6 +10199,8 @@ static int __ath11k_mac_register(struct
wiphy_ext_feature_set(ar->hw->wiphy,
NL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT);
@ -11,7 +11,7 @@
ar->hw->offchannel_tx_hw_queue = ATH11K_HW_MAX_QUEUES - 1;
--- a/drivers/net/wireless/ath/ath11k/wmi.c
+++ b/drivers/net/wireless/ath/ath11k/wmi.c
@@ -4128,6 +4128,7 @@ ath11k_wmi_copy_resource_config(struct w
@@ -4173,6 +4173,7 @@ ath11k_wmi_copy_resource_config(struct w
wmi_cfg->max_bssid_rx_filters = tg_cfg->max_bssid_rx_filters;
wmi_cfg->use_pdev_id = tg_cfg->use_pdev_id;
wmi_cfg->flag1 = tg_cfg->flag1;

View File

@ -38,7 +38,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
depends on m
--- a/drivers/net/wireless/ath/ath11k/Makefile
+++ b/drivers/net/wireless/ath/ath11k/Makefile
@@ -26,6 +26,7 @@ ath11k-$(CPTCFG_ATH11K_TRACING) += trace
@@ -27,6 +27,7 @@ ath11k-$(CPTCFG_ATH11K_TRACING) += trace
ath11k-$(CPTCFG_ATH11K_THERMAL) += thermal.o
ath11k-$(CPTCFG_ATH11K_SPECTRAL) += spectral.o
ath11k-$(CONFIG_PM) += wow.o
@ -2848,7 +2848,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
enum hal_pn_type pn_type)
--- a/drivers/net/wireless/ath/ath11k/wmi.c
+++ b/drivers/net/wireless/ath/ath11k/wmi.c
@@ -1164,6 +1164,44 @@ int ath11k_wmi_send_pdev_set_regdomain(s
@@ -1169,6 +1169,44 @@ int ath11k_wmi_send_pdev_set_regdomain(s
return ret;
}
@ -2895,7 +2895,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
{
--- a/drivers/net/wireless/ath/ath11k/wmi.h
+++ b/drivers/net/wireless/ath/ath11k/wmi.h
@@ -2894,6 +2894,27 @@ struct pdev_set_regdomain_params {
@@ -2890,6 +2890,27 @@ struct pdev_set_regdomain_params {
u32 pdev_id;
};
@ -2923,7 +2923,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
struct rx_reorder_queue_remove_params {
u8 *peer_macaddr;
u16 vdev_id;
@@ -3142,6 +3163,16 @@ struct wmi_pdev_set_regdomain_cmd {
@@ -3138,6 +3159,16 @@ struct wmi_pdev_set_regdomain_cmd {
u32 dfs_domain;
} __packed;
@ -2940,7 +2940,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
struct wmi_peer_set_param_cmd {
u32 tlv_header;
u32 vdev_id;
@@ -6384,6 +6415,8 @@ int ath11k_wmi_send_peer_create_cmd(stru
@@ -6390,6 +6421,8 @@ int ath11k_wmi_send_peer_create_cmd(stru
int ath11k_wmi_vdev_set_param_cmd(struct ath11k *ar, u32 vdev_id,
u32 param_id, u32 param_value);
@ -2951,7 +2951,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
int ath11k_wmi_force_fw_hang_cmd(struct ath11k *ar, u32 type, u32 delay_time_ms);
--- a/drivers/net/wireless/ath/ath11k/dp_rx.h
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.h
@@ -20,6 +20,34 @@
@@ -21,6 +21,34 @@
#define DP_RX_MPDU_ERR_MPDU_LEN BIT(6)
#define DP_RX_MPDU_ERR_UNENCRYPTED_FRAME BIT(7)
@ -2986,7 +2986,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
enum dp_rx_decap_type {
DP_RX_DECAP_TYPE_RAW,
DP_RX_DECAP_TYPE_NATIVE_WIFI,
@@ -75,6 +103,9 @@ void ath11k_peer_rx_tid_delete(struct at
@@ -76,6 +104,9 @@ void ath11k_peer_rx_tid_delete(struct at
int ath11k_peer_rx_tid_setup(struct ath11k *ar, const u8 *peer_mac, int vdev_id,
u8 tid, u32 ba_win_sz, u16 ssn,
enum hal_pn_type pn_type);
@ -2998,7 +2998,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
int ath11k_dp_pdev_reo_setup(struct ath11k_base *ab);
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -6153,6 +6153,16 @@ static int ath11k_mac_op_start(struct ie
@@ -6250,6 +6250,16 @@ static int ath11k_mac_op_start(struct ie
goto err;
}
@ -3017,7 +3017,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
/* TODO: Do we need to enable ANI? */
--- a/drivers/net/wireless/ath/ath11k/core.h
+++ b/drivers/net/wireless/ath/ath11k/core.h
@@ -887,6 +887,8 @@ struct ath11k_soc_dp_tx_err_stats {
@@ -890,6 +890,8 @@ struct ath11k_soc_dp_tx_err_stats {
* idr unavailable etc.
*/
atomic_t misc_fail;
@ -3026,7 +3026,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
};
struct ath11k_soc_dp_stats {
@@ -973,6 +975,7 @@ struct ath11k_base {
@@ -976,6 +978,7 @@ struct ath11k_base {
struct list_head peers;
wait_queue_head_t peer_mapping_wq;
u8 mac_addr[ETH_ALEN];

View File

@ -24,7 +24,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
--- a/drivers/net/wireless/ath/ath11k/ahb.c
+++ b/drivers/net/wireless/ath/ath11k/ahb.c
@@ -526,6 +526,12 @@ static int ath11k_ahb_config_ext_irq(str
@@ -527,6 +527,12 @@ static int ath11k_ahb_config_ext_irq(str
int i, j;
int irq;
int ret;
@ -37,7 +37,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
for (i = 0; i < ATH11K_EXT_IRQ_GRP_NUM_MAX; i++) {
struct ath11k_ext_irq_grp *irq_grp = &ab->ext_irq_grp[i];
@@ -538,20 +544,20 @@ static int ath11k_ahb_config_ext_irq(str
@@ -543,20 +549,20 @@ static int ath11k_ahb_config_ext_irq(str
ath11k_ahb_ext_grp_napi_poll);
for (j = 0; j < ATH11K_EXT_IRQ_NUM_MAX; j++) {
@ -62,7 +62,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
irq_grp->irqs[num_irq++] = wbm2host_rx_release;
if (ab->hw_params.ring_mask->reo_status[i] & BIT(j))
@@ -564,7 +570,7 @@ static int ath11k_ahb_config_ext_irq(str
@@ -569,7 +575,7 @@ static int ath11k_ahb_config_ext_irq(str
ath11k_hw_get_mac_from_pdev_id(hw, j);
}
@ -71,7 +71,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
irq_grp->irqs[num_irq++] =
host2rxdma_host_buf_ring_mac1 -
ath11k_hw_get_mac_from_pdev_id(hw, j);
@@ -905,6 +911,7 @@ static int ath11k_ahb_setup_resources(st
@@ -910,6 +916,7 @@ static int ath11k_ahb_setup_resources(st
}
ab->mem = mem;
@ -94,7 +94,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
unsigned int ath11k_debug_mask;
EXPORT_SYMBOL(ath11k_debug_mask);
module_param_named(debug_mask, ath11k_debug_mask, uint, 0644);
@@ -1624,10 +1630,16 @@ static int ath11k_core_pdev_create(struc
@@ -1636,10 +1642,16 @@ static int ath11k_core_pdev_create(struc
goto err_pdev_debug;
}
@ -112,7 +112,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
}
ret = ath11k_thermal_register(ab);
@@ -1649,6 +1661,8 @@ err_thermal_unregister:
@@ -1661,6 +1673,8 @@ err_thermal_unregister:
ath11k_thermal_unregister(ab);
err_mac_unregister:
ath11k_mac_unregister(ab);
@ -121,7 +121,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
err_dp_pdev_free:
ath11k_dp_pdev_free(ab);
err_pdev_debug:
@@ -1662,6 +1676,10 @@ static void ath11k_core_pdev_destroy(str
@@ -1674,6 +1688,10 @@ static void ath11k_core_pdev_destroy(str
ath11k_spectral_deinit(ab);
ath11k_thermal_unregister(ab);
ath11k_mac_unregister(ab);
@ -132,7 +132,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
ath11k_hif_irq_disable(ab);
ath11k_dp_pdev_free(ab);
ath11k_debugfs_pdev_destroy(ab);
@@ -1868,6 +1886,10 @@ static int ath11k_core_reconfigure_on_cr
@@ -1880,6 +1898,10 @@ static int ath11k_core_reconfigure_on_cr
int ret;
mutex_lock(&ab->core_lock);
@ -143,7 +143,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
ath11k_thermal_unregister(ab);
ath11k_dp_pdev_free(ab);
ath11k_spectral_deinit(ab);
@@ -2199,6 +2221,10 @@ int ath11k_core_pre_init(struct ath11k_b
@@ -2208,6 +2230,10 @@ int ath11k_core_pre_init(struct ath11k_b
ath11k_err(ab, "failed to pre init firmware: %d", ret);
return ret;
}
@ -164,7 +164,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
#define SM(_v, _f) (((_v) << _f##_LSB) & _f##_MASK)
@@ -422,6 +423,9 @@ struct ath11k_vif {
@@ -425,6 +426,9 @@ struct ath11k_vif {
struct ath11k_reg_tpc_power_info reg_tpc_info;
struct ath11k_mgmt_frame_stats mgmt_stats;
@ -174,7 +174,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
};
struct ath11k_vif_iter {
@@ -575,6 +579,9 @@ struct ath11k_sta {
@@ -578,6 +582,9 @@ struct ath11k_sta {
#endif
bool use_4addr_set;
@ -184,7 +184,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
u16 tcl_metadata;
/* Protected with ar->data_lock */
@@ -669,6 +676,9 @@ struct ath11k {
@@ -672,6 +679,9 @@ struct ath11k {
struct ath11k_pdev *pdev;
struct ieee80211_hw *hw;
struct ath11k_pdev_wmi *wmi;
@ -194,7 +194,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
struct ath11k_pdev_dp dp;
u8 mac_addr[ETH_ALEN];
struct ath11k_he ar_he;
@@ -930,9 +940,11 @@ struct ath11k_base {
@@ -933,9 +943,11 @@ struct ath11k_base {
struct ath11k_htc htc;
struct ath11k_dp dp;
@ -366,7 +366,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
enum hal_encrypt_type enctype)
{
switch (enctype) {
@@ -2091,7 +2094,7 @@ static int ath11k_dp_rx_crypto_param_len
@@ -2090,7 +2093,7 @@ static int ath11k_dp_rx_crypto_param_len
return 0;
}
@ -375,7 +375,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
enum hal_encrypt_type enctype)
{
switch (enctype) {
@@ -2827,6 +2830,22 @@ static void ath11k_dp_rx_process_receive
@@ -2826,6 +2829,22 @@ static void ath11k_dp_rx_process_receive
}
}
@ -398,7 +398,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
int ath11k_dp_process_rx(struct ath11k_base *ab, int ring_id,
struct napi_struct *napi, int budget)
{
@@ -3126,7 +3145,8 @@ static void ath11k_dp_rx_update_user_sta
@@ -3125,7 +3144,8 @@ static void ath11k_dp_rx_update_user_sta
peer = ath11k_peer_find_by_ast(ar->ab, user_stats->ast_index);
if (peer == NULL) {
@ -408,7 +408,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
user_stats->ast_index);
return;
}
@@ -3134,6 +3154,13 @@ static void ath11k_dp_rx_update_user_sta
@@ -3133,6 +3153,13 @@ static void ath11k_dp_rx_update_user_sta
arsta = (struct ath11k_sta *)peer->sta->drv_priv;
rx_stats = arsta->rx_stats;
@ -422,7 +422,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
if (!rx_stats)
return;
@@ -3210,8 +3237,10 @@ static void ath11k_dp_rx_update_peer_mu_
@@ -3209,8 +3236,10 @@ static void ath11k_dp_rx_update_peer_mu_
{
u32 num_users, i;
@ -434,7 +434,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
num_users = ppdu_info->num_users;
if (num_users > HAL_MAX_UL_MU_USERS)
@@ -5614,7 +5643,7 @@ int ath11k_dp_rx_process_mon_status(stru
@@ -5677,7 +5706,7 @@ int ath11k_dp_rx_process_mon_status(stru
struct sk_buff *skb;
struct sk_buff_head skb_list;
struct ath11k_peer *peer;
@ -443,7 +443,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
int num_buffs_reaped = 0;
u32 rx_buf_sz;
u16 log_type;
@@ -5682,6 +5711,7 @@ int ath11k_dp_rx_process_mon_status(stru
@@ -5745,6 +5774,7 @@ int ath11k_dp_rx_process_mon_status(stru
if (ppdu_info->reception_type == HAL_RX_RECEPTION_TYPE_SU) {
arsta = (struct ath11k_sta *)peer->sta->drv_priv;
ath11k_dp_rx_update_peer_su_stats(arsta, ppdu_info);
@ -506,7 +506,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
#define CHAN2G(_channel, _freq, _flags) { \
.band = NL80211_BAND_2GHZ, \
@@ -1593,6 +1594,11 @@ static void ath11k_control_beaconing(str
@@ -1680,6 +1681,11 @@ static void ath11k_control_beaconing(str
lockdep_assert_held(&arvif->ar->conf_mutex);
if (!info->enable_beacon) {
@ -518,7 +518,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
ret = ath11k_wmi_vdev_down(ar, arvif->vdev_id);
if (ret)
ath11k_warn(ar->ab, "failed to down vdev_id %i: %d\n",
@@ -1632,6 +1638,12 @@ static void ath11k_control_beaconing(str
@@ -1719,6 +1725,12 @@ static void ath11k_control_beaconing(str
arvif->is_up = true;
@ -531,7 +531,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
ath11k_dbg(ar->ab, ATH11K_DBG_MAC, "vdev %d up\n", arvif->vdev_id);
}
@@ -3070,6 +3082,12 @@ static void ath11k_bss_assoc(struct ieee
@@ -3157,6 +3169,12 @@ static void ath11k_bss_assoc(struct ieee
"vdev %d up (associated) bssid %pM aid %d\n",
arvif->vdev_id, bss_conf->bssid, vif->cfg.aid);
@ -544,7 +544,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
spin_lock_bh(&ar->ab->base_lock);
peer = ath11k_peer_find(ar->ab, arvif->vdev_id, arvif->bssid);
@@ -3112,6 +3130,10 @@ static void ath11k_bss_disassoc(struct i
@@ -3199,6 +3217,10 @@ static void ath11k_bss_disassoc(struct i
lockdep_assert_held(&ar->conf_mutex);
@ -555,7 +555,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
ath11k_dbg(ar->ab, ATH11K_DBG_MAC, "vdev %i disassoc bssid %pM\n",
arvif->vdev_id, arvif->bssid);
@@ -3404,6 +3426,28 @@ static bool ath11k_mac_supports_station_
@@ -3491,6 +3513,28 @@ static bool ath11k_mac_supports_station_
chandef->chan->band == NL80211_BAND_6GHZ;
}
@ -584,7 +584,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
static void ath11k_mac_op_bss_info_changed(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
struct ieee80211_bss_conf *info,
@@ -4303,6 +4347,26 @@ static int ath11k_mac_op_set_key(struct
@@ -4392,6 +4436,26 @@ static int ath11k_mac_op_set_key(struct
spin_lock_bh(&ab->base_lock);
peer = ath11k_peer_find(ab, arvif->vdev_id, peer_addr);
@ -611,7 +611,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
if (peer && cmd == SET_KEY) {
peer->keys[key->keyidx] = key;
if (key->flags & IEEE80211_KEY_FLAG_PAIRWISE) {
@@ -4341,9 +4405,8 @@ static int ath11k_mac_op_set_key(struct
@@ -4430,9 +4494,8 @@ static int ath11k_mac_op_set_key(struct
break;
}
}
@ -622,7 +622,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
exit:
mutex_unlock(&ar->conf_mutex);
return ret;
@@ -6002,10 +6065,14 @@ static void ath11k_mac_op_tx(struct ieee
@@ -6099,10 +6162,14 @@ static void ath11k_mac_op_tx(struct ieee
if (control->sta)
arsta = ath11k_sta_to_arsta(control->sta);
@ -638,7 +638,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
}
}
@@ -6027,6 +6094,8 @@ static int ath11k_mac_config_mon_status_
@@ -6124,6 +6191,8 @@ static int ath11k_mac_config_mon_status_
if (enable) {
tlv_filter = ath11k_mac_mon_status_filter_default;
@ -647,7 +647,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
if (ath11k_debugfs_rx_filter(ar))
tlv_filter.rx_filter = ath11k_debugfs_rx_filter(ar);
}
@@ -6325,7 +6394,7 @@ static int ath11k_mac_setup_vdev_create_
@@ -6422,7 +6491,7 @@ static int ath11k_mac_setup_vdev_create_
return 0;
}
@ -656,7 +656,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
struct ieee80211_vif *vif)
{
struct ath11k *ar = hw->priv;
@@ -6371,6 +6440,8 @@ static void ath11k_mac_op_update_vif_off
@@ -6468,6 +6537,8 @@ static void ath11k_mac_op_update_vif_off
arvif->vdev_id, ret);
vif->offload_flags &= ~IEEE80211_OFFLOAD_DECAP_ENABLED;
}
@ -665,7 +665,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
}
static bool ath11k_mac_vif_ap_active_any(struct ath11k_base *ab)
@@ -6501,6 +6572,8 @@ static int ath11k_mac_vdev_delete(struct
@@ -6598,6 +6669,8 @@ static int ath11k_mac_vdev_delete(struct
reinit_completion(&ar->vdev_delete_done);
@ -674,7 +674,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
ret = ath11k_wmi_vdev_delete(ar, arvif->vdev_id);
if (ret) {
ath11k_warn(ar->ab, "failed to delete WMI vdev %d: %d\n",
@@ -6634,7 +6707,34 @@ static int ath11k_mac_op_add_interface(s
@@ -6740,7 +6813,34 @@ static int ath11k_mac_op_add_interface(s
list_add(&arvif->list, &ar->arvifs);
spin_unlock_bh(&ar->data_lock);
@ -710,7 +710,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
nss = get_num_chains(ar->cfg_tx_chainmask) ? : 1;
ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id,
@@ -6764,6 +6864,7 @@ err_peer_del:
@@ -6870,6 +6970,7 @@ err_peer_del:
}
err_vdev_del:
@ -718,7 +718,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
ath11k_mac_vdev_delete(ar, arvif);
spin_lock_bh(&ar->data_lock);
list_del(&arvif->list);
@@ -7281,6 +7382,10 @@ ath11k_mac_update_vif_chan(struct ath11k
@@ -7387,6 +7488,10 @@ ath11k_mac_update_vif_chan(struct ath11k
arvif->vdev_id, ret);
continue;
}
@ -746,7 +746,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
.configure_filter = ath11k_mac_op_configure_filter,
.hw_scan = ath11k_mac_op_hw_scan,
.cancel_hw_scan = ath11k_mac_op_cancel_hw_scan,
@@ -10109,7 +10217,8 @@ static int __ath11k_mac_register(struct
@@ -10149,7 +10257,8 @@ static int __ath11k_mac_register(struct
ieee80211_hw_set(ar->hw, TX_AMPDU_SETUP_IN_HW);
ieee80211_hw_set(ar->hw, SUPPORTS_REORDERING_BUFFER);
ieee80211_hw_set(ar->hw, SUPPORTS_AMSDU_IN_AMPDU);
@ -756,7 +756,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
}
ar->hw->wiphy->features |= NL80211_FEATURE_STATIC_SMPS;
@@ -10224,6 +10333,9 @@ static int __ath11k_mac_register(struct
@@ -10264,6 +10373,9 @@ static int __ath11k_mac_register(struct
ab->hw_params.bios_sar_capa)
ar->hw->wiphy->sar_capa = ab->hw_params.bios_sar_capa;
@ -1199,7 +1199,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
ab->hw_params.ring_mask->rx_err[i] ||
--- a/local-symbols
+++ b/local-symbols
@@ -163,6 +163,7 @@ WCN36XX_DEBUGFS=
@@ -165,6 +165,7 @@ WCN36XX_DEBUGFS=
ATH11K=
ATH11K_AHB=
ATH11K_PCI=

View File

@ -31,7 +31,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
--- a/drivers/net/wireless/ath/ath11k/wmi.c
+++ b/drivers/net/wireless/ath/ath11k/wmi.c
@@ -148,6 +148,8 @@ static const struct wmi_tlv_policy wmi_t
@@ -149,6 +149,8 @@ static const struct wmi_tlv_policy wmi_t
.min_len = sizeof(struct wmi_vdev_delete_resp_event) },
[WMI_TAG_OBSS_COLOR_COLLISION_EVT] = {
.min_len = sizeof(struct wmi_obss_color_collision_event) },
@ -40,7 +40,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
[WMI_TAG_11D_NEW_COUNTRY_EVENT] = {
.min_len = sizeof(struct wmi_11d_new_cc_ev) },
[WMI_TAG_PER_CHAIN_RSSI_STATS] = {
@@ -8708,6 +8710,74 @@ exit:
@@ -8805,6 +8807,74 @@ out:
kfree(tb);
}
@ -115,7 +115,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
static void ath11k_wmi_tlv_op_rx(struct ath11k_base *ab, struct sk_buff *skb)
{
struct wmi_cmd_hdr *cmd_hdr;
@@ -8826,6 +8896,9 @@ static void ath11k_wmi_tlv_op_rx(struct
@@ -8923,6 +8993,9 @@ static void ath11k_wmi_tlv_op_rx(struct
case WMI_11D_NEW_COUNTRY_EVENTID:
ath11k_reg_11d_new_cc_event(ab, skb);
break;
@ -127,7 +127,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
break;
--- a/drivers/net/wireless/ath/ath11k/wmi.h
+++ b/drivers/net/wireless/ath/ath11k/wmi.h
@@ -776,6 +776,7 @@ enum wmi_tlv_event_id {
@@ -772,6 +772,7 @@ enum wmi_tlv_event_id {
WMI_READ_DATA_FROM_FLASH_EVENTID,
WMI_REPORT_RX_AGGR_FAILURE_EVENTID,
WMI_PKGID_EVENTID,
@ -135,7 +135,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
WMI_GPIO_INPUT_EVENTID = WMI_TLV_CMD(WMI_GRP_GPIO),
WMI_UPLOADH_EVENTID,
WMI_CAPTUREH_EVENTID,
@@ -1888,6 +1889,7 @@ enum wmi_tlv_tag {
@@ -1884,6 +1885,7 @@ enum wmi_tlv_tag {
WMI_TAG_NDP_EVENT,
WMI_TAG_PDEV_PEER_PKTLOG_FILTER_CMD = 0x301,
WMI_TAG_PDEV_PEER_PKTLOG_FILTER_INFO,
@ -143,7 +143,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
WMI_TAG_FILS_DISCOVERY_TMPL_CMD = 0x344,
WMI_TAG_PDEV_SRG_BSS_COLOR_BITMAP_CMD = 0x37b,
WMI_TAG_PDEV_SRG_PARTIAL_BSSID_BITMAP_CMD,
@@ -4890,6 +4892,16 @@ struct wmi_pdev_temperature_event {
@@ -4896,6 +4898,16 @@ struct wmi_pdev_temperature_event {
u32 pdev_id;
} __packed;

View File

@ -369,7 +369,7 @@ Signed-off-by: Seevalamuthu Mariappan <seevalam@codeaurora.org>
int ath11k_dp_tx(struct ath11k *ar, struct ath11k_vif *arvif,
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -10350,6 +10350,9 @@ static int __ath11k_mac_register(struct
@@ -10390,6 +10390,9 @@ static int __ath11k_mac_register(struct
*/
ar->hw->wiphy->interface_modes &= ~BIT(NL80211_IFTYPE_MONITOR);

View File

@ -125,7 +125,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
ATH11K_QMI_FILE_TYPE_BDF_GOLDEN,
--- a/local-symbols
+++ b/local-symbols
@@ -164,6 +164,8 @@ ATH11K=
@@ -166,6 +166,8 @@ ATH11K=
ATH11K_AHB=
ATH11K_PCI=
ATH11K_NSS_SUPPORT=
@ -152,7 +152,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
#define SM(_v, _f) (((_v) << _f##_LSB) & _f##_MASK)
@@ -925,6 +925,11 @@ struct ath11k_msi_config {
@@ -928,6 +928,11 @@ struct ath11k_msi_config {
u16 hw_rev;
};
@ -164,7 +164,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
/* Master structure to hold the hw data which may be used in core module */
struct ath11k_base {
enum ath11k_hw_rev hw_rev;
@@ -1082,6 +1087,8 @@ struct ath11k_base {
@@ -1085,6 +1090,8 @@ struct ath11k_base {
DECLARE_BITMAP(fw_features, ATH11K_FW_FEATURE_COUNT);
} fw;
@ -225,7 +225,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
dma_unmap_single(ab->dev, skb_cb->paddr, msdu->len, DMA_TO_DEVICE);
@@ -825,6 +828,7 @@ void ath11k_dp_tx_completion_handler(str
@@ -833,6 +836,7 @@ void ath11k_dp_tx_completion_handler(str
wake_up(&ar->dp.tx_empty_waitq);
ath11k_dp_tx_complete_msdu(ar, msdu, &ts);
@ -261,7 +261,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
.num_vdevs = 16 + 1,
.num_peers = 512,
.supports_suspend = false,
@@ -262,7 +265,7 @@ static struct ath11k_hw_params ath11k_hw
@@ -265,7 +268,7 @@ static struct ath11k_hw_params ath11k_hw
.coldboot_cal_mm = false,
.coldboot_cal_ftm = false,
.cbcal_restart_fw = false,
@ -270,7 +270,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
.num_vdevs = 2 + 1,
.num_peers = 512,
.supports_suspend = true,
@@ -431,7 +434,7 @@ static struct ath11k_hw_params ath11k_hw
@@ -437,7 +440,7 @@ static struct ath11k_hw_params ath11k_hw
.coldboot_cal_mm = false,
.coldboot_cal_ftm = false,
.cbcal_restart_fw = false,
@ -279,7 +279,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
.num_vdevs = 2 + 1,
.num_peers = 512,
.supports_suspend = true,
@@ -467,6 +470,7 @@ static struct ath11k_hw_params ath11k_hw
@@ -473,6 +476,7 @@ static struct ath11k_hw_params ath11k_hw
.tx_ring_size = DP_TCL_DATA_RING_SIZE,
.smp2p_wow_exit = false,
.support_fw_mac_sequence = true,
@ -287,7 +287,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
.support_dual_stations = true,
},
{
@@ -515,7 +519,7 @@ static struct ath11k_hw_params ath11k_hw
@@ -524,7 +528,7 @@ static struct ath11k_hw_params ath11k_hw
.coldboot_cal_mm = false,
.coldboot_cal_ftm = false,
.cbcal_restart_fw = false,
@ -296,7 +296,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
.num_vdevs = 2 + 1,
.num_peers = 512,
.supports_suspend = true,
@@ -551,6 +555,7 @@ static struct ath11k_hw_params ath11k_hw
@@ -560,6 +564,7 @@ static struct ath11k_hw_params ath11k_hw
.tx_ring_size = DP_TCL_DATA_RING_SIZE,
.smp2p_wow_exit = false,
.support_fw_mac_sequence = true,
@ -304,7 +304,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
.support_dual_stations = true,
},
{
@@ -600,7 +605,7 @@ static struct ath11k_hw_params ath11k_hw
@@ -609,7 +614,7 @@ static struct ath11k_hw_params ath11k_hw
.coldboot_cal_mm = true,
.coldboot_cal_ftm = true,
.cbcal_restart_fw = false,
@ -313,7 +313,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
.num_vdevs = 3,
.num_peers = 512,
.supports_suspend = false,
@@ -680,7 +685,7 @@ static struct ath11k_hw_params ath11k_hw
@@ -689,7 +694,7 @@ static struct ath11k_hw_params ath11k_hw
.supports_monitor = false,
.supports_sta_ps = false,
.supports_shadow_regs = false,
@ -322,7 +322,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
.num_vdevs = 16 + 1,
.num_peers = 512,
.supports_regdb = false,
@@ -715,6 +720,7 @@ static struct ath11k_hw_params ath11k_hw
@@ -724,6 +729,7 @@ static struct ath11k_hw_params ath11k_hw
.tx_ring_size = DP_TCL_DATA_RING_SIZE,
.smp2p_wow_exit = false,
.support_fw_mac_sequence = false,
@ -330,7 +330,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
.support_dual_stations = false,
},
{
@@ -805,6 +811,21 @@ static struct ath11k_hw_params ath11k_hw
@@ -817,6 +823,21 @@ static struct ath11k_hw_params ath11k_hw
},
};

View File

@ -26,7 +26,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
--- a/drivers/net/wireless/ath/ath11k/core.h
+++ b/drivers/net/wireless/ath/ath11k/core.h
@@ -679,6 +679,7 @@ struct ath11k {
@@ -682,6 +682,7 @@ struct ath11k {
struct ath11k_pdev_wmi *wmi;
#ifdef CPTCFG_ATH11K_NSS_SUPPORT
struct ath11k_nss nss;
@ -34,7 +34,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
#endif
struct ath11k_pdev_dp dp;
u8 mac_addr[ETH_ALEN];
@@ -1097,6 +1098,9 @@ struct ath11k_base {
@@ -1100,6 +1101,9 @@ struct ath11k_base {
} testmode;
#endif
@ -111,7 +111,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
break;
--- a/drivers/net/wireless/ath/ath11k/dp_tx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_tx.c
@@ -495,7 +495,7 @@ ath11k_dp_tx_process_htt_tx_complete(str
@@ -499,7 +499,7 @@ ath11k_dp_tx_process_htt_tx_complete(str
break;
case HAL_WBM_REL_HTT_TX_COMP_STATUS_MEC_NOTIFY:
/* This event is to be handled only when the driver decides to
@ -837,7 +837,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
int ath11k_wmi_send_pdev_set_regdomain(struct ath11k *ar,
struct pdev_set_regdomain_params *param)
{
@@ -6436,6 +6483,36 @@ static int ath11k_pull_peer_assoc_conf_e
@@ -6481,6 +6528,36 @@ static int ath11k_pull_peer_assoc_conf_e
return 0;
}
@ -874,7 +874,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
static void ath11k_wmi_pull_pdev_stats_base(const struct wmi_pdev_stats_base *src,
struct ath11k_fw_stats_pdev *dst)
{
@@ -7260,6 +7337,7 @@ static int ath11k_wmi_tlv_rdy_parse(stru
@@ -7305,6 +7382,7 @@ static int ath11k_wmi_tlv_rdy_parse(stru
ether_addr_copy(ab->mac_addr,
fixed_param.ready_event_min.mac_addr.addr);
@ -882,7 +882,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
ab->pktlog_defs_checksum = fixed_param.pktlog_defs_checksum;
break;
case WMI_TAG_ARRAY_FIXED_STRUCT:
@@ -8778,6 +8856,22 @@ exit:
@@ -8875,6 +8953,22 @@ exit:
kfree(tb);
}
@ -917,7 +917,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
break;
--- a/drivers/net/wireless/ath/ath11k/wmi.h
+++ b/drivers/net/wireless/ath/ath11k/wmi.h
@@ -3032,6 +3032,21 @@ struct wmi_peer_delete_cmd {
@@ -3028,6 +3028,21 @@ struct wmi_peer_delete_cmd {
struct wmi_mac_addr peer_macaddr;
} __packed;
@ -939,7 +939,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
struct wmi_peer_reorder_queue_setup_cmd {
u32 tlv_header;
u32 vdev_id;
@@ -4635,6 +4650,21 @@ struct wmi_probe_resp_tx_status_event {
@@ -4641,6 +4656,21 @@ struct wmi_probe_resp_tx_status_event {
u32 tx_status;
} __packed;
@ -961,7 +961,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
/*
* PDEV statistics
*/
@@ -6434,6 +6464,9 @@ int ath11k_wmi_set_sta_ps_param(struct a
@@ -6440,6 +6470,9 @@ int ath11k_wmi_set_sta_ps_param(struct a
int ath11k_wmi_force_fw_hang_cmd(struct ath11k *ar, u32 type, u32 delay_time_ms);
int ath11k_wmi_send_peer_delete_cmd(struct ath11k *ar,
const u8 *peer_addr, u8 vdev_id);

View File

@ -22,7 +22,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -5915,6 +5915,16 @@ static int ath11k_mac_mgmt_tx_wmi(struct
@@ -6012,6 +6012,16 @@ static int ath11k_mac_mgmt_tx_wmi(struct
ATH11K_SKB_CB(skb)->paddr = paddr;
@ -39,7 +39,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
ret = ath11k_wmi_mgmt_send(ar, arvif->vdev_id, buf_id, skb);
if (ret) {
ath11k_warn(ar->ab, "failed to send mgmt frame: %d\n", ret);
@@ -5982,8 +5992,8 @@ static void ath11k_mgmt_over_wmi_tx_work
@@ -6079,8 +6089,8 @@ static void ath11k_mgmt_over_wmi_tx_work
}
}
@ -50,7 +50,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
{
struct sk_buff_head *q = &ar->wmi_mgmt_tx_queue;
@@ -6045,7 +6055,7 @@ static void ath11k_mac_op_tx(struct ieee
@@ -6142,7 +6152,7 @@ static void ath11k_mac_op_tx(struct ieee
} else if (ieee80211_is_mgmt(hdr->frame_control)) {
frm_type = FIELD_GET(IEEE80211_FCTL_STYPE, hdr->frame_control);
is_prb_rsp = ieee80211_is_probe_resp(hdr->frame_control);
@ -59,7 +59,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
if (ret) {
if (ret != -EBUSY)
ath11k_warn(ar->ab, "failed to queue management frame %d\n",
@@ -6060,6 +6070,20 @@ static void ath11k_mac_op_tx(struct ieee
@@ -6157,6 +6167,20 @@ static void ath11k_mac_op_tx(struct ieee
spin_unlock_bh(&ar->data_lock);
}
return;
@ -82,7 +82,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
if (control->sta)
--- a/drivers/net/wireless/ath/ath11k/wmi.c
+++ b/drivers/net/wireless/ath/ath11k/wmi.c
@@ -117,7 +117,7 @@ static const struct wmi_tlv_policy wmi_t
@@ -118,7 +118,7 @@ static const struct wmi_tlv_policy wmi_t
[WMI_TAG_MGMT_RX_HDR]
= { .min_len = sizeof(struct wmi_mgmt_rx_hdr) },
[WMI_TAG_MGMT_TX_COMPL_EVENT]
@ -91,7 +91,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
[WMI_TAG_SCAN_EVENT]
= { .min_len = sizeof(struct wmi_scan_event) },
[WMI_TAG_PEER_STA_KICKOUT_EVENT]
@@ -701,6 +701,55 @@ int ath11k_wmi_mgmt_send(struct ath11k *
@@ -706,6 +706,55 @@ int ath11k_wmi_mgmt_send(struct ath11k *
return ret;
}
@ -147,7 +147,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
int ath11k_wmi_vdev_create(struct ath11k *ar, u8 *macaddr,
struct vdev_create_params *param)
{
@@ -5978,8 +6027,8 @@ static int ath11k_pull_mgmt_rx_params_tl
@@ -6023,8 +6072,8 @@ static int ath11k_pull_mgmt_rx_params_tl
return 0;
}
@ -158,7 +158,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
{
struct sk_buff *msdu;
struct ieee80211_tx_info *info;
@@ -6017,6 +6066,11 @@ static int wmi_process_mgmt_tx_comp(stru
@@ -6062,6 +6111,11 @@ static int wmi_process_mgmt_tx_comp(stru
info->status.ack_signal = tx_compl_param->ack_rssi;
}
@ -170,7 +170,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
hdr = (struct ieee80211_hdr *)msdu->data;
frm_type = FIELD_GET(IEEE80211_FCTL_STYPE, hdr->frame_control);
@@ -6035,10 +6089,13 @@ static int wmi_process_mgmt_tx_comp(stru
@@ -6080,10 +6134,13 @@ static int wmi_process_mgmt_tx_comp(stru
arvif = ath11k_vif_to_arvif(vif);
mgmt_stats = &arvif->mgmt_stats;
@ -188,7 +188,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
spin_unlock_bh(&ar->data_lock);
skip_mgmt_stats:
@@ -6060,12 +6117,13 @@ skip_mgmt_stats:
@@ -6105,12 +6162,13 @@ skip_mgmt_stats:
return 0;
}
@ -206,7 +206,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
int ret;
tb = ath11k_wmi_tlv_parse_alloc(ab, skb, GFP_ATOMIC);
@@ -6075,7 +6133,7 @@ static int ath11k_pull_mgmt_tx_compl_par
@@ -6120,7 +6178,7 @@ static int ath11k_pull_mgmt_tx_compl_par
return ret;
}
@ -215,7 +215,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
if (!ev) {
ath11k_warn(ab, "failed to fetch mgmt tx compl ev");
kfree(tb);
@@ -7791,10 +7849,11 @@ exit:
@@ -7836,10 +7894,11 @@ exit:
static void ath11k_mgmt_tx_compl_event(struct ath11k_base *ab, struct sk_buff *skb)
{
@ -229,7 +229,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
ath11k_warn(ab, "failed to extract mgmt tx compl event");
return;
}
@@ -7807,7 +7866,7 @@ static void ath11k_mgmt_tx_compl_event(s
@@ -7852,7 +7911,7 @@ static void ath11k_mgmt_tx_compl_event(s
goto exit;
}
@ -238,7 +238,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
ath11k_dbg(ab, ATH11K_DBG_MGMT,
"event mgmt tx compl ev pdev_id %d, desc_id %d, status %d ack_rssi %d",
@@ -7818,6 +7877,36 @@ exit:
@@ -7863,6 +7922,36 @@ exit:
rcu_read_unlock();
}
@ -275,7 +275,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
static struct ath11k *ath11k_get_ar_on_scan_state(struct ath11k_base *ab,
u32 vdev_id,
enum ath11k_scan_state state)
@@ -9005,6 +9094,10 @@ static void ath11k_wmi_tlv_op_rx(struct
@@ -9105,6 +9194,10 @@ static void ath11k_wmi_tlv_op_rx(struct
case WMI_WDS_PEER_EVENTID:
ath11k_wmi_wds_peer_event(ab, skb);
break;
@ -288,7 +288,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
break;
--- a/drivers/net/wireless/ath/ath11k/wmi.h
+++ b/drivers/net/wireless/ath/ath11k/wmi.h
@@ -380,6 +380,7 @@ enum wmi_tlv_cmd_id {
@@ -376,6 +376,7 @@ enum wmi_tlv_cmd_id {
WMI_BSS_COLOR_CHANGE_ENABLE_CMDID,
WMI_VDEV_BCN_OFFLOAD_QUIET_CONFIG_CMDID,
WMI_FILS_DISCOVERY_TMPL_CMDID,
@ -296,7 +296,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
WMI_ADDBA_CLEAR_RESP_CMDID = WMI_TLV_CMD(WMI_GRP_BA_NEG),
WMI_ADDBA_SEND_CMDID,
WMI_ADDBA_STATUS_CMDID,
@@ -710,6 +711,8 @@ enum wmi_tlv_event_id {
@@ -706,6 +707,8 @@ enum wmi_tlv_event_id {
WMI_TBTTOFFSET_EXT_UPDATE_EVENTID,
WMI_OFFCHAN_DATA_TX_COMPLETION_EVENTID,
WMI_HOST_FILS_DISCOVERY_EVENTID,
@ -305,7 +305,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
WMI_TX_DELBA_COMPLETE_EVENTID = WMI_TLV_CMD(WMI_GRP_BA_NEG),
WMI_TX_ADDBA_COMPLETE_EVENTID,
WMI_BA_RSP_SSN_EVENTID,
@@ -1899,6 +1902,9 @@ enum wmi_tlv_tag {
@@ -1895,6 +1898,9 @@ enum wmi_tlv_tag {
WMI_TAG_PDEV_NON_SRG_OBSS_BSSID_ENABLE_BITMAP_CMD,
WMI_TAG_REGULATORY_RULE_EXT_STRUCT = 0x3A9,
WMI_TAG_REG_CHAN_LIST_CC_EXT_EVENT,
@ -315,7 +315,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
WMI_TAG_VDEV_SET_TPC_POWER_CMD = 0x3B5,
WMI_TAG_VDEV_CH_POWER_INFO,
WMI_TAG_PDEV_SET_BIOS_SAR_TABLE_CMD = 0x3D8,
@@ -2130,7 +2136,17 @@ enum wmi_tlv_service {
@@ -2126,7 +2132,17 @@ enum wmi_tlv_service {
WMI_TLV_SERVICE_PEER_POWER_SAVE_DURATION_SUPPORT = 246,
WMI_TLV_SERVICE_SRG_SRP_SPATIAL_REUSE_SUPPORT = 249,
WMI_TLV_SERVICE_MBSS_PARAM_IN_VDEV_START_SUPPORT = 253,
@ -333,7 +333,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
/* The second 128 bits */
WMI_MAX_EXT_SERVICE = 256,
@@ -3877,6 +3893,7 @@ struct wmi_scan_prob_req_oui_cmd {
@@ -3883,6 +3899,7 @@ struct wmi_scan_prob_req_oui_cmd {
} __packed;
#define WMI_MGMT_SEND_DOWNLD_LEN 64
@ -341,7 +341,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
#define WMI_TX_PARAMS_DWORD0_POWER GENMASK(7, 0)
#define WMI_TX_PARAMS_DWORD0_MCS_MASK GENMASK(19, 8)
@@ -3887,9 +3904,10 @@ struct wmi_scan_prob_req_oui_cmd {
@@ -3893,9 +3910,10 @@ struct wmi_scan_prob_req_oui_cmd {
#define WMI_TX_PARAMS_DWORD1_BW_MASK GENMASK(14, 8)
#define WMI_TX_PARAMS_DWORD1_PREAMBLE_TYPE GENMASK(19, 15)
#define WMI_TX_PARAMS_DWORD1_FRAME_TYPE BIT(20)
@ -354,7 +354,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
u32 tlv_header;
u32 tx_params_dword0;
u32 tx_params_dword1;
@@ -4981,7 +4999,7 @@ struct wmi_rssi_ctl_ext {
@@ -4987,7 +5005,7 @@ struct wmi_rssi_ctl_ext {
u32 rssi_ctl_ext[MAX_ANTENNA_EIGHT - ATH_MAX_ANTENNA];
};
@ -363,7 +363,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
u32 desc_id;
u32 status;
u32 pdev_id;
@@ -5813,6 +5831,17 @@ struct wmi_debug_log_config_cmd_fixed_pa
@@ -5819,6 +5837,17 @@ struct wmi_debug_log_config_cmd_fixed_pa
u32 value;
} __packed;

View File

@ -33,7 +33,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
--- a/drivers/net/wireless/ath/ath11k/core.h
+++ b/drivers/net/wireless/ath/ath11k/core.h
@@ -427,6 +427,7 @@ struct ath11k_vif {
@@ -430,6 +430,7 @@ struct ath11k_vif {
#ifdef CPTCFG_ATH11K_NSS_SUPPORT
struct arvif_nss nss;
#endif
@ -43,7 +43,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
struct ath11k_vif_iter {
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -4755,6 +4755,11 @@ static void ath11k_sta_rc_update_wk(stru
@@ -4844,6 +4844,11 @@ static void ath11k_sta_rc_update_wk(stru
arvif = arsta->arvif;
ar = arvif->ar;
@ -55,7 +55,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
if (WARN_ON(ath11k_mac_vif_chan(arvif->vif, &def)))
return;
@@ -4924,17 +4929,28 @@ err_rc_bw_changed:
@@ -5013,17 +5018,28 @@ err_rc_bw_changed:
static void ath11k_sta_set_4addr_wk(struct work_struct *wk)
{
struct ath11k *ar;
@ -86,7 +86,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
"setting USE_4ADDR for peer %pM\n", sta->addr);
ret = ath11k_wmi_set_peer_param(ar, sta->addr,
@@ -4942,8 +4958,93 @@ static void ath11k_sta_set_4addr_wk(stru
@@ -5031,8 +5047,93 @@ static void ath11k_sta_set_4addr_wk(stru
WMI_PEER_USE_4ADDR, 1);
if (ret)
@ -181,7 +181,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
}
static int ath11k_mac_inc_num_stations(struct ath11k_vif *arvif,
@@ -5045,9 +5146,32 @@ static void ath11k_mac_op_sta_set_4addr(
@@ -5134,9 +5235,32 @@ static void ath11k_mac_op_sta_set_4addr(
struct ieee80211_sta *sta, bool enabled)
{
struct ath11k *ar = hw->priv;
@ -214,7 +214,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
ieee80211_queue_work(ar->hw, &arsta->set_4addr_wk);
arsta->use_4addr_set = true;
}
@@ -6427,6 +6551,9 @@ static int ath11k_mac_op_update_vif_offl
@@ -6524,6 +6648,9 @@ static int ath11k_mac_op_update_vif_offl
u32 param_id, param_value;
int ret;
@ -224,7 +224,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
param_id = WMI_VDEV_PARAM_TX_ENCAP_TYPE;
if (ath11k_frame_mode != ATH11K_HW_TXRX_ETHERNET ||
(vif->type != NL80211_IFTYPE_STATION &&
@@ -6647,7 +6774,8 @@ static int ath11k_mac_op_add_interface(s
@@ -6744,7 +6871,8 @@ static int ath11k_mac_op_add_interface(s
goto err;
}
@ -234,7 +234,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
ath11k_warn(ab, "failed to create vdev %u, reached max vdev limit %d\n",
ar->num_created_vdevs, TARGET_NUM_VDEVS(ab));
ret = -EBUSY;
@@ -6660,6 +6788,28 @@ static int ath11k_mac_op_add_interface(s
@@ -6757,6 +6885,28 @@ static int ath11k_mac_op_add_interface(s
arvif->vif = vif;
INIT_LIST_HEAD(&arvif->list);
@ -271,7 +271,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
if (vif->p2p)
arvif->vdev_subtype = WMI_VDEV_SUBTYPE_P2P_GO;
break;
@@ -6917,13 +7068,30 @@ static void ath11k_mac_op_remove_interfa
@@ -7023,13 +7174,30 @@ static void ath11k_mac_op_remove_interfa
struct ath11k *ar = hw->priv;
struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif);
struct ath11k_base *ab = ar->ab;
@ -304,7 +304,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
ath11k_dbg(ab, ATH11K_DBG_MAC, "remove interface (vdev %d)\n",
arvif->vdev_id);
@@ -6940,6 +7108,14 @@ static void ath11k_mac_op_remove_interfa
@@ -7046,6 +7214,14 @@ static void ath11k_mac_op_remove_interfa
if (ret)
ath11k_warn(ab, "failed to submit AP self-peer removal on vdev %d: %d\n",
arvif->vdev_id, ret);
@ -319,7 +319,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
}
ret = ath11k_mac_vdev_delete(ar, arvif);
@@ -6981,8 +7157,7 @@ err_vdev_del:
@@ -7087,8 +7263,7 @@ err_vdev_del:
/* Recalc txpower for remaining vdev */
ath11k_mac_txpower_recalc(ar);
@ -329,7 +329,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
mutex_unlock(&ar->conf_mutex);
}
@@ -7042,16 +7217,17 @@ static int ath11k_mac_op_ampdu_action(st
@@ -7148,16 +7323,17 @@ static int ath11k_mac_op_ampdu_action(st
struct ieee80211_ampdu_params *params)
{
struct ath11k *ar = hw->priv;
@ -349,7 +349,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
break;
case IEEE80211_AMPDU_TX_START:
case IEEE80211_AMPDU_TX_STOP_CONT:
@@ -9056,6 +9232,7 @@ static void ath11k_mac_op_sta_statistics
@@ -9085,6 +9261,7 @@ static void ath11k_mac_op_sta_statistics
{
struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta);
struct ath11k *ar = arsta->arvif->ar;
@ -357,8 +357,8 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
s8 signal;
bool db2dbm = test_bit(WMI_TLV_SERVICE_HW_DB2DBM_CONVERSION_SUPPORT,
ar->ab->wmi_ab.svc_map);
@@ -9112,7 +9289,8 @@ static void ath11k_mac_op_sta_statistics
ATH11K_DEFAULT_NOISE_FLOOR;
@@ -9144,7 +9321,8 @@ static void ath11k_mac_op_sta_statistics
sinfo->filled |= BIT_ULL(NL80211_STA_INFO_SIGNAL_AVG);
- ath11k_nss_update_sta_stats(sinfo, sta, arsta);
@ -369,7 +369,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
#if IS_ENABLED(CONFIG_IPV6)
--- a/drivers/net/wireless/ath/ath11k/wmi.h
+++ b/drivers/net/wireless/ath/ath11k/wmi.h
@@ -5105,6 +5105,8 @@ enum wmi_vdev_subtype {
@@ -5111,6 +5111,8 @@ enum wmi_vdev_subtype {
WMI_VDEV_SUBTYPE_MESH_11S,
};
@ -415,8 +415,8 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
int ret;
--- a/drivers/net/wireless/ath/ath11k/dp_rx.h
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.h
@@ -88,9 +88,9 @@ static inline u32 ath11k_he_gi_to_nl8021
return ret;
@@ -89,9 +89,9 @@ static inline u32 ath11k_he_gi_to_nl8021
return ret;
}
-int ath11k_dp_rx_ampdu_start(struct ath11k *ar,

View File

@ -48,7 +48,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
static inline enum wme_ac ath11k_tid_to_ac(u32 tid)
{
return (((tid == 0) || (tid == 3)) ? WME_AC_BE :
@@ -367,6 +372,20 @@ struct ath11k_mgmt_frame_stats {
@@ -370,6 +375,20 @@ struct ath11k_mgmt_frame_stats {
u32 tx_compl_fail[ATH11K_STATS_MGMT_FRM_TYPE_MAX];
};
@ -69,7 +69,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
struct ath11k_vif {
u32 vdev_id;
enum wmi_vdev_type vdev_type;
@@ -428,6 +447,11 @@ struct ath11k_vif {
@@ -431,6 +450,11 @@ struct ath11k_vif {
struct arvif_nss nss;
#endif
struct list_head ap_vlan_arvifs;
@ -128,7 +128,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
static void ath11k_pdev_caps_update(struct ath11k *ar)
{
struct ath11k_base *ab = ar->ab;
@@ -4175,6 +4206,9 @@ static int ath11k_install_key(struct ath
@@ -4265,6 +4296,9 @@ static int ath11k_install_key(struct ath
if (test_bit(ATH11K_FLAG_HW_CRYPTO_DISABLED, &ar->ab->dev_flags))
return 0;
@ -138,7 +138,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
if (cmd == DISABLE_KEY) {
arg.key_cipher = WMI_CIPHER_NONE;
arg.key_data = NULL;
@@ -4264,15 +4298,40 @@ static int ath11k_clear_peer_keys(struct
@@ -4353,15 +4387,40 @@ static int ath11k_clear_peer_keys(struct
return first_errno;
}
@ -181,7 +181,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
const u8 *peer_addr;
int ret = 0;
u32 flags = 0;
@@ -4290,17 +4349,38 @@ static int ath11k_mac_op_set_key(struct
@@ -4379,17 +4438,38 @@ static int ath11k_mac_op_set_key(struct
if (key->keyidx > WMI_MAX_KEY_INDEX)
return -ENOSPC;
@ -224,7 +224,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
/* the peer should not disappear in mid-way (unless FW goes awry) since
* we already hold conf_mutex. we just make sure its there now.
*/
@@ -4345,6 +4425,74 @@ static int ath11k_mac_op_set_key(struct
@@ -4434,6 +4514,74 @@ static int ath11k_mac_op_set_key(struct
goto exit;
}
@ -299,7 +299,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
spin_lock_bh(&ab->base_lock);
peer = ath11k_peer_find(ab, arvif->vdev_id, peer_addr);
@@ -4367,6 +4515,27 @@ static int ath11k_mac_op_set_key(struct
@@ -4456,6 +4604,27 @@ static int ath11k_mac_op_set_key(struct
goto unlock;
}
@ -327,7 +327,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
if (peer && cmd == SET_KEY) {
peer->keys[key->keyidx] = key;
if (key->flags & IEEE80211_KEY_FLAG_PAIRWISE) {
@@ -4376,18 +4545,23 @@ static int ath11k_mac_op_set_key(struct
@@ -4465,18 +4634,23 @@ static int ath11k_mac_op_set_key(struct
peer->mcast_keyidx = key->keyidx;
peer->sec_type_grp = ath11k_dp_tx_get_encrypt_type(key->cipher);
}
@ -354,7 +354,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
switch (key->cipher) {
case WLAN_CIPHER_SUITE_TKIP:
@@ -6792,7 +6966,7 @@ static int ath11k_mac_op_add_interface(s
@@ -6889,7 +7063,7 @@ static int ath11k_mac_op_add_interface(s
if ((vif->type == NL80211_IFTYPE_AP_VLAN ||
vif->type == NL80211_IFTYPE_STATION) && ab->nss.enabled) {
if (ath11k_frame_mode == ATH11K_HW_TXRX_ETHERNET &&
@ -363,7 +363,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
vif->offload_flags |= IEEE80211_OFFLOAD_ENCAP_4ADDR;
arvif->nss.encap = ATH11K_HW_TXRX_ETHERNET;
arvif->nss.decap = ATH11K_HW_TXRX_ETHERNET;
@@ -6805,6 +6979,7 @@ static int ath11k_mac_op_add_interface(s
@@ -6902,6 +7076,7 @@ static int ath11k_mac_op_add_interface(s
vif->addr, ret);
goto err;
}
@ -371,7 +371,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
mutex_unlock(&ar->conf_mutex);
return ret;
}
@@ -6829,6 +7004,20 @@ static int ath11k_mac_op_add_interface(s
@@ -6926,6 +7101,20 @@ static int ath11k_mac_op_add_interface(s
arvif->vdev_id = bit;
arvif->vdev_subtype = WMI_VDEV_SUBTYPE_NONE;
@ -392,7 +392,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
switch (vif->type) {
case NL80211_IFTYPE_UNSPECIFIED:
case NL80211_IFTYPE_STATION:
@@ -6869,7 +7058,7 @@ static int ath11k_mac_op_add_interface(s
@@ -6975,7 +7164,7 @@ static int ath11k_mac_op_add_interface(s
if (ret) {
ath11k_warn(ab, "failed to create WMI vdev %d: %d\n",
arvif->vdev_id, ret);
@ -401,7 +401,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
}
ar->num_created_vdevs++;
@@ -7034,7 +7223,7 @@ err_peer_del:
@@ -7140,7 +7329,7 @@ err_peer_del:
if (fbret) {
ath11k_warn(ar->ab, "fallback fail to delete peer addr %pM vdev_id %d ret %d\n",
vif->addr, arvif->vdev_id, fbret);
@ -410,7 +410,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
}
}
@@ -7045,6 +7234,8 @@ err_vdev_del:
@@ -7151,6 +7340,8 @@ err_vdev_del:
list_del(&arvif->list);
spin_unlock_bh(&ar->data_lock);
@ -419,7 +419,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
err:
mutex_unlock(&ar->conf_mutex);
@@ -7142,6 +7333,7 @@ err_vdev_del:
@@ -7248,6 +7439,7 @@ err_vdev_del:
list_del(&arvif->list);
spin_unlock_bh(&ar->data_lock);
@ -427,7 +427,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
ath11k_peer_cleanup(ar, arvif->vdev_id);
idr_for_each(&ar->txmgmt_idr,
@@ -9835,6 +10027,33 @@ static int ath11k_mac_station_remove(str
@@ -9872,6 +10064,33 @@ static int ath11k_mac_station_remove(str
return ret;
}
@ -461,7 +461,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
static int ath11k_mac_op_sta_state(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
struct ieee80211_sta *sta,
@@ -9924,6 +10143,34 @@ static int ath11k_mac_op_sta_state(struc
@@ -9961,6 +10180,34 @@ static int ath11k_mac_op_sta_state(struc
if (ret)
ath11k_warn(ar->ab, "Unable to authorize peer %pM vdev %d: %d\n",
sta->addr, arvif->vdev_id, ret);
@ -496,7 +496,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
}
if (!ret &&
@@ -10535,8 +10782,11 @@ static int __ath11k_mac_register(struct
@@ -10575,8 +10822,11 @@ static int __ath11k_mac_register(struct
ab->hw_params.bios_sar_capa)
ar->hw->wiphy->sar_capa = ab->hw_params.bios_sar_capa;
@ -511,7 +511,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
if (ret) {
--- a/drivers/net/wireless/ath/ath11k/wmi.c
+++ b/drivers/net/wireless/ath/ath11k/wmi.c
@@ -1938,6 +1938,7 @@ int ath11k_wmi_vdev_install_key(struct a
@@ -1982,6 +1982,7 @@ int ath11k_wmi_vdev_install_key(struct a
cmd->key_len = arg->key_len;
cmd->key_txmic_len = arg->key_txmic_len;
cmd->key_rxmic_len = arg->key_rxmic_len;
@ -519,7 +519,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
if (arg->key_rsc_counter)
memcpy(&cmd->key_rsc_counter, &arg->key_rsc_counter,
@@ -4276,6 +4277,7 @@ ath11k_wmi_copy_resource_config(struct w
@@ -4321,6 +4322,7 @@ ath11k_wmi_copy_resource_config(struct w
wmi_cfg->flags2 = WMI_RSRC_CFG_FLAG2_CALC_NEXT_DTIM_COUNT_SET;
wmi_cfg->ema_max_vap_cnt = tg_cfg->ema_max_vap_cnt;
wmi_cfg->ema_max_profile_period = tg_cfg->ema_max_profile_period;
@ -527,7 +527,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
}
static int ath11k_init_cmd_send(struct ath11k_pdev_wmi *wmi,
@@ -4498,6 +4500,9 @@ int ath11k_wmi_cmd_init(struct ath11k_ba
@@ -4543,6 +4545,9 @@ int ath11k_wmi_cmd_init(struct ath11k_ba
memset(&init_param, 0, sizeof(init_param));
memset(&config, 0, sizeof(config));
@ -539,7 +539,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
if (test_bit(WMI_TLV_SERVICE_REG_CC_EXT_EVENT_SUPPORT,
--- a/drivers/net/wireless/ath/ath11k/wmi.h
+++ b/drivers/net/wireless/ath/ath11k/wmi.h
@@ -3749,6 +3749,7 @@ struct wmi_vdev_install_key_arg {
@@ -3755,6 +3755,7 @@ struct wmi_vdev_install_key_arg {
u32 vdev_id;
const u8 *macaddr;
u32 key_idx;
@ -547,7 +547,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
u32 key_flags;
u32 key_cipher;
u32 key_len;
@@ -5809,6 +5810,7 @@ struct target_resource_config {
@@ -5815,6 +5816,7 @@ struct target_resource_config {
u32 bpf_instruction_size;
u32 max_bssid_rx_filters;
u32 use_pdev_id;

View File

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath11k/core.h
+++ b/drivers/net/wireless/ath/ath11k/core.h
@@ -1126,6 +1126,7 @@ struct ath11k_base {
@@ -1129,6 +1129,7 @@ struct ath11k_base {
u32 max_ast_index;
u32 num_ast_entries;

View File

@ -24,7 +24,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
--- a/drivers/net/wireless/ath/ath11k/dp_tx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_tx.c
@@ -761,6 +761,7 @@ void ath11k_dp_tx_completion_handler(str
@@ -769,6 +769,7 @@ void ath11k_dp_tx_completion_handler(str
struct sk_buff *msdu;
struct hal_tx_status ts = { 0 };
struct dp_tx_ring *tx_ring = &dp->tx_ring[ring_id];
@ -32,7 +32,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
u32 *desc;
u32 msdu_id;
u8 mac_id;
@@ -769,9 +770,18 @@ void ath11k_dp_tx_completion_handler(str
@@ -777,9 +778,18 @@ void ath11k_dp_tx_completion_handler(str
ath11k_hal_srng_access_begin(ab, status_ring);
@ -143,5 +143,5 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
+void ath11k_hal_srng_dst_invalidate_entry(struct ath11k_base *ab,
+ struct hal_srng *srng, int entries);
u32 *ath11k_hal_srng_src_peek(struct ath11k_base *ab, struct hal_srng *srng);
u32 *ath11k_hal_srng_src_get_next_reaped(struct ath11k_base *ab,
struct hal_srng *srng);
u32 *ath11k_hal_srng_src_next_peek(struct ath11k_base *ab,
struct hal_srng *srng);

View File

@ -55,7 +55,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
tlv_tag, ptr - begin, len, tlv_len);
return -EINVAL;
}
@@ -2455,10 +2461,60 @@ ath11k_dp_rx_h_find_peer(struct ath11k_b
@@ -2454,10 +2460,60 @@ ath11k_dp_rx_h_find_peer(struct ath11k_b
return peer;
}
@ -117,7 +117,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
{
bool fill_crypto_hdr;
enum hal_encrypt_type enctype;
@@ -2469,9 +2525,13 @@ static void ath11k_dp_rx_h_mpdu(struct a
@@ -2468,9 +2524,13 @@ static void ath11k_dp_rx_h_mpdu(struct a
struct rx_attention *rx_attention;
u32 err_bitmap;
@ -132,7 +132,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
rxcb->is_mcbc = fill_crypto_hdr;
if (rxcb->is_mcbc) {
@@ -2482,6 +2542,26 @@ static void ath11k_dp_rx_h_mpdu(struct a
@@ -2481,6 +2541,26 @@ static void ath11k_dp_rx_h_mpdu(struct a
spin_lock_bh(&ar->ab->base_lock);
peer = ath11k_dp_rx_h_find_peer(ar->ab, msdu);
if (peer) {
@ -159,7 +159,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
if (rxcb->is_mcbc)
enctype = peer->sec_type_grp;
else
@@ -2491,6 +2571,8 @@ static void ath11k_dp_rx_h_mpdu(struct a
@@ -2490,6 +2570,8 @@ static void ath11k_dp_rx_h_mpdu(struct a
}
spin_unlock_bh(&ar->ab->base_lock);
@ -168,7 +168,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
rx_attention = ath11k_dp_rx_get_attention(ar->ab, rx_desc);
err_bitmap = ath11k_dp_rx_h_attn_mpdu_err(rx_attention);
if (enctype != HAL_ENCRYPT_TYPE_OPEN && !err_bitmap)
@@ -2732,7 +2814,8 @@ static void ath11k_dp_rx_deliver_msdu(st
@@ -2731,7 +2813,8 @@ static void ath11k_dp_rx_deliver_msdu(st
static int ath11k_dp_rx_process_msdu(struct ath11k *ar,
struct sk_buff *msdu,
struct sk_buff_head *msdu_list,
@ -178,7 +178,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
{
struct ath11k_base *ab = ar->ab;
struct hal_rx_desc *rx_desc, *lrx_desc;
@@ -2799,8 +2882,13 @@ static int ath11k_dp_rx_process_msdu(str
@@ -2798,8 +2881,13 @@ static int ath11k_dp_rx_process_msdu(str
}
}
@ -193,7 +193,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
rx_status->flag |= RX_FLAG_SKIP_MONITOR | RX_FLAG_DUP_VALIDATED;
@@ -2815,10 +2903,12 @@ static void ath11k_dp_rx_process_receive
@@ -2814,10 +2902,12 @@ static void ath11k_dp_rx_process_receive
struct sk_buff_head *msdu_list,
int mac_id)
{
@ -206,7 +206,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
if (skb_queue_empty(msdu_list))
return;
@@ -2835,7 +2925,12 @@ static void ath11k_dp_rx_process_receive
@@ -2834,7 +2924,12 @@ static void ath11k_dp_rx_process_receive
}
while ((msdu = __skb_dequeue(msdu_list))) {
@ -220,7 +220,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
if (unlikely(ret)) {
ath11k_dbg(ab, ATH11K_DBG_DATA,
"Unable to process msdu %d", ret);
@@ -2843,7 +2938,10 @@ static void ath11k_dp_rx_process_receive
@@ -2842,7 +2937,10 @@ static void ath11k_dp_rx_process_receive
continue;
}
@ -232,7 +232,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
}
}
@@ -2852,11 +2950,12 @@ void ath11k_dp_rx_from_nss(struct ath11k
@@ -2851,11 +2949,12 @@ void ath11k_dp_rx_from_nss(struct ath11k
{
struct ieee80211_rx_status rx_status = {0};
struct ath11k_skb_rxcb *rxcb;
@ -246,7 +246,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
rx_status.flag |= RX_FLAG_SKIP_MONITOR | RX_FLAG_DUP_VALIDATED;
@@ -4324,6 +4423,7 @@ static int ath11k_dp_rx_h_null_q_desc(st
@@ -4387,6 +4486,7 @@ static int ath11k_dp_rx_h_null_q_desc(st
struct ieee80211_rx_status *status,
struct sk_buff_head *msdu_list)
{
@ -254,7 +254,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
u16 msdu_len;
struct hal_rx_desc *desc = (struct hal_rx_desc *)msdu->data;
struct rx_attention *rx_attention;
@@ -4373,7 +4473,8 @@ static int ath11k_dp_rx_h_null_q_desc(st
@@ -4436,7 +4536,8 @@ static int ath11k_dp_rx_h_null_q_desc(st
}
ath11k_dp_rx_h_ppdu(ar, desc, status);
@ -328,7 +328,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
bool (*rx_desc_get_mpdu_fc_valid)(struct hal_rx_desc *desc);
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -10197,6 +10197,14 @@ static int ath11k_mac_op_sta_state(struc
@@ -10234,6 +10234,14 @@ static int ath11k_mac_op_sta_state(struc
}
} else if (old_state == IEEE80211_STA_AUTHORIZED &&
new_state == IEEE80211_STA_ASSOC) {

View File

@ -34,7 +34,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
};
struct ath11k_skb_cb {
@@ -921,10 +922,13 @@ struct ath11k_dp_ring_bp_stats {
@@ -924,10 +925,13 @@ struct ath11k_dp_ring_bp_stats {
struct ath11k_soc_dp_tx_err_stats {
/* TCL Ring Descriptor unavailable */
u32 desc_na[DP_TCL_NUM_RING_MAX];
@ -295,7 +295,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
if (!skb_cb->vif) {
ieee80211_free_txskb(ar->hw, msdu);
return;
@@ -632,6 +663,7 @@ static void ath11k_dp_tx_complete_msdu(s
@@ -636,6 +667,7 @@ static void ath11k_dp_tx_complete_msdu(s
struct ath11k_peer *peer;
struct ath11k_sta *arsta;
struct rate_info rate;
@ -303,7 +303,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
if (WARN_ON_ONCE(ts->buf_rel_source != HAL_WBM_REL_SRC_MODULE_TQM)) {
/* Must not happen */
@@ -642,6 +674,20 @@ static void ath11k_dp_tx_complete_msdu(s
@@ -646,6 +678,20 @@ static void ath11k_dp_tx_complete_msdu(s
dma_unmap_single(ab->dev, skb_cb->paddr, msdu->len, DMA_TO_DEVICE);
@ -324,7 +324,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
if (unlikely(!rcu_access_pointer(ab->pdevs_active[ar->pdev_idx]))) {
ieee80211_free_txskb(ar->hw, msdu);
return;
@@ -696,7 +742,7 @@ static void ath11k_dp_tx_complete_msdu(s
@@ -704,7 +750,7 @@ static void ath11k_dp_tx_complete_msdu(s
spin_lock_bh(&ab->base_lock);
peer = ath11k_peer_find_by_id(ab, ts->peer_id);
@ -333,7 +333,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
ath11k_dbg(ab, ATH11K_DBG_DATA,
"dp_tx: failed to find the peer with peer_id %d\n",
ts->peer_id);
@@ -752,19 +798,36 @@ static inline void ath11k_dp_tx_status_p
@@ -760,19 +806,36 @@ static inline void ath11k_dp_tx_status_p
ts->rate_stats = 0;
}
@ -372,7 +372,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
spin_lock_bh(&status_ring->lock);
@@ -779,33 +842,27 @@ void ath11k_dp_tx_completion_handler(str
@@ -787,33 +850,27 @@ void ath11k_dp_tx_completion_handler(str
ath11k_hal_srng_dst_invalidate_entry(ab, status_ring, valid_entries);
@ -420,7 +420,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
ath11k_dp_tx_status_parse(ab, tx_status, &ts);
desc_id = FIELD_GET(BUFFER_ADDR_INFO1_SW_COOKIE,
@@ -838,7 +895,6 @@ void ath11k_dp_tx_completion_handler(str
@@ -846,7 +903,6 @@ void ath11k_dp_tx_completion_handler(str
wake_up(&ar->dp.tx_empty_waitq);
ath11k_dp_tx_complete_msdu(ar, msdu, &ts);
@ -430,7 +430,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -6387,12 +6387,22 @@ static void ath11k_mac_op_tx(struct ieee
@@ -6484,12 +6484,22 @@ static void ath11k_mac_op_tx(struct ieee
if (control->sta)
arsta = ath11k_sta_to_arsta(control->sta);
@ -454,7 +454,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
ieee80211_free_txskb(ar->hw, skb);
return;
}
@@ -7339,7 +7349,7 @@ err_vdev_del:
@@ -7445,7 +7455,7 @@ err_vdev_del:
idr_for_each(&ar->txmgmt_idr,
ath11k_mac_vif_txmgmt_idr_remove, vif);
@ -507,7 +507,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
},
{
.name = "qca6390 hw2.0",
@@ -359,7 +360,6 @@ static struct ath11k_hw_params ath11k_hw
@@ -362,7 +363,6 @@ static struct ath11k_hw_params ath11k_hw
.supports_regdb = false,
.fix_l1ss = true,
.credit_flow = false,
@ -515,7 +515,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
.hal_params = &ath11k_hw_hal_params_ipq8074,
.supports_dynamic_smps_6ghz = true,
.alloc_cacheable_memory = true,
@@ -385,6 +385,8 @@ static struct ath11k_hw_params ath11k_hw
@@ -388,6 +388,8 @@ static struct ath11k_hw_params ath11k_hw
.smp2p_wow_exit = false,
.support_fw_mac_sequence = false,
.support_dual_stations = false,
@ -524,7 +524,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
},
{
.name = "wcn6855 hw2.0",
@@ -2247,6 +2249,9 @@ int ath11k_core_pre_init(struct ath11k_b
@@ -2256,6 +2258,9 @@ int ath11k_core_pre_init(struct ath11k_b
if (nss_offload)
ab->nss.stats_enabled = 1;

View File

@ -36,7 +36,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
--- a/drivers/net/wireless/ath/ath11k/Makefile
+++ b/drivers/net/wireless/ath/ath11k/Makefile
@@ -28,6 +28,10 @@ ath11k-$(CPTCFG_ATH11K_SPECTRAL) += spec
@@ -29,6 +29,10 @@ ath11k-$(CPTCFG_ATH11K_SPECTRAL) += spec
ath11k-$(CONFIG_PM) += wow.o
ath11k-$(CPTCFG_ATH11K_NSS_SUPPORT) += nss.o
@ -1238,7 +1238,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -3476,6 +3476,18 @@ static void ath11k_mac_op_nss_bss_info_c
@@ -3563,6 +3563,18 @@ static void ath11k_mac_op_nss_bss_info_c
ath11k_warn(ar->ab, "failed to set ap_isolate in nss %d\n", ret);
}
@ -1257,7 +1257,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
mutex_unlock(&ar->conf_mutex);
}
@@ -10237,6 +10249,28 @@ static int ath11k_mac_op_sta_state(struc
@@ -10274,6 +10286,28 @@ static int ath11k_mac_op_sta_state(struc
return ret;
}
@ -1286,7 +1286,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
static const struct ieee80211_ops ath11k_ops = {
.tx = ath11k_mac_op_tx,
.wake_tx_queue = ieee80211_handle_wake_tx_queue,
@@ -10295,6 +10329,9 @@ static const struct ieee80211_ops ath11k
@@ -10332,6 +10366,9 @@ static const struct ieee80211_ops ath11k
.set_sar_specs = ath11k_mac_op_set_bios_sar_specs,
.remain_on_channel = ath11k_mac_op_remain_on_channel,
.cancel_remain_on_channel = ath11k_mac_op_cancel_remain_on_channel,
@ -1296,7 +1296,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
};
static void ath11k_mac_update_ch_list(struct ath11k *ar,
@@ -10804,6 +10841,8 @@ static int __ath11k_mac_register(struct
@@ -10844,6 +10881,8 @@ static int __ath11k_mac_register(struct
ieee80211_hw_set(ar->hw, SUPPORTS_NSS_OFFLOAD);
wiphy_ext_feature_set(ar->hw->wiphy,
NL80211_EXT_FEATURE_VLAN_OFFLOAD);
@ -3337,7 +3337,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
ATH11K_DBG_WMI = 0x00000002,
--- a/local-symbols
+++ b/local-symbols
@@ -164,6 +164,7 @@ ATH11K=
@@ -166,6 +166,7 @@ ATH11K=
ATH11K_AHB=
ATH11K_PCI=
ATH11K_NSS_SUPPORT=

View File

@ -23,7 +23,7 @@ Signed-off-by: Rameshkumar Sundaram <ramess@codeaurora.org>
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -7358,8 +7358,10 @@ err_vdev_del:
@@ -7464,8 +7464,10 @@ err_vdev_del:
kfree(arvif->vlan_keyid_map);
ath11k_peer_cleanup(ar, arvif->vdev_id);
@ -36,7 +36,7 @@ Signed-off-by: Rameshkumar Sundaram <ramess@codeaurora.org>
spin_lock_bh(&ab->dp.tx_ring[i].tx_idr_lock);
--- a/drivers/net/wireless/ath/ath11k/wmi.c
+++ b/drivers/net/wireless/ath/ath11k/wmi.c
@@ -6039,13 +6039,13 @@ static int wmi_process_tx_comp(struct at
@@ -6084,13 +6084,13 @@ static int wmi_process_tx_comp(struct at
struct ieee80211_tx_info *info;
struct ath11k_skb_cb *skb_cb;
struct ieee80211_hdr *hdr;
@ -51,7 +51,7 @@ Signed-off-by: Rameshkumar Sundaram <ramess@codeaurora.org>
spin_lock_bh(&ar->txmgmt_idr_lock);
msdu = idr_find(&ar->txmgmt_idr, tx_compl_param->desc_id);
@@ -6053,6 +6053,7 @@ static int wmi_process_tx_comp(struct at
@@ -6098,6 +6098,7 @@ static int wmi_process_tx_comp(struct at
ath11k_warn(ar->ab, "received mgmt tx compl for invalid msdu_id: %d\n",
tx_compl_param->desc_id);
spin_unlock_bh(&ar->txmgmt_idr_lock);
@ -59,7 +59,7 @@ Signed-off-by: Rameshkumar Sundaram <ramess@codeaurora.org>
return -ENOENT;
}
@@ -6061,6 +6062,28 @@ static int wmi_process_tx_comp(struct at
@@ -6106,6 +6107,28 @@ static int wmi_process_tx_comp(struct at
skb_cb = ATH11K_SKB_CB(msdu);
dma_unmap_single(ar->ab->dev, skb_cb->paddr, msdu->len, DMA_TO_DEVICE);
@ -88,7 +88,7 @@ Signed-off-by: Rameshkumar Sundaram <ramess@codeaurora.org>
info = IEEE80211_SKB_CB(msdu);
if ((!(info->flags & IEEE80211_TX_CTL_NO_ACK)) &&
@@ -6076,34 +6099,6 @@ static int wmi_process_tx_comp(struct at
@@ -6121,34 +6144,6 @@ static int wmi_process_tx_comp(struct at
*/
info->status.rates[0].idx = -1;

View File

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath11k/dp_rx.h
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.h
@@ -9,7 +9,7 @@
@@ -10,7 +10,7 @@
#include "rx_desc.h"
#include "debug.h"

View File

@ -46,7 +46,7 @@ Signed-off-by: Rameshkumar Sundaram <ramess@codeaurora.org>
--- a/drivers/net/wireless/ath/ath11k/ahb.c
+++ b/drivers/net/wireless/ath/ath11k/ahb.c
@@ -1239,6 +1239,7 @@ static void ath11k_ahb_remove_prepare(st
@@ -1265,6 +1265,7 @@ static void ath11k_ahb_remove_prepare(st
set_bit(ATH11K_FLAG_UNREGISTERING, &ab->dev_flags);
cancel_work_sync(&ab->restart_work);
cancel_work_sync(&ab->qmi.event_work);
@ -56,7 +56,7 @@ Signed-off-by: Rameshkumar Sundaram <ramess@codeaurora.org>
static void ath11k_ahb_free_resources(struct ath11k_base *ab)
--- a/drivers/net/wireless/ath/ath11k/core.c
+++ b/drivers/net/wireless/ath/ath11k/core.c
@@ -2316,6 +2316,7 @@ struct ath11k_base *ath11k_core_alloc(st
@@ -2325,6 +2325,7 @@ struct ath11k_base *ath11k_core_alloc(st
mutex_init(&ab->core_lock);
mutex_init(&ab->tbl_mtx_lock);
@ -64,7 +64,7 @@ Signed-off-by: Rameshkumar Sundaram <ramess@codeaurora.org>
spin_lock_init(&ab->base_lock);
mutex_init(&ab->vdev_id_11d_lock);
init_completion(&ab->reset_complete);
@@ -2329,6 +2330,8 @@ struct ath11k_base *ath11k_core_alloc(st
@@ -2338,6 +2339,8 @@ struct ath11k_base *ath11k_core_alloc(st
INIT_WORK(&ab->restart_work, ath11k_core_restart);
INIT_WORK(&ab->update_11d_work, ath11k_update_11d);
INIT_WORK(&ab->reset_work, ath11k_core_reset);
@ -83,7 +83,7 @@ Signed-off-by: Rameshkumar Sundaram <ramess@codeaurora.org>
#include "fw.h"
#define SM(_v, _f) (((_v) << _f##_LSB) & _f##_MASK)
@@ -1130,6 +1131,9 @@ struct ath11k_base {
@@ -1133,6 +1134,9 @@ struct ath11k_base {
u32 max_ast_index;
u32 num_ast_entries;

View File

@ -13,7 +13,7 @@ Signed-off-by: Venkateswara Naralasetty <quic_vnaralas@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/dp_tx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_tx.c
@@ -651,9 +651,41 @@ err_out:
@@ -655,9 +655,41 @@ err_out:
spin_unlock_bh(&ab->base_lock);
}
@ -56,7 +56,7 @@ Signed-off-by: Venkateswara Naralasetty <quic_vnaralas@quicinc.com>
{
struct ieee80211_tx_status status = { 0 };
struct ieee80211_rate_status status_rate = { 0 };
@@ -663,9 +695,11 @@ static void ath11k_dp_tx_complete_msdu(s
@@ -667,9 +699,11 @@ static void ath11k_dp_tx_complete_msdu(s
struct ath11k_peer *peer;
struct ath11k_sta *arsta;
struct rate_info rate;
@ -69,7 +69,7 @@ Signed-off-by: Venkateswara Naralasetty <quic_vnaralas@quicinc.com>
/* Must not happen */
return;
}
@@ -674,11 +708,14 @@ static void ath11k_dp_tx_complete_msdu(s
@@ -678,11 +712,14 @@ static void ath11k_dp_tx_complete_msdu(s
dma_unmap_single(ab->dev, skb_cb->paddr, msdu->len, DMA_TO_DEVICE);
@ -86,7 +86,7 @@ Signed-off-by: Venkateswara Naralasetty <quic_vnaralas@quicinc.com>
}
if (skb_has_frag_list(msdu)) {
kfree_skb_list(skb_shinfo(msdu)->frag_list);
@@ -688,6 +725,8 @@ static void ath11k_dp_tx_complete_msdu(s
@@ -692,6 +729,8 @@ static void ath11k_dp_tx_complete_msdu(s
return;
}
@ -95,7 +95,7 @@ Signed-off-by: Venkateswara Naralasetty <quic_vnaralas@quicinc.com>
if (unlikely(!rcu_access_pointer(ab->pdevs_active[ar->pdev_idx]))) {
ieee80211_free_txskb(ar->hw, msdu);
return;
@@ -704,10 +743,10 @@ static void ath11k_dp_tx_complete_msdu(s
@@ -708,10 +747,10 @@ static void ath11k_dp_tx_complete_msdu(s
/* skip tx rate update from ieee80211_status*/
info->status.rates[0].idx = -1;
@ -159,7 +159,7 @@ Signed-off-by: Venkateswara Naralasetty <quic_vnaralas@quicinc.com>
spin_unlock_bh(&ab->base_lock);
ieee80211_free_txskb(ar->hw, msdu);
return;
@@ -767,37 +806,6 @@ static void ath11k_dp_tx_complete_msdu(s
@@ -775,37 +814,6 @@ static void ath11k_dp_tx_complete_msdu(s
ieee80211_tx_status_ext(ar->hw, &status);
}
@ -197,7 +197,7 @@ Signed-off-by: Venkateswara Naralasetty <quic_vnaralas@quicinc.com>
static inline bool ath11k_dp_tx_completion_valid(struct hal_wbm_release_ring *desc)
{
struct htt_tx_wbm_completion *status_desc;
@@ -821,9 +829,9 @@ void ath11k_dp_tx_completion_handler(str
@@ -829,9 +837,9 @@ void ath11k_dp_tx_completion_handler(str
int hal_ring_id = dp->tx_ring[ring_id].tcl_comp_ring.ring_id, count = 0, i = 0;
struct hal_srng *status_ring = &ab->hal.srng_list[hal_ring_id];
struct sk_buff *msdu;
@ -208,7 +208,7 @@ Signed-off-by: Venkateswara Naralasetty <quic_vnaralas@quicinc.com>
u32 *desc;
u32 msdu_id, desc_id;
u8 mac_id;
@@ -863,14 +871,16 @@ void ath11k_dp_tx_completion_handler(str
@@ -871,14 +879,16 @@ void ath11k_dp_tx_completion_handler(str
while (count--) {
tx_status = &tx_ring->tx_status[i++];
@ -227,7 +227,7 @@ Signed-off-by: Venkateswara Naralasetty <quic_vnaralas@quicinc.com>
ath11k_dp_tx_process_htt_tx_complete(ab,
(void *)tx_status,
mac_id, msdu_id,
@@ -894,7 +904,7 @@ void ath11k_dp_tx_completion_handler(str
@@ -902,7 +912,7 @@ void ath11k_dp_tx_completion_handler(str
if (atomic_dec_and_test(&ar->dp.num_tx_pending))
wake_up(&ar->dp.tx_empty_waitq);

View File

@ -251,7 +251,7 @@ Signed-off-by: Venkateswara Naralasetty <quic_vnaralas@quicinc.com>
if (unlikely(!msdu)) {
ath11k_warn(ab, "htt tx completion for unknown msdu_id %d\n",
@@ -870,6 +881,7 @@ void ath11k_dp_tx_completion_handler(str
@@ -878,6 +889,7 @@ void ath11k_dp_tx_completion_handler(str
}
while (count--) {
@ -259,7 +259,7 @@ Signed-off-by: Venkateswara Naralasetty <quic_vnaralas@quicinc.com>
tx_status = &tx_ring->tx_status[i++];
desc_id = FIELD_GET(BUFFER_ADDR_INFO1_SW_COOKIE,
@@ -888,17 +900,19 @@ void ath11k_dp_tx_completion_handler(str
@@ -896,17 +908,19 @@ void ath11k_dp_tx_completion_handler(str
continue;
}

View File

@ -58,7 +58,7 @@ Signed-off-by: Venkateswara Naralasetty <quic_vnaralas@quicinc.com>
tcl_cmd.info3 = FIELD_PREP(HAL_TCL_DATA_CMD_INFO3_DSCP_TID_TABLE_IDX,
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -10727,6 +10727,8 @@ static int __ath11k_mac_register(struct
@@ -10767,6 +10767,8 @@ static int __ath11k_mac_register(struct
ieee80211_hw_set(ar->hw, USES_RSS);
}

View File

@ -16,7 +16,7 @@ Signed-off-by: Anilkumar Kolli <quic_akolli@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -5955,12 +5955,23 @@ int ath11k_dp_rx_process_mon_status(stru
@@ -6018,12 +6018,23 @@ int ath11k_dp_rx_process_mon_status(stru
pmon->mon_ppdu_status = DP_PPDU_STATUS_START;
}
@ -43,7 +43,7 @@ Signed-off-by: Anilkumar Kolli <quic_akolli@quicinc.com>
rcu_read_lock();
spin_lock_bh(&ab->base_lock);
peer = ath11k_peer_find_by_id(ab, ppdu_info->peer_id);
@@ -6284,6 +6295,13 @@ static int ath11k_dp_full_mon_process_rx
@@ -6347,6 +6358,13 @@ static int ath11k_dp_full_mon_process_rx
spin_lock_bh(&pmon->mon_lock);
@ -57,7 +57,7 @@ Signed-off-by: Anilkumar Kolli <quic_akolli@quicinc.com>
sw_mon_entries = &pmon->sw_mon_entries;
rx_mon_stats = &pmon->rx_mon_stats;
@@ -6323,7 +6341,6 @@ static int ath11k_dp_full_mon_process_rx
@@ -6386,7 +6404,6 @@ static int ath11k_dp_full_mon_process_rx
}
rx_mon_stats->dest_ppdu_done++;
@ -65,7 +65,7 @@ Signed-off-by: Anilkumar Kolli <quic_akolli@quicinc.com>
pmon->buf_state = DP_MON_STATUS_LAG;
pmon->mon_status_paddr = sw_mon_entries->mon_status_paddr;
pmon->hold_mon_dst_ring = true;
@@ -6354,16 +6371,10 @@ reap_status_ring:
@@ -6417,16 +6434,10 @@ reap_status_ring:
int ath11k_dp_rx_process_mon_rings(struct ath11k_base *ab, int mac_id,
struct napi_struct *napi, int budget)
{

View File

@ -38,7 +38,7 @@ Signed-off-by: Aditya Kumar Singh <quic_adisi@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/core.c
+++ b/drivers/net/wireless/ath/ath11k/core.c
@@ -1932,6 +1932,11 @@ static int ath11k_core_reconfigure_on_cr
@@ -1944,6 +1944,11 @@ static int ath11k_core_reconfigure_on_cr
clear_bit(ATH11K_FLAG_CRASH_FLUSH, &ab->dev_flags);

View File

@ -57,7 +57,7 @@ Signed-off-by: Nagarajan Maran <quic_nmaran@quicinc.com>
spin_unlock_bh(&rx_ring->idr_lock);
if (buf_id <= 0)
goto fail_dma_unmap;
@@ -3142,6 +3142,16 @@ try_again:
@@ -3141,6 +3141,16 @@ try_again:
while (likely(desc =
(struct hal_reo_dest_ring *)ath11k_hal_srng_dst_get_next_entry(ab,
srng))) {
@ -74,7 +74,7 @@ Signed-off-by: Nagarajan Maran <quic_nmaran@quicinc.com>
cookie = FIELD_GET(BUFFER_ADDR_INFO1_SW_COOKIE,
desc->buf_addr_info.info1);
buf_id = FIELD_GET(DP_RXDMA_BUF_COOKIE_BUF_ID,
@@ -3172,8 +3182,6 @@ try_again:
@@ -3171,8 +3181,6 @@ try_again:
num_buffs_reaped[mac_id]++;

View File

@ -17,7 +17,7 @@ Signed-off-by: Karthikeyan Kathirvel <quic_kathirve@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -4902,12 +4902,6 @@ static int ath11k_station_disassoc(struc
@@ -4991,12 +4991,6 @@ static int ath11k_station_disassoc(struc
return ret;
}
@ -30,7 +30,7 @@ Signed-off-by: Karthikeyan Kathirvel <quic_kathirve@quicinc.com>
return 0;
}
@@ -10149,6 +10143,17 @@ static int ath11k_mac_op_sta_state(struc
@@ -10186,6 +10180,17 @@ static int ath11k_mac_op_sta_state(struc
arsta->bw = ath11k_mac_ieee80211_sta_bw_to_wmi(ar, sta);
arsta->bw_prev = arsta->bw;
spin_unlock_bh(&ar->data_lock);

View File

@ -41,7 +41,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/core.h
+++ b/drivers/net/wireless/ath/ath11k/core.h
@@ -940,6 +940,9 @@ struct ath11k_soc_dp_stats {
@@ -943,6 +943,9 @@ struct ath11k_soc_dp_stats {
u32 rxdma_error[HAL_REO_ENTR_RING_RXDMA_ECODE_MAX];
u32 reo_error[HAL_REO_DEST_RING_ERROR_CODE_MAX];
u32 hal_reo_error[DP_REO_DST_RING_MAX];
@ -74,7 +74,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
if (len > size)
--- a/drivers/net/wireless/ath/ath11k/dp.c
+++ b/drivers/net/wireless/ath/ath11k/dp.c
@@ -1116,8 +1116,10 @@ int ath11k_dp_alloc(struct ath11k_base *
@@ -1115,8 +1115,10 @@ int ath11k_dp_alloc(struct ath11k_base *
INIT_LIST_HEAD(&dp->reo_cmd_list);
INIT_LIST_HEAD(&dp->reo_cmd_cache_flush_list);

View File

@ -36,7 +36,7 @@ Signed-off-by: Rajat Soni <quic_rajson@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -6496,7 +6496,9 @@ static int ath11k_mac_op_start(struct ie
@@ -6593,7 +6593,9 @@ static int ath11k_mac_op_start(struct ie
break;
case ATH11K_STATE_RESTARTING:
ar->state = ATH11K_STATE_RESTARTED;

View File

@ -27,7 +27,7 @@ Signed-off-by: Hari Chandrakanthan <quic_haric@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -8655,6 +8655,8 @@ static int ath11k_mac_flush_tx_complete(
@@ -8688,6 +8688,8 @@ static int ath11k_mac_flush_tx_complete(
ret = -ETIMEDOUT;
}

View File

@ -13,7 +13,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -10718,6 +10718,7 @@ static int __ath11k_mac_register(struct
@@ -10758,6 +10758,7 @@ static int __ath11k_mac_register(struct
ieee80211_hw_set(ar->hw, QUEUE_CONTROL);
ieee80211_hw_set(ar->hw, SUPPORTS_TX_FRAG);
ieee80211_hw_set(ar->hw, REPORTS_LOW_ACK);

View File

@ -48,7 +48,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -6094,7 +6094,9 @@ int ath11k_dp_rx_process_mon_status(stru
@@ -6089,7 +6089,9 @@ int ath11k_dp_rx_process_mon_status(stru
if (!num_buffs_reaped)
goto exit;
@ -59,7 +59,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
ppdu_info->peer_id = HAL_INVALID_PEERID;
while ((skb = __skb_dequeue(&skb_list))) {
@@ -6112,7 +6114,6 @@ int ath11k_dp_rx_process_mon_status(stru
@@ -6107,7 +6109,6 @@ int ath11k_dp_rx_process_mon_status(stru
if (log_type != ATH11K_PKTLOG_TYPE_INVALID)
trace_ath11k_htt_rxdesc(ar, skb->data, log_type, rx_buf_sz);
@ -67,7 +67,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
ppdu_info->peer_id = HAL_INVALID_PEERID;
hal_status = ath11k_hal_rx_parse_mon_status(ab, ppdu_info, skb);
@@ -6140,6 +6141,7 @@ int ath11k_dp_rx_process_mon_status(stru
@@ -6135,6 +6136,7 @@ int ath11k_dp_rx_process_mon_status(stru
if ((ppdu_info->peer_id == HAL_INVALID_PEERID ||
hal_status != HAL_RX_MON_STATUS_PPDU_DONE)) {
dev_kfree_skb_any(skb);

View File

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath11k/Kconfig
+++ b/drivers/net/wireless/ath/ath11k/Kconfig
@@ -80,6 +80,24 @@ config ATH11K_DEBUGFS
@@ -81,6 +81,24 @@ config ATH11K_DEBUGFS
If unsure, say Y to make it easier to debug problems.
@ -27,9 +27,9 @@
depends on ATH11K && EVENT_TRACING
--- a/drivers/net/wireless/ath/ath11k/Makefile
+++ b/drivers/net/wireless/ath/ath11k/Makefile
@@ -20,7 +20,9 @@ ath11k-y += core.o \
pcic.o \
fw.o
@@ -21,7 +21,9 @@ ath11k-y += core.o \
fw.o \
p2p.o
-ath11k-$(CPTCFG_ATH11K_DEBUGFS) += debugfs.o debugfs_htt_stats.o debugfs_sta.o
+ath11k-$(CPTCFG_ATH11K_DEBUGFS) += debugfs.o
@ -153,7 +153,7 @@
#include "hw.h"
#include "peer.h"
#include "mac.h"
@@ -550,7 +552,9 @@ static void ath11k_dp_tx_cache_peer_stat
@@ -554,7 +556,9 @@ static void ath11k_dp_tx_cache_peer_stat
void ath11k_dp_tx_update_txcompl(struct ath11k *ar, struct hal_tx_status *ts)
{
struct ath11k_base *ab = ar->ab;
@ -163,7 +163,7 @@
enum hal_tx_rate_stats_pkt_type pkt_type;
enum hal_tx_rate_stats_sgi sgi;
enum hal_tx_rate_stats_bw bw;
@@ -639,8 +643,10 @@ void ath11k_dp_tx_update_txcompl(struct
@@ -643,8 +647,10 @@ void ath11k_dp_tx_update_txcompl(struct
ath11k_mac_he_ru_tones_to_nl80211_he_ru_alloc(ru_tones);
}
@ -176,7 +176,7 @@
spin_unlock_bh(&ab->base_lock);
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -10327,7 +10327,7 @@ static const struct ieee80211_ops ath11k
@@ -10364,7 +10364,7 @@ static const struct ieee80211_ops ath11k
.set_wakeup = ath11k_wow_op_set_wakeup,
#endif
@ -187,7 +187,7 @@
#endif
--- a/local-symbols
+++ b/local-symbols
@@ -169,6 +169,8 @@ ATH11K_MEM_PROFILE_256M=
@@ -171,6 +171,8 @@ ATH11K_MEM_PROFILE_256M=
ATH11K_MEM_PROFILE_512M=
ATH11K_DEBUG=
ATH11K_DEBUGFS=

View File

@ -58,7 +58,7 @@ Signed-off-by: Aishwarya R <quic_aisr@quicinc.com>
if (unlikely(!msdu)) {
ath11k_warn(ab, "htt tx completion for unknown msdu_id %d\n",
@@ -890,12 +896,14 @@ void ath11k_dp_tx_completion_handler(str
@@ -898,12 +904,14 @@ void ath11k_dp_tx_completion_handler(str
continue;
}

View File

@ -228,7 +228,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
static void ath11k_dp_service_mon_ring(struct timer_list *t)
{
struct ath11k_base *ab = from_timer(ab, t, mon_reap_timer);
@@ -2390,6 +2425,49 @@ int ath11k_dp_rx_crypto_icv_len(struct a
@@ -2389,6 +2424,49 @@ int ath11k_dp_rx_crypto_icv_len(struct a
return 0;
}
@ -278,7 +278,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
static void ath11k_dp_rx_h_undecap_nwifi(struct ath11k *ar,
struct sk_buff *msdu,
u8 *first_hdr,
@@ -2403,7 +2481,8 @@ static void ath11k_dp_rx_h_undecap_nwifi
@@ -2402,7 +2480,8 @@ static void ath11k_dp_rx_h_undecap_nwifi
u8 da[ETH_ALEN];
u8 sa[ETH_ALEN];
u16 qos_ctl = 0;
@ -288,7 +288,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
/* copy SA & DA and pull decapped header */
hdr = (struct ieee80211_hdr *)msdu->data;
@@ -2412,7 +2491,7 @@ static void ath11k_dp_rx_h_undecap_nwifi
@@ -2411,7 +2490,7 @@ static void ath11k_dp_rx_h_undecap_nwifi
ether_addr_copy(sa, ieee80211_get_SA(hdr));
skb_pull(msdu, ieee80211_hdrlen(hdr->frame_control));
@ -297,7 +297,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
/* original 802.11 header is valid for the first msdu
* hence we can reuse the same header
*/
@@ -2442,16 +2521,23 @@ static void ath11k_dp_rx_h_undecap_nwifi
@@ -2441,16 +2520,23 @@ static void ath11k_dp_rx_h_undecap_nwifi
/* copy decap header before overwriting for reuse below */
memcpy(decap_hdr, (uint8_t *)hdr, hdr_len);
@ -326,7 +326,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
memcpy(skb_push(msdu,
IEEE80211_QOS_CTL_LEN), &qos_ctl,
IEEE80211_QOS_CTL_LEN);
@@ -2567,6 +2653,20 @@ static void ath11k_dp_rx_h_undecap_eth(s
@@ -2566,6 +2652,20 @@ static void ath11k_dp_rx_h_undecap_eth(s
u8 da[ETH_ALEN];
u8 sa[ETH_ALEN];
void *rfc1042;
@ -347,7 +347,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
rfc1042 = ath11k_dp_rx_h_find_rfc1042(ar, msdu, enctype);
if (WARN_ON_ONCE(!rfc1042))
@@ -2595,6 +2695,7 @@ static void ath11k_dp_rx_h_undecap_eth(s
@@ -2594,6 +2694,7 @@ static void ath11k_dp_rx_h_undecap_eth(s
memcpy(skb_push(msdu, hdr_len), hdr, hdr_len);
@ -355,7 +355,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
/* original 802.11 header has a different DA and in
* case of 4addr it may also have different SA
*/
@@ -2613,6 +2714,7 @@ static void ath11k_dp_rx_h_undecap_snap(
@@ -2612,6 +2713,7 @@ static void ath11k_dp_rx_h_undecap_snap(
size_t hdr_len;
u8 l3_pad_bytes;
struct hal_rx_desc *rx_desc;
@ -363,7 +363,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
/* Delivered decapped frame:
* [amsdu header] <-- replaced with 802.11 hdr
@@ -2626,6 +2728,11 @@ static void ath11k_dp_rx_h_undecap_snap(
@@ -2625,6 +2727,11 @@ static void ath11k_dp_rx_h_undecap_snap(
skb_put(msdu, l3_pad_bytes);
skb_pull(msdu, sizeof(struct ath11k_dp_amsdu_subframe_hdr) + l3_pad_bytes);
@ -375,7 +375,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
hdr = (struct ieee80211_hdr *)first_hdr;
hdr_len = ieee80211_hdrlen(hdr->frame_control);
@@ -3099,6 +3206,20 @@ static int ath11k_dp_rx_process_msdu(str
@@ -3098,6 +3205,20 @@ static int ath11k_dp_rx_process_msdu(str
goto free_out;
}
@ -396,7 +396,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
rxcb = ATH11K_SKB_RXCB(msdu);
rxcb->rx_desc = rx_desc;
msdu_len = ath11k_dp_rx_h_msdu_start_msdu_len(ab, rx_desc);
@@ -3111,8 +3232,9 @@ static int ath11k_dp_rx_process_msdu(str
@@ -3110,8 +3231,9 @@ static int ath11k_dp_rx_process_msdu(str
hdr_status = ath11k_dp_rx_h_80211_hdr(ab, rx_desc);
ret = -EINVAL;
ath11k_warn(ab, "invalid msdu len %u\n", msdu_len);
@ -408,7 +408,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
ath11k_dbg_dump(ab, ATH11K_DBG_DATA, NULL, "", rx_desc,
sizeof(struct hal_rx_desc));
goto free_out;
@@ -4075,6 +4197,7 @@ static int ath11k_dp_rx_h_verify_tkip_mi
@@ -4070,6 +4192,7 @@ static int ath11k_dp_rx_h_verify_tkip_mi
hdr = (struct ieee80211_hdr *)(msdu->data + hal_rx_desc_sz);
hdr_len = ieee80211_hdrlen(hdr->frame_control);
@ -416,7 +416,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
head_len = hdr_len + hal_rx_desc_sz + IEEE80211_TKIP_IV_LEN;
tail_len = IEEE80211_CCMP_MIC_LEN + IEEE80211_TKIP_ICV_LEN + FCS_LEN;
@@ -4355,8 +4478,8 @@ static void ath11k_dp_rx_h_sort_frags(st
@@ -4350,8 +4473,8 @@ static void ath11k_dp_rx_h_sort_frags(st
static u64 ath11k_dp_rx_h_get_pn(struct ath11k *ar, struct sk_buff *skb)
{
@ -426,7 +426,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
u8 *ehdr;
u32 hal_rx_desc_sz = ar->ab->hw_params.hal_desc_sz;
@@ -4586,8 +4709,9 @@ ath11k_dp_process_rx_err_buf(struct ath1
@@ -4581,8 +4704,9 @@ ath11k_dp_process_rx_err_buf(struct ath1
if ((msdu_len + hal_rx_desc_sz) > DP_RX_BUFFER_SIZE) {
hdr_status = ath11k_dp_rx_h_80211_hdr(ar->ab, rx_desc);
ath11k_warn(ar->ab, "invalid msdu leng %u", msdu_len);
@ -438,7 +438,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
ath11k_dbg_dump(ar->ab, ATH11K_DBG_DATA, NULL, "", rx_desc,
sizeof(struct hal_rx_desc));
dev_kfree_skb_any(msdu);
@@ -5212,6 +5336,47 @@ void ath11k_dp_rx_pdev_free(struct ath11
@@ -5207,6 +5331,47 @@ void ath11k_dp_rx_pdev_free(struct ath11
ath11k_dp_rxdma_pdev_buf_free(ar);
}
@ -486,7 +486,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
int ath11k_dp_rx_pdev_alloc(struct ath11k_base *ab, int mac_id)
{
struct ath11k *ar = ab->pdevs[mac_id].ar;
@@ -5305,6 +5470,12 @@ config_refill_ring:
@@ -5300,6 +5465,12 @@ config_refill_ring:
}
}
@ -501,7 +501,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
--- a/drivers/net/wireless/ath/ath11k/dp_tx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_tx.c
@@ -1275,6 +1275,8 @@ int ath11k_dp_tx_htt_rx_filter_setup(str
@@ -1283,6 +1283,8 @@ int ath11k_dp_tx_htt_rx_filter_setup(str
!!(params.flags & HAL_SRNG_FLAGS_MSI_SWAP));
cmd->info0 |= FIELD_PREP(HTT_RX_RING_SELECTION_CFG_CMD_INFO0_PS,
!!(params.flags & HAL_SRNG_FLAGS_DATA_TLV_SWAP));
@ -510,7 +510,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
cmd->info1 = FIELD_PREP(HTT_RX_RING_SELECTION_CFG_CMD_INFO1_BUF_SIZE,
rx_buf_size);
@@ -1284,6 +1286,26 @@ int ath11k_dp_tx_htt_rx_filter_setup(str
@@ -1292,6 +1294,26 @@ int ath11k_dp_tx_htt_rx_filter_setup(str
cmd->pkt_type_en_flags3 = tlv_filter->pkt_filter_flags3;
cmd->rx_filter_tlv = tlv_filter->rx_filter;
@ -537,7 +537,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
ret = ath11k_htc_send(&ab->htc, ab->dp.eid, skb);
if (ret)
goto err_free;
@@ -1362,6 +1384,7 @@ int ath11k_dp_tx_htt_monitor_mode_ring_c
@@ -1370,6 +1392,7 @@ int ath11k_dp_tx_htt_monitor_mode_ring_c
}
ring_id = dp->rxdma_mon_buf_ring.refill_buf_ring.ring_id;

View File

@ -28,7 +28,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
}
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -3386,18 +3386,16 @@ try_again:
@@ -3385,18 +3385,16 @@ try_again:
ar = ab->pdevs[mac_id].ar;
rx_ring = &ar->dp.rx_refill_buf_ring;
spin_lock_bh(&rx_ring->idr_lock);
@ -50,7 +50,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
dma_unmap_single(ab->dev, rxcb->paddr,
msdu->len + skb_tailroom(msdu),
DMA_FROM_DEVICE);
@@ -4672,17 +4670,14 @@ ath11k_dp_process_rx_err_buf(struct ath1
@@ -4667,17 +4665,14 @@ ath11k_dp_process_rx_err_buf(struct ath1
u32 hal_rx_desc_sz = ar->ab->hw_params.hal_desc_sz;
spin_lock_bh(&rx_ring->idr_lock);
@ -70,7 +70,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
rxcb = ATH11K_SKB_RXCB(msdu);
dma_unmap_single(ar->ab->dev, rxcb->paddr,
msdu->len + skb_tailroom(msdu),
@@ -5088,18 +5083,16 @@ int ath11k_dp_rx_process_wbm_err(struct
@@ -5083,18 +5078,16 @@ int ath11k_dp_rx_process_wbm_err(struct
rx_ring = &ar->dp.rx_refill_buf_ring;
spin_lock_bh(&rx_ring->idr_lock);
@ -92,7 +92,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
dma_unmap_single(ab->dev, rxcb->paddr,
msdu->len + skb_tailroom(msdu),
DMA_FROM_DEVICE);
@@ -5214,16 +5207,14 @@ int ath11k_dp_process_rxdma_err(struct a
@@ -5209,16 +5202,14 @@ int ath11k_dp_process_rxdma_err(struct a
msdu_cookies[i]);
spin_lock_bh(&rx_ring->idr_lock);
@ -111,7 +111,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
rxcb = ATH11K_SKB_RXCB(skb);
dma_unmap_single(ab->dev, rxcb->paddr,
@@ -6428,16 +6419,14 @@ ath11k_dp_rx_full_mon_mpdu_pop(struct at
@@ -6423,16 +6414,14 @@ ath11k_dp_rx_full_mon_mpdu_pop(struct at
msdu_list.sw_cookie[i]);
spin_lock_bh(&rx_ring->idr_lock);

View File

@ -18,7 +18,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/core.h
+++ b/drivers/net/wireless/ath/ath11k/core.h
@@ -700,6 +700,11 @@ struct ath11k_per_peer_tx_stats {
@@ -703,6 +703,11 @@ struct ath11k_per_peer_tx_stats {
#define ATH11K_FLUSH_TIMEOUT (5 * HZ)
#define ATH11K_VDEV_DELETE_TIMEOUT_HZ (5 * HZ)
@ -30,7 +30,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
struct ath11k {
struct ath11k_base *ab;
struct ath11k_pdev *pdev;
@@ -849,6 +854,7 @@ struct ath11k {
@@ -852,6 +857,7 @@ struct ath11k {
bool ps_state_enable;
bool ps_timekeeper_enable;
s8 max_allowed_tx_power;
@ -40,7 +40,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
struct ath11k_band_cap {
--- a/drivers/net/wireless/ath/ath11k/dp.c
+++ b/drivers/net/wireless/ath/ath11k/dp.c
@@ -911,7 +911,7 @@ int ath11k_dp_service_srng(struct ath11k
@@ -910,7 +910,7 @@ int ath11k_dp_service_srng(struct ath11k
hal_params = ab->hw_params.hal_params;
ath11k_dp_rxbufs_replenish(ab, id, rx_ring, 0,
@ -114,7 +114,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
return 0;
}
@@ -3348,11 +3367,14 @@ int ath11k_dp_process_rx(struct ath11k_b
@@ -3347,11 +3366,14 @@ int ath11k_dp_process_rx(struct ath11k_b
struct ath11k *ar;
struct hal_reo_dest_ring *desc;
enum hal_reo_dest_ring_push_reason push_reason;
@ -130,7 +130,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
srng = &ab->hal.srng_list[dp->reo_dst_ring[ring_id].ring_id];
@@ -3385,8 +3407,15 @@ try_again:
@@ -3384,8 +3406,15 @@ try_again:
ar = ab->pdevs[mac_id].ar;
rx_ring = &ar->dp.rx_refill_buf_ring;
@ -147,7 +147,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
spin_unlock_bh(&rx_ring->idr_lock);
if (unlikely(!msdu)) {
ath11k_warn(ab, "frame rx with invalid buf_id %d\n",
@@ -3464,9 +3493,12 @@ try_again:
@@ -3463,9 +3492,12 @@ try_again:
rx_ring = &ar->dp.rx_refill_buf_ring;
ath11k_dp_rxbufs_replenish(ab, i, rx_ring, num_buffs_reaped[i],
@ -161,7 +161,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
return total_msdu_reaped;
}
@@ -4832,7 +4864,7 @@ exit:
@@ -4827,7 +4859,7 @@ exit:
rx_ring = &ar->dp.rx_refill_buf_ring;
ath11k_dp_rxbufs_replenish(ab, i, rx_ring, n_bufs_reaped[i],
@ -170,7 +170,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
}
return tot_n_bufs_reaped;
@@ -5048,14 +5080,17 @@ int ath11k_dp_rx_process_wbm_err(struct
@@ -5043,14 +5075,17 @@ int ath11k_dp_rx_process_wbm_err(struct
struct sk_buff *msdu;
struct sk_buff_head msdu_list[MAX_RADIOS];
struct ath11k_skb_rxcb *rxcb;
@ -189,7 +189,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
srng = &ab->hal.srng_list[dp->rx_rel_ring.ring_id];
@@ -5081,9 +5116,15 @@ int ath11k_dp_rx_process_wbm_err(struct
@@ -5076,9 +5111,15 @@ int ath11k_dp_rx_process_wbm_err(struct
ar = ab->pdevs[mac_id].ar;
rx_ring = &ar->dp.rx_refill_buf_ring;
@ -206,7 +206,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
spin_unlock_bh(&rx_ring->idr_lock);
if (!msdu) {
ath11k_warn(ab, "frame rx with invalid buf_id %d pdev %d\n",
@@ -5128,7 +5169,7 @@ int ath11k_dp_rx_process_wbm_err(struct
@@ -5123,7 +5164,7 @@ int ath11k_dp_rx_process_wbm_err(struct
rx_ring = &ar->dp.rx_refill_buf_ring;
ath11k_dp_rxbufs_replenish(ab, i, rx_ring, num_buffs_reaped[i],
@ -215,7 +215,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
}
rcu_read_lock();
@@ -5150,6 +5191,8 @@ int ath11k_dp_rx_process_wbm_err(struct
@@ -5145,6 +5186,8 @@ int ath11k_dp_rx_process_wbm_err(struct
}
rcu_read_unlock();
done:
@ -224,7 +224,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
return total_num_buffs_reaped;
}
@@ -5235,7 +5278,7 @@ int ath11k_dp_process_rxdma_err(struct a
@@ -5230,7 +5273,7 @@ int ath11k_dp_process_rxdma_err(struct a
if (num_buf_freed)
ath11k_dp_rxbufs_replenish(ab, mac_id, rx_ring, num_buf_freed,
@ -233,7 +233,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
return budget - quota;
}
@@ -6181,12 +6224,12 @@ static void ath11k_dp_rx_mon_dest_proces
@@ -6176,12 +6219,12 @@ static void ath11k_dp_rx_mon_dest_proces
ath11k_dp_rxbufs_replenish(ar->ab, dp->mac_id,
&dp->rxdma_mon_buf_ring,
rx_bufs_used,
@ -248,7 +248,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
}
}
@@ -6696,7 +6739,7 @@ next_entry:
@@ -6691,7 +6734,7 @@ next_entry:
ath11k_dp_rxbufs_replenish(ar->ab, dp->mac_id,
&dp->rxdma_mon_buf_ring,
rx_bufs_used,
@ -259,7 +259,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
reap_status_ring:
--- a/drivers/net/wireless/ath/ath11k/dp_rx.h
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.h
@@ -11,6 +11,8 @@
@@ -12,6 +12,8 @@
#define DP_MAX_NWIFI_HDR_LEN 36
@ -268,7 +268,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
#define DP_RX_MPDU_ERR_FCS BIT(0)
#define DP_RX_MPDU_ERR_DECRYPT BIT(1)
#define DP_RX_MPDU_ERR_TKIP_MIC BIT(2)
@@ -125,7 +127,8 @@ int ath11k_dp_process_rx(struct ath11k_b
@@ -126,7 +128,8 @@ int ath11k_dp_process_rx(struct ath11k_b
int ath11k_dp_rxbufs_replenish(struct ath11k_base *ab, int mac_id,
struct dp_rxdma_ring *rx_ring,
int req_entries,

View File

@ -35,7 +35,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -2455,16 +2455,27 @@ static void ath11k_get_dot11_hdr_from_rx
@@ -2454,16 +2454,27 @@ static void ath11k_get_dot11_hdr_from_rx
size_t hdr_len, crypto_len;
struct ieee80211_hdr *hdr;
u16 fc, qos_ctl = 0;
@ -63,7 +63,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
skb_push(msdu, hdr_len);
hdr = (struct ieee80211_hdr *)msdu->data;
hdr->frame_control = fc;
@@ -2500,6 +2511,7 @@ static void ath11k_dp_rx_h_undecap_nwifi
@@ -2499,6 +2510,7 @@ static void ath11k_dp_rx_h_undecap_nwifi
u8 da[ETH_ALEN];
u8 sa[ETH_ALEN];
u16 qos_ctl = 0;
@ -71,7 +71,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
u8 *qos, *crypto_hdr;
bool add_qos_ctrl = false;
@@ -2544,26 +2556,46 @@ static void ath11k_dp_rx_h_undecap_nwifi
@@ -2543,26 +2555,46 @@ static void ath11k_dp_rx_h_undecap_nwifi
}
if (!(status->flag & RX_FLAG_IV_STRIPPED)) {
@ -123,7 +123,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
memcpy(skb_push(msdu, hdr_len), hdr, hdr_len);
/* original 802.11 header has a different DA and in
@@ -2672,6 +2704,7 @@ static void ath11k_dp_rx_h_undecap_eth(s
@@ -2671,6 +2703,7 @@ static void ath11k_dp_rx_h_undecap_eth(s
u8 da[ETH_ALEN];
u8 sa[ETH_ALEN];
void *rfc1042;
@ -131,7 +131,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
struct ath11k_skb_rxcb *rxcb = ATH11K_SKB_RXCB(msdu);
struct ath11k_dp_rfc1042_hdr rfc = {0xaa, 0xaa, 0x03, {0x00, 0x00, 0x00}};
@@ -2681,6 +2714,11 @@ static void ath11k_dp_rx_h_undecap_eth(s
@@ -2680,6 +2713,11 @@ static void ath11k_dp_rx_h_undecap_eth(s
ether_addr_copy(sa, eth->h_source);
rfc.snap_type = eth->h_proto;
skb_pull(msdu, sizeof(struct ethhdr));
@ -143,7 +143,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
memcpy(skb_push(msdu, sizeof(struct ath11k_dp_rfc1042_hdr)), &rfc,
sizeof(struct ath11k_dp_rfc1042_hdr));
ath11k_get_dot11_hdr_from_rx_desc(ar, msdu, rxcb, status, enctype);
@@ -2698,6 +2736,11 @@ static void ath11k_dp_rx_h_undecap_eth(s
@@ -2697,6 +2735,11 @@ static void ath11k_dp_rx_h_undecap_eth(s
skb_pull(msdu, sizeof(struct ethhdr));
/* push rfc1042/llc/snap */
@ -155,7 +155,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
memcpy(skb_push(msdu, sizeof(struct ath11k_dp_rfc1042_hdr)), rfc1042,
sizeof(struct ath11k_dp_rfc1042_hdr));
@@ -2706,12 +2749,22 @@ static void ath11k_dp_rx_h_undecap_eth(s
@@ -2705,12 +2748,22 @@ static void ath11k_dp_rx_h_undecap_eth(s
hdr_len = ieee80211_hdrlen(hdr->frame_control);
if (!(status->flag & RX_FLAG_IV_STRIPPED)) {
@ -182,7 +182,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
memcpy(skb_push(msdu, hdr_len), hdr, hdr_len);
exit:
@@ -2732,6 +2785,7 @@ static void ath11k_dp_rx_h_undecap_snap(
@@ -2731,6 +2784,7 @@ static void ath11k_dp_rx_h_undecap_snap(
struct ieee80211_hdr *hdr;
size_t hdr_len;
u8 l3_pad_bytes;
@ -190,7 +190,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
struct hal_rx_desc *rx_desc;
struct ath11k_skb_rxcb *rxcb = ATH11K_SKB_RXCB(msdu);
@@ -2756,12 +2810,22 @@ static void ath11k_dp_rx_h_undecap_snap(
@@ -2755,12 +2809,22 @@ static void ath11k_dp_rx_h_undecap_snap(
hdr_len = ieee80211_hdrlen(hdr->frame_control);
if (!(status->flag & RX_FLAG_IV_STRIPPED)) {
@ -217,7 +217,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
memcpy(skb_push(msdu, hdr_len), hdr, hdr_len);
}
@@ -2890,7 +2954,7 @@ static void ath11k_dp_rx_h_mpdu(struct a
@@ -2889,7 +2953,7 @@ static void ath11k_dp_rx_h_mpdu(struct a
struct ieee80211_rx_status *rx_status,
bool *fast_rx)
{
@ -226,7 +226,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
enum hal_encrypt_type enctype;
bool is_decrypted = false;
struct ath11k_skb_rxcb *rxcb;
@@ -3123,10 +3187,16 @@ static void ath11k_dp_rx_deliver_msdu(st
@@ -3122,10 +3186,16 @@ static void ath11k_dp_rx_deliver_msdu(st
u8 decap = DP_RX_DECAP_TYPE_RAW;
bool is_mcbc = rxcb->is_mcbc;
bool is_eapol = rxcb->is_eapol;
@ -243,7 +243,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
he = skb_push(msdu, sizeof(known));
memcpy(he, &known, sizeof(known));
status->flag |= RX_FLAG_RADIOTAP_HE;
@@ -3182,6 +3252,7 @@ static void ath11k_dp_rx_deliver_msdu(st
@@ -3181,6 +3251,7 @@ static void ath11k_dp_rx_deliver_msdu(st
!(is_mcbc && rx_status->flag & RX_FLAG_DECRYPTED))
rx_status->flag |= RX_FLAG_8023;

View File

@ -60,7 +60,7 @@ Signed-off-by: Rameshkumar Sundaram <quic_ramess@quicinc.com>
enum wmi_sta_keepalive_method method,
--- a/drivers/net/wireless/ath/ath11k/wmi.c
+++ b/drivers/net/wireless/ath/ath11k/wmi.c
@@ -1874,9 +1874,10 @@ int ath11k_wmi_bcn_tmpl(struct ath11k *a
@@ -1918,9 +1918,10 @@ int ath11k_wmi_bcn_tmpl(struct ath11k *a
cmd->vdev_id = vdev_id;
cmd->tim_ie_offset = offs->tim_offset;
@ -72,7 +72,7 @@ Signed-off-by: Rameshkumar Sundaram <quic_ramess@quicinc.com>
}
cmd->buf_len = bcn->len;
@@ -7567,7 +7568,6 @@ static void ath11k_bcn_tx_status_event(s
@@ -7612,7 +7613,6 @@ static void ath11k_bcn_tx_status_event(s
rcu_read_unlock();
return;
}
@ -80,7 +80,7 @@ Signed-off-by: Rameshkumar Sundaram <quic_ramess@quicinc.com>
rcu_read_unlock();
}
@@ -8481,10 +8481,7 @@ ath11k_wmi_process_csa_switch_count_even
@@ -8526,10 +8526,7 @@ ath11k_wmi_process_csa_switch_count_even
{
int i;
struct ath11k_vif *arvif;
@ -92,7 +92,7 @@ Signed-off-by: Rameshkumar Sundaram <quic_ramess@quicinc.com>
rcu_read_lock();
for (i = 0; i < ev->num_vdevs; i++) {
@@ -8496,8 +8493,18 @@ ath11k_wmi_process_csa_switch_count_even
@@ -8541,8 +8538,18 @@ ath11k_wmi_process_csa_switch_count_even
continue;
}

View File

@ -137,7 +137,7 @@
#define ATH11K_HWMON_NAME_LEN 15
--- a/drivers/net/wireless/ath/ath11k/wmi.c
+++ b/drivers/net/wireless/ath/ath11k/wmi.c
@@ -3193,6 +3193,7 @@ ath11k_wmi_send_thermal_mitigation_param
@@ -3237,6 +3237,7 @@ ath11k_wmi_send_thermal_mitigation_param
lvl_conf->temp_hwm = param->levelconf[i].tmphwm;
lvl_conf->dc_off_percent = param->levelconf[i].dcoffpercent;
lvl_conf->prio = param->levelconf[i].priority;
@ -147,7 +147,7 @@
--- a/drivers/net/wireless/ath/ath11k/wmi.h
+++ b/drivers/net/wireless/ath/ath11k/wmi.h
@@ -4053,12 +4053,14 @@ struct wmi_11d_new_cc_ev {
@@ -4059,12 +4059,14 @@ struct wmi_11d_new_cc_ev {
u32 new_alpha2;
} __packed;
@ -163,7 +163,7 @@
};
struct thermal_mitigation_params {
@@ -4069,6 +4071,14 @@ struct thermal_mitigation_params {
@@ -4075,6 +4077,14 @@ struct thermal_mitigation_params {
struct tt_level_config levelconf[THERMAL_LEVELS];
};
@ -178,7 +178,7 @@
struct wmi_therm_throt_config_request_cmd {
u32 tlv_header;
u32 pdev_id;
@@ -4076,14 +4086,48 @@ struct wmi_therm_throt_config_request_cm
@@ -4082,14 +4092,48 @@ struct wmi_therm_throt_config_request_cm
u32 dc;
u32 dc_per_event;
u32 therm_throt_levels;
@ -229,7 +229,7 @@
struct wmi_delba_send_cmd {
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -6586,6 +6586,9 @@ static int ath11k_mac_op_start(struct ie
@@ -6683,6 +6683,9 @@ static int ath11k_mac_op_start(struct ie
}
}

View File

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath11k/core.c
+++ b/drivers/net/wireless/ath/ath11k/core.c
@@ -2041,10 +2041,10 @@ void ath11k_core_pre_reconfigure_recover
@@ -2050,10 +2050,10 @@ void ath11k_core_pre_reconfigure_recover
ar->monitor_vdev_id = -1;
clear_bit(ATH11K_FLAG_MONITOR_STARTED, &ar->monitor_flags);
clear_bit(ATH11K_FLAG_MONITOR_VDEV_CREATED, &ar->monitor_flags);
@ -12,7 +12,7 @@
reinit_completion(&ab->driver_recovery);
}
@@ -2320,7 +2320,6 @@ struct ath11k_base *ath11k_core_alloc(st
@@ -2329,7 +2329,6 @@ struct ath11k_base *ath11k_core_alloc(st
goto err_free_wq;
mutex_init(&ab->core_lock);
@ -20,7 +20,7 @@
mutex_init(&ab->base_ast_lock);
spin_lock_init(&ab->base_lock);
mutex_init(&ab->vdev_id_11d_lock);
@@ -2328,8 +2327,6 @@ struct ath11k_base *ath11k_core_alloc(st
@@ -2337,8 +2336,6 @@ struct ath11k_base *ath11k_core_alloc(st
init_completion(&ab->reconfigure_complete);
init_completion(&ab->recovery_start);
@ -31,7 +31,7 @@
INIT_WORK(&ab->restart_work, ath11k_core_restart);
--- a/drivers/net/wireless/ath/ath11k/core.h
+++ b/drivers/net/wireless/ath/ath11k/core.h
@@ -737,9 +737,22 @@ struct ath11k {
@@ -740,9 +740,22 @@ struct ath11k {
iftype[NUM_NL80211_BANDS][NUM_NL80211_IFTYPES];
} mac;
@ -54,7 +54,7 @@
u32 min_tx_power;
u32 max_tx_power;
u32 txpower_limit_2g;
@@ -817,6 +830,9 @@ struct ath11k {
@@ -820,6 +833,9 @@ struct ath11k {
struct work_struct wmi_mgmt_tx_work;
struct sk_buff_head wmi_mgmt_tx_queue;
@ -64,7 +64,7 @@
struct ath11k_wow wow;
struct completion target_suspend;
bool target_suspend_ack;
@@ -1020,19 +1036,7 @@ struct ath11k_base {
@@ -1023,19 +1039,7 @@ struct ath11k_base {
struct ath11k_hal_reg_capabilities_ext hal_reg_cap[MAX_RADIOS];
unsigned long long free_vdev_map;
@ -84,7 +84,7 @@
u8 mac_addr[ETH_ALEN];
int userpd_id;
int irq_num[ATH11K_IRQ_NUM_MAX];
@@ -1409,4 +1413,36 @@ static inline const char *ath11k_bus_str
@@ -1412,4 +1416,36 @@ static inline const char *ath11k_bus_str
return "unknown";
}
@ -152,7 +152,7 @@
if (!peer) {
ath11k_warn(ab, "failed to lookup peer %pM on vdev %d\n",
addr, vdev_id);
@@ -90,7 +90,7 @@ int ath11k_dp_peer_setup(struct ath11k *
@@ -89,7 +89,7 @@ int ath11k_dp_peer_setup(struct ath11k *
peer_clean:
spin_lock_bh(&ab->base_lock);
@ -517,7 +517,7 @@
break;
case HTT_T2H_MSG_TYPE_PPDU_STATS_IND:
ath11k_htt_pull_ppdu_stats(ab, skb);
@@ -2877,25 +2893,25 @@ static void ath11k_dp_rx_h_undecap(struc
@@ -2876,25 +2892,25 @@ static void ath11k_dp_rx_h_undecap(struc
}
static struct ath11k_peer *
@ -549,7 +549,7 @@
return peer;
}
@@ -2939,7 +2955,7 @@ static bool ath11k_dp_rx_check_fast_rx(s
@@ -2938,7 +2954,7 @@ static bool ath11k_dp_rx_check_fast_rx(s
return false;
/* check if the msdu needs to be bridged to our connected peer */
@ -558,7 +558,7 @@
if (f_peer && f_peer != peer)
return false;
@@ -2978,7 +2994,7 @@ static void ath11k_dp_rx_h_mpdu(struct a
@@ -2977,7 +2993,7 @@ static void ath11k_dp_rx_h_mpdu(struct a
}
spin_lock_bh(&ar->ab->base_lock);
@ -567,7 +567,7 @@
if (peer) {
/* If the pkt is a valid IP packet and peer supports
* fast rx, deliver directly to net, also note that
@@ -3206,7 +3222,7 @@ static void ath11k_dp_rx_deliver_msdu(st
@@ -3205,7 +3221,7 @@ static void ath11k_dp_rx_deliver_msdu(st
decap = ath11k_dp_rx_h_msdu_start_decap_type(ar->ab, rxcb->rx_desc);
spin_lock_bh(&ar->ab->base_lock);
@ -576,7 +576,7 @@
if (peer && peer->sta)
pubsta = peer->sta;
spin_unlock_bh(&ar->ab->base_lock);
@@ -3505,7 +3521,7 @@ try_again:
@@ -3504,7 +3520,7 @@ try_again:
if (unlikely(push_reason !=
HAL_REO_DEST_RING_PUSH_REASON_ROUTING_INSTRUCTION)) {
dev_kfree_skb_any(msdu);
@ -585,7 +585,7 @@
continue;
}
@@ -3737,11 +3753,10 @@ static void ath11k_dp_rx_update_user_sta
@@ -3736,11 +3752,10 @@ static void ath11k_dp_rx_update_user_sta
if (user_stats->ast_index == 0 || user_stats->ast_index == 0xFFFF)
return;
@ -599,7 +599,7 @@
user_stats->ast_index);
return;
}
@@ -4215,7 +4230,7 @@ int ath11k_peer_rx_frag_setup(struct ath
@@ -4210,7 +4225,7 @@ int ath11k_peer_rx_frag_setup(struct ath
spin_lock_bh(&ab->base_lock);
@ -608,7 +608,7 @@
if (!peer) {
ath11k_warn(ab, "failed to find the peer to set up fragment info\n");
spin_unlock_bh(&ab->base_lock);
@@ -4671,7 +4686,7 @@ static int ath11k_dp_rx_frag_h_mpdu(stru
@@ -4666,7 +4681,7 @@ static int ath11k_dp_rx_frag_h_mpdu(stru
return -EINVAL;
spin_lock_bh(&ab->base_lock);
@ -617,7 +617,7 @@
if (!peer) {
ath11k_warn(ab, "failed to find the peer to de-fragment received fragment peer_id %d\n",
peer_id);
@@ -4733,7 +4748,7 @@ static int ath11k_dp_rx_frag_h_mpdu(stru
@@ -4728,7 +4743,7 @@ static int ath11k_dp_rx_frag_h_mpdu(stru
del_timer_sync(&rx_tid->frag_timer);
spin_lock_bh(&ab->base_lock);
@ -626,7 +626,7 @@
if (!peer)
goto err_frags_cleanup;
@@ -6397,7 +6412,7 @@ int ath11k_dp_rx_process_mon_status(stru
@@ -6392,7 +6407,7 @@ int ath11k_dp_rx_process_mon_status(stru
trace_ath11k_htt_rxdesc(ar, skb->data, log_type, rx_buf_sz);
ppdu_info->peer_id = HAL_INVALID_PEERID;
@ -635,7 +635,7 @@
if (test_bit(ATH11K_FLAG_MONITOR_STARTED, &ar->monitor_flags) &&
pmon->mon_ppdu_status == DP_PPDU_STATUS_START &&
@@ -6428,7 +6443,7 @@ int ath11k_dp_rx_process_mon_status(stru
@@ -6423,7 +6438,7 @@ int ath11k_dp_rx_process_mon_status(stru
}
rcu_read_lock();
spin_lock_bh(&ab->base_lock);
@ -646,7 +646,7 @@
ath11k_dbg(ab, ATH11K_DBG_DATA,
--- a/drivers/net/wireless/ath/ath11k/dp_rx.h
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.h
@@ -129,8 +129,8 @@ int ath11k_dp_rxbufs_replenish(struct at
@@ -130,8 +130,8 @@ int ath11k_dp_rxbufs_replenish(struct at
int req_entries,
enum hal_rx_buf_return_buf_manager mgr,
u32 *buf_id);
@ -659,7 +659,7 @@
int ath11k_dp_rx_process_mon_rings(struct ath11k_base *ab, int mac_id,
--- a/drivers/net/wireless/ath/ath11k/dp_tx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_tx.c
@@ -478,7 +478,7 @@ ath11k_dp_tx_htt_tx_complete_buf(struct
@@ -482,7 +482,7 @@ ath11k_dp_tx_htt_tx_complete_buf(struct
}
spin_lock_bh(&ab->base_lock);
@ -668,7 +668,7 @@
if (!peer || !peer->sta) {
ath11k_dbg(ab, ATH11K_DBG_DATA,
"dp_tx: failed to find the peer with peer_id %d\n",
@@ -576,7 +576,7 @@ void ath11k_dp_tx_update_txcompl(struct
@@ -580,7 +580,7 @@ void ath11k_dp_tx_update_txcompl(struct
int ret;
spin_lock_bh(&ab->base_lock);
@ -677,7 +677,7 @@
if (!peer || !peer->sta) {
ath11k_dbg(ab, ATH11K_DBG_DP_TX,
"failed to find the peer by id %u\n", ts->peer_id);
@@ -791,7 +791,7 @@ static void ath11k_dp_tx_complete_msdu(s
@@ -799,7 +799,7 @@ static void ath11k_dp_tx_complete_msdu(s
}
spin_lock_bh(&ab->base_lock);
@ -789,7 +789,7 @@
ar->num_peers = 0;
ar->num_stations = 0;
@@ -3100,7 +3100,7 @@ static void ath11k_bss_assoc(struct ieee
@@ -3187,7 +3187,7 @@ static void ath11k_bss_assoc(struct ieee
spin_lock_bh(&ar->ab->base_lock);
@ -798,7 +798,7 @@
if (peer && peer->is_authorized)
is_auth = true;
@@ -4260,7 +4260,7 @@ static int ath11k_clear_peer_keys(struct
@@ -4349,7 +4349,7 @@ static int ath11k_clear_peer_keys(struct
lockdep_assert_held(&ar->conf_mutex);
spin_lock_bh(&ab->base_lock);
@ -807,7 +807,7 @@
if (!peer) {
spin_unlock_bh(&ab->base_lock);
return -ENOENT;
@@ -4376,7 +4376,7 @@ static int ath11k_mac_op_set_key(struct
@@ -4465,7 +4465,7 @@ static int ath11k_mac_op_set_key(struct
* we already hold conf_mutex. we just make sure its there now.
*/
spin_lock_bh(&ab->base_lock);
@ -816,7 +816,7 @@
/* flush the fragments cache during key (re)install to
* ensure all frags in the new frag list belong to the same key.
@@ -4485,7 +4485,7 @@ static int ath11k_mac_op_set_key(struct
@@ -4574,7 +4574,7 @@ static int ath11k_mac_op_set_key(struct
}
spin_lock_bh(&ab->base_lock);
@ -825,7 +825,7 @@
/* TODO: Check if vdev specific security cfg is mandatory */
ret = ath11k_nss_vdev_set_cmd(arvif, ATH11K_NSS_WIFI_VDEV_SECURITY_TYPE_CMD, key->cipher);
@@ -4516,7 +4516,7 @@ static int ath11k_mac_op_set_key(struct
@@ -4605,7 +4605,7 @@ static int ath11k_mac_op_set_key(struct
list_for_each_entry_safe(dyn_vlan_cfg, tmp, &ap_vlan_arvif->dyn_vlan_cfg, cfg_list) {
struct ieee80211_sta *vlan_sta = dyn_vlan_cfg->sta;
@ -834,7 +834,7 @@
if (ret)
ath11k_warn(ar->ab, "failed to cfg dyn vlan for peer %pM: %d\n",
vlan_sta->addr, ret);
@@ -5126,7 +5126,7 @@ static void ath11k_sta_set_4addr_wk(stru
@@ -5215,7 +5215,7 @@ static void ath11k_sta_set_4addr_wk(stru
vif = ap_vlan_arvif->vif;
spin_lock_bh(&ab->base_lock);
@ -843,7 +843,7 @@
if (!wds_peer) {
spin_unlock_bh(&ab->base_lock);
ath11k_warn(ab, "mac sta use 4addr failed to find peer %pM\n",
@@ -5349,7 +5349,7 @@ static void ath11k_mac_op_sta_rc_update(
@@ -5438,7 +5438,7 @@ static void ath11k_mac_op_sta_rc_update(
spin_lock_bh(&ar->ab->base_lock);
@ -852,7 +852,7 @@
if (!peer) {
spin_unlock_bh(&ar->ab->base_lock);
ath11k_warn(ar->ab, "mac sta rc update failed to find peer %pM on vdev %i\n",
@@ -8430,7 +8430,7 @@ ath11k_mac_op_assign_vif_chanctx(struct
@@ -8463,7 +8463,7 @@ ath11k_mac_op_assign_vif_chanctx(struct
if (ab->hw_params.vdev_start_delay &&
arvif->vdev_type != WMI_VDEV_TYPE_AP &&
arvif->vdev_type != WMI_VDEV_TYPE_MONITOR &&
@ -861,7 +861,7 @@
memcpy(&arvif->chanctx, ctx, sizeof(*ctx));
ret = 0;
goto out;
@@ -8506,7 +8506,7 @@ ath11k_mac_op_unassign_vif_chanctx(struc
@@ -8539,7 +8539,7 @@ ath11k_mac_op_unassign_vif_chanctx(struc
if (ab->hw_params.vdev_start_delay &&
arvif->vdev_type == WMI_VDEV_TYPE_MONITOR) {
spin_lock_bh(&ab->base_lock);
@ -870,7 +870,7 @@
spin_unlock_bh(&ab->base_lock);
if (peer)
ath11k_peer_delete(ar, arvif->vdev_id, ar->mac_addr);
@@ -9080,7 +9080,7 @@ ath11k_mac_validate_vht_he_fixed_rate_se
@@ -9113,7 +9113,7 @@ ath11k_mac_validate_vht_he_fixed_rate_se
rcu_read_lock();
spin_lock_bh(&ar->ab->base_lock);
@ -879,7 +879,7 @@
if (peer->sta) {
deflink = &peer->sta->deflink;
@@ -10032,26 +10032,26 @@ static int ath11k_mac_station_remove(str
@@ -10069,26 +10069,26 @@ static int ath11k_mac_station_remove(str
return ret;
}
@ -913,7 +913,7 @@
sta->addr, ret);
return ret;
}
@@ -10101,20 +10101,20 @@ static int ath11k_mac_op_sta_state(struc
@@ -10138,20 +10138,20 @@ static int ath11k_mac_op_sta_state(struc
ath11k_warn(ar->ab, "Failed to remove station: %pM for VDEV: %d\n",
sta->addr, arvif->vdev_id);
@ -938,7 +938,7 @@
} else if (old_state == IEEE80211_STA_AUTH &&
new_state == IEEE80211_STA_ASSOC &&
(vif->type == NL80211_IFTYPE_AP ||
@@ -10145,7 +10145,7 @@ static int ath11k_mac_op_sta_state(struc
@@ -10182,7 +10182,7 @@ static int ath11k_mac_op_sta_state(struc
new_state == IEEE80211_STA_AUTHORIZED) {
spin_lock_bh(&ar->ab->base_lock);
@ -947,7 +947,7 @@
if (peer)
peer->is_authorized = true;
@@ -10182,7 +10182,7 @@ static int ath11k_mac_op_sta_state(struc
@@ -10219,7 +10219,7 @@ static int ath11k_mac_op_sta_state(struc
list_add_tail(&ar_dyn_vlan_cfg->cfg_list, &arvif->dyn_vlan_cfg);
}
} else {
@ -956,7 +956,7 @@
if (ret)
ath11k_warn(ar->ab, "failed to cfg dyn vlan for peer %pM: %d\n",
sta->addr, ret);
@@ -10215,7 +10215,7 @@ static int ath11k_mac_op_sta_state(struc
@@ -10252,7 +10252,7 @@ static int ath11k_mac_op_sta_state(struc
new_state == IEEE80211_STA_ASSOC) {
spin_lock_bh(&ar->ab->base_lock);
@ -965,7 +965,7 @@
if (peer)
peer->is_authorized = false;
spin_unlock_bh(&ar->ab->base_lock);
@@ -10223,7 +10223,7 @@ static int ath11k_mac_op_sta_state(struc
@@ -10260,7 +10260,7 @@ static int ath11k_mac_op_sta_state(struc
new_state == IEEE80211_STA_ASSOC) {
spin_lock_bh(&ar->ab->base_lock);
@ -974,7 +974,7 @@
if (peer)
peer->is_authorized = false;
@@ -10628,9 +10628,9 @@ void ath11k_mac_unregister(struct ath11k
@@ -10668,9 +10668,9 @@ void ath11k_mac_unregister(struct ath11k
continue;
__ath11k_mac_unregister(ar);
@ -985,7 +985,7 @@
}
static int __ath11k_mac_register(struct ath11k *ar)
@@ -10917,15 +10917,15 @@ int ath11k_mac_register(struct ath11k_ba
@@ -10954,15 +10954,15 @@ int ath11k_mac_register(struct ath11k_ba
ab->cc_freq_hz = IPQ8074_CC_FREQ_HERTZ;
ab->free_vdev_map = (1LL << (ab->num_radios * TARGET_NUM_VDEVS(ab))) - 1;
@ -1004,7 +1004,7 @@
if (ab->pdevs_macaddr_valid) {
ether_addr_copy(ar->mac_addr, pdev->mac_addr);
} else {
@@ -10953,9 +10953,9 @@ err_cleanup:
@@ -10990,9 +10990,9 @@ err_cleanup:
pdev = &ab->pdevs[i];
ar = pdev->ar;
__ath11k_mac_unregister(ar);
@ -1015,7 +1015,7 @@
return ret;
}
@@ -10999,9 +10999,12 @@ int ath11k_mac_allocate(struct ath11k_ba
@@ -11036,9 +11036,12 @@ int ath11k_mac_allocate(struct ath11k_ba
ar->num_rx_chains = get_num_chains(pdev->cap.rx_chain_mask);
pdev->ar = ar;
@ -2362,7 +2362,7 @@
}
--- a/drivers/net/wireless/ath/ath11k/peer.h
+++ b/drivers/net/wireless/ath/ath11k/peer.h
@@ -99,34 +99,32 @@ struct ath11k_peer {
@@ -98,34 +98,32 @@ struct ath11k_peer {
bool delete_in_progress;
};
@ -2409,7 +2409,7 @@
u8* addr);
struct ath11k_ast_entry *ath11k_peer_ast_find_by_pdev_idx(struct ath11k *ar,
u8* addr);
@@ -140,11 +138,11 @@ void ath11k_peer_del_ast(struct ath11k *
@@ -139,11 +137,11 @@ void ath11k_peer_del_ast(struct ath11k *
void ath11k_peer_ast_cleanup(struct ath11k *ar, struct ath11k_peer *peer,
bool is_wds, u32 free_wds_count);
void ath11k_peer_ast_wds_wmi_wk(struct work_struct *wk);
@ -2423,7 +2423,7 @@
u8* addr)
{
return NULL;
@@ -192,7 +190,7 @@ static inline void ath11k_peer_ast_wds_w
@@ -191,7 +189,7 @@ static inline void ath11k_peer_ast_wds_w
return;
}
@ -2434,7 +2434,7 @@
{
--- a/drivers/net/wireless/ath/ath11k/wmi.c
+++ b/drivers/net/wireless/ath/ath11k/wmi.c
@@ -7579,10 +7579,12 @@ static void ath11k_wmi_event_peer_sta_ps
@@ -7624,10 +7624,12 @@ static void ath11k_wmi_event_peer_sta_ps
struct ieee80211_sta *sta;
struct ath11k_peer *peer;
struct ath11k *ar;
@ -2447,7 +2447,7 @@
tb = ath11k_wmi_tlv_parse_alloc(ab, skb, GFP_ATOMIC);
if (IS_ERR(tb)) {
@@ -7606,64 +7608,60 @@ static void ath11k_wmi_event_peer_sta_ps
@@ -7651,64 +7653,60 @@ static void ath11k_wmi_event_peer_sta_ps
rcu_read_lock();
@ -2554,7 +2554,7 @@
}
out:
@@ -7783,9 +7781,9 @@ static void ath11k_mgmt_rx_event(struct
@@ -7828,9 +7826,9 @@ static void ath11k_mgmt_rx_event(struct
spin_lock_bh(&ab->base_lock);
@ -2566,7 +2566,7 @@
if (!peer) {
spin_unlock_bh(&ab->base_lock);
goto skip_mgmt_stats;
@@ -8013,9 +8011,8 @@ static void ath11k_peer_sta_kickout_even
@@ -8058,9 +8056,8 @@ static void ath11k_peer_sta_kickout_even
{
struct wmi_peer_sta_kickout_arg arg = {};
struct ieee80211_sta *sta;
@ -2577,7 +2577,7 @@
if (ath11k_pull_peer_sta_kickout_ev(ab, skb, &arg) != 0) {
ath11k_warn(ab, "failed to extract peer sta kickout event");
@@ -8024,42 +8021,22 @@ static void ath11k_peer_sta_kickout_even
@@ -8069,42 +8066,22 @@ static void ath11k_peer_sta_kickout_even
rcu_read_lock();

View File

@ -1,6 +1,6 @@
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -4716,8 +4716,7 @@ netdev_tx_t ieee80211_subif_start_xmit_8
@@ -4715,8 +4715,7 @@ netdev_tx_t ieee80211_subif_start_xmit_8
if (!key)
key = rcu_dereference(sdata->default_unicast_key);

View File

@ -27,7 +27,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
struct net_device *upper_dev)
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -404,6 +404,20 @@ enum ieee80211_bss_change {
@@ -406,6 +406,20 @@ enum ieee80211_bss_change {
/* when adding here, make sure to change ieee80211_reconfig */
};
@ -73,7 +73,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
* - DATA3_DATA_MCS
* - DATA3_DATA_DCM
* - DATA3_CODING
@@ -1453,7 +1469,7 @@ ieee80211_tx_info_clear_status(struct ie
@@ -1492,7 +1508,7 @@ ieee80211_tx_info_clear_status(struct ie
* - DATA5_DATA_BW_RU_ALLOC
* - DATA6_NSTS
* - DATA3_STBC
@ -82,7 +82,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
* from the RX info data, so leave those zeroed when building this data)
* @RX_FLAG_RADIOTAP_HE_MU: HE MU radiotap data is present
* (&struct ieee80211_radiotap_he_mu)
@@ -2084,6 +2100,16 @@ static inline bool lockdep_vif_wiphy_mut
@@ -2127,6 +2143,16 @@ static inline bool lockdep_vif_wiphy_mut
lockdep_vif_wiphy_mutex_held(vif))
/**
@ -99,7 +99,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
* enum ieee80211_key_flags - key flags
*
* These flags are used for communication about keys between the driver
@@ -2788,6 +2814,8 @@ struct ieee80211_txq {
@@ -2825,6 +2851,8 @@ struct ieee80211_txq {
* implements MLO, so operation can continue on other links when one
* link is switching.
*
@ -127,7 +127,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
* @prepare_multicast: Prepare for multicast filter configuration.
* This callback is optional, and its return value is passed
* to configure_filter(). This callback must be atomic.
@@ -4425,7 +4458,9 @@ struct ieee80211_ops {
@@ -4461,7 +4494,9 @@ struct ieee80211_ops {
struct ieee80211_vif *vif,
struct ieee80211_bss_conf *info,
u64 changed);
@ -138,7 +138,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
int (*start_ap)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
struct ieee80211_bss_conf *link_conf);
void (*stop_ap)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
@@ -4735,7 +4770,7 @@ struct ieee80211_ops {
@@ -4771,7 +4806,7 @@ struct ieee80211_ops {
int (*reset_tid_config)(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
struct ieee80211_sta *sta, u8 tids);
@ -184,7 +184,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
* the suspend->resume cycle. Since we can't check each caller
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -413,6 +413,17 @@ void ieee80211_link_info_change_notify(s
@@ -414,6 +414,17 @@ void ieee80211_link_info_change_notify(s
drv_link_info_changed(local, sdata, link->conf, link->link_id, changed);
}
@ -202,7 +202,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
u64 ieee80211_reset_erp_info(struct ieee80211_sub_if_data *sdata)
{
sdata->vif.bss_conf.use_cts_prot = false;
@@ -844,12 +855,6 @@ struct ieee80211_hw *ieee80211_alloc_hw_
@@ -852,12 +863,6 @@ struct ieee80211_hw *ieee80211_alloc_hw_
NL80211_FEATURE_FULL_AP_CLIENT_STATE;
wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_FILS_STA);
wiphy_ext_feature_set(wiphy,
@ -215,7 +215,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
NL80211_EXT_FEATURE_SCAN_FREQ_KHZ);
wiphy_ext_feature_set(wiphy,
NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE);
@@ -1180,6 +1185,18 @@ int ieee80211_register_hw(struct ieee802
@@ -1185,6 +1190,18 @@ int ieee80211_register_hw(struct ieee802
return -EINVAL;
}
@ -236,7 +236,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
return -EINVAL;
--- a/net/mac80211/sta_info.c
+++ b/net/mac80211/sta_info.c
@@ -2416,6 +2416,9 @@ sta_get_last_rx_stats(struct sta_info *s
@@ -2412,6 +2412,9 @@ sta_get_last_rx_stats(struct sta_info *s
struct ieee80211_sta_rx_stats *stats = &sta->deflink.rx_stats;
int cpu;
@ -272,7 +272,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
ac = skb_get_queue_mapping(skb);
tx->sta->deflink.tx_stats.bytes[ac] += skb->len;
}
@@ -2877,7 +2889,9 @@ static struct sk_buff *ieee80211_build_h
@@ -2876,7 +2888,9 @@ static struct sk_buff *ieee80211_build_h
if (unlikely(!multicast &&
((skb->sk &&
skb_shinfo(skb)->tx_flags & SKBTX_WIFI_STATUS) ||
@ -283,7 +283,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
info_id = ieee80211_store_ack_skb(local, skb, &info_flags,
cookie);
@@ -4666,7 +4680,8 @@ static void ieee80211_8023_xmit(struct i
@@ -4665,7 +4679,8 @@ static void ieee80211_8023_xmit(struct i
}
if (unlikely(skb->sk &&
@ -293,7 +293,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
info->status_data = ieee80211_store_ack_skb(local, skb,
&info->flags, NULL);
if (info->status_data)
@@ -4674,8 +4689,10 @@ static void ieee80211_8023_xmit(struct i
@@ -4673,8 +4688,10 @@ static void ieee80211_8023_xmit(struct i
}
dev_sw_netstats_tx_add(dev, skbs, len);
@ -308,7 +308,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
--- a/net/wireless/util.c
+++ b/net/wireless/util.c
@@ -2627,6 +2627,9 @@ bool cfg80211_does_bw_fit_range(const st
@@ -2629,6 +2629,9 @@ bool cfg80211_does_bw_fit_range(const st
int cfg80211_sinfo_alloc_tid_stats(struct station_info *sinfo, gfp_t gfp)
{
@ -320,7 +320,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
gfp);
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -2676,7 +2676,7 @@ static int ieee80211_change_bss(struct w
@@ -2695,7 +2695,7 @@ static int ieee80211_change_bss(struct w
struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
struct ieee80211_link_data *link;
struct ieee80211_supported_band *sband;
@ -329,7 +329,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
link = ieee80211_link_or_deflink(sdata, params->link_id, true);
if (IS_ERR(link))
@@ -2726,6 +2726,8 @@ static int ieee80211_change_bss(struct w
@@ -2745,6 +2745,8 @@ static int ieee80211_change_bss(struct w
sdata->flags |= IEEE80211_SDATA_DONT_BRIDGE_PACKETS;
else
sdata->flags &= ~IEEE80211_SDATA_DONT_BRIDGE_PACKETS;
@ -338,7 +338,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
ieee80211_check_fast_rx_iface(sdata);
}
@@ -2754,6 +2756,8 @@ static int ieee80211_change_bss(struct w
@@ -2773,6 +2775,8 @@ static int ieee80211_change_bss(struct w
ieee80211_link_info_change_notify(sdata, link, changed);
@ -375,7 +375,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
{
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -1842,6 +1842,8 @@ void ieee80211_vif_cfg_change_notify(str
@@ -1859,6 +1859,8 @@ void ieee80211_vif_cfg_change_notify(str
void ieee80211_link_info_change_notify(struct ieee80211_sub_if_data *sdata,
struct ieee80211_link_data *link,
u64 changed);
@ -386,7 +386,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
--- a/net/mac80211/trace.h
+++ b/net/mac80211/trace.h
@@ -412,6 +412,38 @@ TRACE_EVENT(drv_config,
@@ -421,6 +421,38 @@ TRACE_EVENT(drv_config,
LOCAL_PR_ARG, __entry->changed, CHANDEF_PR_ARG
)
);
@ -427,7 +427,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
TP_PROTO(struct ieee80211_local *local,
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -982,7 +982,8 @@ static bool ieee80211_set_sdata_offload_
@@ -969,7 +969,8 @@ static bool ieee80211_set_sdata_offload_
local->hw.wiphy->frag_threshold != (u32)-1)
flags &= ~IEEE80211_OFFLOAD_ENCAP_ENABLED;

View File

@ -18,7 +18,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -6259,7 +6259,13 @@ int ieee80211_tx_control_port(struct wip
@@ -6260,7 +6260,13 @@ int ieee80211_tx_control_port(struct wip
start_xmit:
local_bh_disable();

View File

@ -31,7 +31,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -9574,4 +9574,15 @@ ssize_t wiphy_locked_debugfs_write(struc
@@ -9698,4 +9698,15 @@ ssize_t wiphy_locked_debugfs_write(struc
void *data);
#endif
@ -49,7 +49,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
#endif /* __NET_CFG80211_H */
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -7506,6 +7506,20 @@ u32 ieee80211_calc_rx_airtime(struct iee
@@ -7557,6 +7557,20 @@ u32 ieee80211_calc_rx_airtime(struct iee
int len);
/**
@ -72,7 +72,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
* This function calculates the estimated airtime usage of a frame based on the
--- a/include/uapi/linux/nl80211.h
+++ b/include/uapi/linux/nl80211.h
@@ -1334,6 +1334,10 @@
@@ -1329,6 +1329,10 @@
* %NL80211_ATTR_MLO_TTLM_ULINK attributes are used to specify the
* TID to Link mapping for downlink/uplink traffic.
*
@ -83,7 +83,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
* @NL80211_CMD_MAX: highest used command number
* @__NL80211_CMD_AFTER_LAST: internal use
*/
@@ -1591,6 +1595,7 @@ enum nl80211_commands {
@@ -1586,6 +1590,7 @@ enum nl80211_commands {
NL80211_CMD_SET_TID_TO_LINK_MAPPING,
@ -111,7 +111,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
__NL80211_ATTR_AFTER_LAST,
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -8727,3 +8727,15 @@ void ieee80211_disable_rssi_reports(stru
@@ -9336,3 +9336,15 @@ void ieee80211_disable_rssi_reports(stru
_ieee80211_enable_rssi_reports(sdata, 0, 0);
}
EXPORT_SYMBOL(ieee80211_disable_rssi_reports);
@ -129,7 +129,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
+EXPORT_SYMBOL(ieee80211_update_muedca_params);
--- a/net/mac80211/trace.h
+++ b/net/mac80211/trace.h
@@ -3125,6 +3125,26 @@ TRACE_EVENT(stop_queue,
@@ -3134,6 +3134,26 @@ TRACE_EVENT(stop_queue,
)
);
@ -158,7 +158,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
struct ieee80211_sub_if_data *sdata,
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -820,6 +820,7 @@ static const struct nla_policy nl80211_p
@@ -825,6 +825,7 @@ static const struct nla_policy nl80211_p
[NL80211_ATTR_HW_TIMESTAMP_ENABLED] = { .type = NLA_FLAG },
[NL80211_ATTR_EMA_RNR_ELEMS] = { .type = NLA_NESTED },
[NL80211_ATTR_MLO_LINK_DISABLED] = { .type = NLA_FLAG },
@ -166,7 +166,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
[NL80211_ATTR_BSS_DUMP_INCLUDE_USE_DATA] = { .type = NLA_FLAG },
[NL80211_ATTR_MLO_TTLM_DLINK] = NLA_POLICY_EXACT_LEN(sizeof(u16) * 8),
[NL80211_ATTR_MLO_TTLM_ULINK] = NLA_POLICY_EXACT_LEN(sizeof(u16) * 8),
@@ -20324,6 +20325,42 @@ void cfg80211_schedule_channels_check(st
@@ -20367,6 +20368,42 @@ void cfg80211_schedule_channels_check(st
}
EXPORT_SYMBOL(cfg80211_schedule_channels_check);
@ -211,7 +211,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
int __init nl80211_init(void)
--- a/net/wireless/trace.h
+++ b/net/wireless/trace.h
@@ -3809,6 +3809,46 @@ TRACE_EVENT(cfg80211_update_owe_info_eve
@@ -3957,6 +3957,46 @@ TRACE_EVENT(cfg80211_update_owe_info_eve
__entry->assoc_link_id, __entry->peer_mld_addr)
);

View File

@ -29,7 +29,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
/* misc utils */
static __le16 ieee80211_duration(struct ieee80211_tx_data *tx,
@@ -4293,6 +4296,8 @@ void __ieee80211_subif_start_xmit(struct
@@ -4292,6 +4295,8 @@ void __ieee80211_subif_start_xmit(struct
struct sta_info *sta;
struct sk_buff *next;
int len = skb->len;
@ -38,7 +38,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
if (unlikely(!ieee80211_sdata_running(sdata) || skb->len < ETH_HLEN)) {
kfree_skb(skb);
@@ -4314,6 +4319,19 @@ void __ieee80211_subif_start_xmit(struct
@@ -4313,6 +4318,19 @@ void __ieee80211_subif_start_xmit(struct
if (IS_ERR(sta))
sta = NULL;

View File

@ -30,7 +30,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -34,6 +34,9 @@
@@ -35,6 +35,9 @@
#include "sta_info.h"
#include "debug.h"
#include "drop.h"
@ -40,7 +40,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
extern const struct cfg80211_ops mac80211_config_ops;
@@ -1171,6 +1174,9 @@ struct ieee80211_sub_if_data {
@@ -1184,6 +1187,9 @@ struct ieee80211_sub_if_data {
struct dentry *default_beacon_key;
} debugfs;
#endif
@ -65,7 +65,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
/**
* DOC: Interface list locking
*
@@ -763,6 +769,13 @@ static int ieee80211_stop(struct net_dev
@@ -759,6 +765,13 @@ static int ieee80211_stop(struct net_dev
ieee80211_stop_mbssid(sdata);
}
@ -79,7 +79,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
wiphy_lock(sdata->local->hw.wiphy);
wiphy_work_cancel(sdata->local->hw.wiphy, &sdata->activate_links_work);
@@ -1217,6 +1230,34 @@ void ieee80211_del_virtual_monitor(struc
@@ -1204,6 +1217,34 @@ void ieee80211_del_virtual_monitor(struc
kfree(sdata);
}
@ -114,7 +114,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
/*
* NOTE: Be very careful when changing this function, it must NOT return
* an error on interface type changes that have been pre-checked, so most
@@ -1444,6 +1485,21 @@ int ieee80211_do_open(struct wireless_de
@@ -1431,6 +1472,21 @@ int ieee80211_do_open(struct wireless_de
ieee80211_recalc_ps(local);
@ -217,7 +217,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -4526,6 +4526,35 @@ static void ieee80211_mlo_multicast_tx(s
@@ -4525,6 +4525,35 @@ static void ieee80211_mlo_multicast_tx(s
kfree_skb(skb);
}
@ -253,7 +253,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
/**
* ieee80211_subif_start_xmit - netif start_xmit function for 802.3 vifs
* @skb: packet to be sent
@@ -4541,6 +4570,10 @@ netdev_tx_t ieee80211_subif_start_xmit(s
@@ -4540,6 +4569,10 @@ netdev_tx_t ieee80211_subif_start_xmit(s
struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
const struct ethhdr *eth = (void *)skb->data;
@ -264,7 +264,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
if (likely(!is_multicast_ether_addr(eth->h_dest)))
goto normal;
@@ -4730,6 +4763,9 @@ netdev_tx_t ieee80211_subif_start_xmit_8
@@ -4729,6 +4762,9 @@ netdev_tx_t ieee80211_subif_start_xmit_8
struct ieee80211_key *key;
struct sta_info *sta;

View File

@ -21,7 +21,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -5234,6 +5234,17 @@ void ieee80211_sta_pspoll(struct ieee802
@@ -5270,6 +5270,17 @@ void ieee80211_sta_pspoll(struct ieee802
*/
void ieee80211_sta_uapsd_trigger(struct ieee80211_sta *sta, u8 tid);
@ -41,7 +41,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
* This is enough for the radiotap header.
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -2189,7 +2189,13 @@ static int ieee80211_change_station(stru
@@ -2208,7 +2208,13 @@ static int ieee80211_change_station(stru
rcu_assign_pointer(vlansdata->u.vlan.sta, sta);
__ieee80211_check_fast_rx_iface(vlansdata);
@ -73,7 +73,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
trace_drv_add_interface(local, sdata);
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -686,6 +686,9 @@ static void ieee80211_do_stop(struct iee
@@ -682,6 +682,9 @@ static void ieee80211_do_stop(struct iee
switch (sdata->vif.type) {
case NL80211_IFTYPE_AP_VLAN:
@ -83,7 +83,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
break;
case NL80211_IFTYPE_MONITOR:
if (local->monitors == 0)
@@ -973,6 +976,7 @@ static bool ieee80211_iftype_supports_hd
@@ -960,6 +963,7 @@ static bool ieee80211_iftype_supports_hd
switch (iftype) {
/* P2P GO and client are mapped to AP/STATION types */
case NL80211_IFTYPE_AP:
@ -91,7 +91,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
case NL80211_IFTYPE_STATION:
return true;
default:
@@ -1027,7 +1031,8 @@ static void ieee80211_set_vif_encap_ops(
@@ -1014,7 +1018,8 @@ static void ieee80211_set_vif_encap_ops(
struct ieee80211_sub_if_data *bss = sdata;
bool enabled;
@ -101,7 +101,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
if (!sdata->bss)
return;
@@ -1353,10 +1358,17 @@ int ieee80211_do_open(struct wireless_de
@@ -1340,10 +1345,17 @@ int ieee80211_do_open(struct wireless_de
switch (sdata->vif.type) {
case NL80211_IFTYPE_AP_VLAN:
@ -137,7 +137,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
{
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -4320,8 +4320,11 @@ void __ieee80211_subif_start_xmit(struct
@@ -4319,8 +4319,11 @@ void __ieee80211_subif_start_xmit(struct
sta = NULL;
if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) {
@ -151,7 +151,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
if (ap_sdata->vif.offload_flags & IEEE80211_OFFLOAD_ENCAP_ENABLED &&
!is_multicast_ether_addr(skb->data)) {
if (sta)
@@ -4713,7 +4716,8 @@ static void ieee80211_8023_xmit(struct i
@@ -4712,7 +4715,8 @@ static void ieee80211_8023_xmit(struct i
info->hw_queue = sdata->vif.hw_queue[queue];
@ -163,7 +163,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
--- a/net/mac80211/util.c
+++ b/net/mac80211/util.c
@@ -1664,6 +1664,9 @@ static void ieee80211_assign_chanctx(str
@@ -1668,6 +1668,9 @@ static void ieee80211_assign_chanctx(str
lockdep_assert_wiphy(local->hw.wiphy);
@ -173,7 +173,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
conf = rcu_dereference_protected(link->conf->chanctx_conf,
lockdep_is_held(&local->hw.wiphy->mtx));
if (conf) {
@@ -1869,7 +1872,8 @@ int ieee80211_reconfig(struct ieee80211_
@@ -1873,7 +1876,8 @@ int ieee80211_reconfig(struct ieee80211_
}
list_for_each_entry(sdata, &local->interfaces, list) {
@ -183,7 +183,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
sdata->vif.type != NL80211_IFTYPE_MONITOR &&
ieee80211_sdata_running(sdata)) {
res = drv_add_interface(local, sdata);
@@ -1884,7 +1888,8 @@ int ieee80211_reconfig(struct ieee80211_
@@ -1888,7 +1892,8 @@ int ieee80211_reconfig(struct ieee80211_
if (res) {
list_for_each_entry_continue_reverse(sdata, &local->interfaces,
list)
@ -195,7 +195,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
drv_remove_interface(local, sdata);
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -5297,7 +5297,8 @@ static bool ieee80211_assoc_success(stru
@@ -5696,7 +5696,8 @@ static bool ieee80211_assoc_success(stru
* If we're using 4-addr mode, let the AP know that we're
* doing so, so that it can create the STA VLAN on its side
*/

View File

@ -24,7 +24,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -2184,6 +2184,8 @@ enum ieee80211_key_flags {
@@ -2227,6 +2227,8 @@ enum ieee80211_key_flags {
* @tx_pn: PN used for TX keys, may be used by the driver as well if it
* needs to do software PN assignment by itself (e.g. due to TSO)
* @flags: key flags, see &enum ieee80211_key_flags.
@ -33,7 +33,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
* @keyidx: the key index (0-3)
* @keylen: key material length
* @key: key material. For ALG_TKIP the key is encoded as a 256-bit (32 byte)
@@ -2203,6 +2205,7 @@ struct ieee80211_key_conf {
@@ -2246,6 +2248,7 @@ struct ieee80211_key_conf {
u8 hw_key_idx;
s8 keyidx;
u16 flags;
@ -102,7 +102,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
key->conf.cipher = cipher;
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -4672,16 +4672,25 @@ static void ieee80211_8023_xmit(struct i
@@ -4671,16 +4671,25 @@ static void ieee80211_8023_xmit(struct i
struct ieee80211_key *key, struct sk_buff *skb)
{
struct ieee80211_tx_info *info;

View File

@ -20,7 +20,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -216,6 +216,7 @@ enum ieee80211_rx_flags {
@@ -218,6 +218,7 @@ enum ieee80211_rx_flags {
};
struct ieee80211_rx_data {
@ -30,7 +30,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
struct ieee80211_local *local;
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -4701,19 +4701,21 @@ static void ieee80211_8023_xmit(struct i
@@ -4700,19 +4700,21 @@ static void ieee80211_8023_xmit(struct i
ieee80211_aggr_check(sdata, sta, skb);
@ -64,7 +64,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
}
skb = ieee80211_tx_skb_fixup(skb, ieee80211_sdata_netdev_features(sdata));
@@ -4773,7 +4775,7 @@ netdev_tx_t ieee80211_subif_start_xmit_8
@@ -4772,7 +4774,7 @@ netdev_tx_t ieee80211_subif_start_xmit_8
{
struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
struct ethhdr *ehdr = (struct ethhdr *)skb->data;
@ -73,7 +73,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
struct sta_info *sta;
#ifdef CPTCFG_MAC80211_NSS_SUPPORT
@@ -4791,9 +4793,13 @@ netdev_tx_t ieee80211_subif_start_xmit_8
@@ -4790,9 +4792,13 @@ netdev_tx_t ieee80211_subif_start_xmit_8
goto out;
}
@ -90,7 +90,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
goto skip_offload;
key = rcu_dereference(sta->ptk[sta->ptk_idx]);
@@ -4804,6 +4810,7 @@ netdev_tx_t ieee80211_subif_start_xmit_8
@@ -4803,6 +4809,7 @@ netdev_tx_t ieee80211_subif_start_xmit_8
goto skip_offload;
sk_pacing_shift_update(skb->sk, sdata->local->hw.tx_sk_pacing_shift);
@ -98,7 +98,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
ieee80211_8023_xmit(sdata, dev, sta, key, skb);
goto out;
@@ -6326,13 +6333,7 @@ int ieee80211_tx_control_port(struct wip
@@ -6327,13 +6334,7 @@ int ieee80211_tx_control_port(struct wip
start_xmit:
local_bh_disable();

View File

@ -48,7 +48,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
/**
* enum ieee80211_max_queues - maximum number of queues
*
@@ -411,11 +414,17 @@ enum ieee80211_bss_change {
@@ -413,11 +416,17 @@ enum ieee80211_bss_change {
* to indicate which NSS BSS parameter changed.
*
* @BSS_CHANGED_NSS_AP_ISOLATE: AP Isolate feature in NSS mode
@ -66,7 +66,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
};
/*
@@ -809,6 +818,11 @@ struct ieee80211_bss_conf {
@@ -847,6 +856,11 @@ struct ieee80211_bss_conf {
bool he_full_ul_mumimo;
bool eht_su_beamformer;
bool eht_su_beamformee;
@ -76,9 +76,9 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
+ bool nss_offld_mesh_forward_enabled;
+ u32 nss_offld_mpath_refresh_time;
bool eht_mu_beamformer;
bool eht_80mhz_full_bw_ul_mumimo;
bool nss_ap_isolate;
};
@@ -1302,6 +1316,8 @@ struct ieee80211_rate_status {
@@ -1341,6 +1355,8 @@ struct ieee80211_rate_status {
* @ack_hwtstamp: Hardware timestamp of the received ack in nanoseconds
* Only needed for Timing measurement and Fine timing measurement action
* frames. Only reported by devices that have timestamping enabled.
@ -87,7 +87,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
*/
struct ieee80211_tx_status {
struct ieee80211_sta *sta;
@@ -1312,6 +1328,8 @@ struct ieee80211_tx_status {
@@ -1351,6 +1367,8 @@ struct ieee80211_tx_status {
u8 n_rates;
struct list_head *free_list;
@ -96,7 +96,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
};
/**
@@ -1820,6 +1838,7 @@ struct ieee80211_channel_switch {
@@ -1859,6 +1877,7 @@ struct ieee80211_channel_switch {
* operation on this interface and request a channel context without
* the AP definition. Use this e.g. because the device is able to
* handle OFDMA (downlink and trigger for uplink) on a per-AP basis.
@ -104,7 +104,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
*/
enum ieee80211_vif_flags {
IEEE80211_VIF_BEACON_FILTER = BIT(0),
@@ -1828,6 +1847,7 @@ enum ieee80211_vif_flags {
@@ -1867,6 +1886,7 @@ enum ieee80211_vif_flags {
IEEE80211_VIF_GET_NOA_UPDATE = BIT(3),
IEEE80211_VIF_EML_ACTIVE = BIT(4),
IEEE80211_VIF_IGNORE_OFDMA_WIDER_BW = BIT(5),
@ -112,15 +112,15 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
};
@@ -2879,6 +2899,7 @@ enum ieee80211_hw_flags {
IEEE80211_HW_DISALLOW_PUNCTURING,
@@ -2916,6 +2936,7 @@ enum ieee80211_hw_flags {
IEEE80211_HW_DISALLOW_PUNCTURING_5GHZ,
IEEE80211_HW_HANDLES_QUIET_CSA,
IEEE80211_HW_SUPPORTS_NSS_OFFLOAD,
+ IEEE80211_HW_SUPPORTS_MESH_NSS_OFFLOAD,
/* keep last, obviously */
NUM_IEEE80211_HW_FLAGS
@@ -4388,6 +4409,8 @@ struct ieee80211_prep_tx_info {
@@ -4424,6 +4445,8 @@ struct ieee80211_prep_tx_info {
* @set_sar_specs: Update the SAR (TX power) settings.
* @sta_set_decap_offload: Called to notify the driver when a station is allowed
* to use rx decapsulation offload
@ -129,7 +129,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
* @add_twt_setup: Update hw with TWT agreement parameters received from the peer.
* This callback allows the hw to check if requested parameters
* are supported and if there is enough room for a new agreement.
@@ -4782,6 +4805,12 @@ struct ieee80211_ops {
@@ -4818,6 +4841,12 @@ struct ieee80211_ops {
void (*sta_set_decap_offload)(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
struct ieee80211_sta *sta, bool enabled);
@ -142,7 +142,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
void (*add_twt_setup)(struct ieee80211_hw *hw,
struct ieee80211_sta *sta,
struct ieee80211_twt_setup *twt);
@@ -7667,4 +7696,100 @@ int ieee80211_emulate_switch_vif_chanctx
@@ -7722,4 +7751,100 @@ int ieee80211_emulate_switch_vif_chanctx
int n_vifs,
enum ieee80211_chanctx_switch_mode mode);
@ -245,7 +245,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
#endif /* MAC80211_H */
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -2519,6 +2519,7 @@ static int ieee80211_update_mesh_config(
@@ -2538,6 +2538,7 @@ static int ieee80211_update_mesh_config(
struct mesh_config *conf;
struct ieee80211_sub_if_data *sdata;
struct ieee80211_if_mesh *ifmsh;
@ -253,7 +253,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
sdata = IEEE80211_DEV_TO_SUB_IF(dev);
ifmsh = &sdata->u.mesh;
@@ -2535,8 +2536,11 @@ static int ieee80211_update_mesh_config(
@@ -2554,8 +2555,11 @@ static int ieee80211_update_mesh_config(
conf->dot11MeshMaxPeerLinks = nconf->dot11MeshMaxPeerLinks;
if (_chg_mesh_attr(NL80211_MESHCONF_MAX_RETRIES, mask))
conf->dot11MeshMaxRetries = nconf->dot11MeshMaxRetries;
@ -266,7 +266,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
if (_chg_mesh_attr(NL80211_MESHCONF_ELEMENT_TTL, mask))
conf->element_ttl = nconf->element_ttl;
if (_chg_mesh_attr(NL80211_MESHCONF_AUTO_OPEN_PLINKS, mask)) {
@@ -2550,8 +2554,12 @@ static int ieee80211_update_mesh_config(
@@ -2569,8 +2573,12 @@ static int ieee80211_update_mesh_config(
if (_chg_mesh_attr(NL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES, mask))
conf->dot11MeshHWMPmaxPREQretries =
nconf->dot11MeshHWMPmaxPREQretries;
@ -280,7 +280,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
if (_chg_mesh_attr(NL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT, mask))
conf->min_discovery_timeout = nconf->min_discovery_timeout;
if (_chg_mesh_attr(NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT, mask))
@@ -2586,8 +2594,12 @@ static int ieee80211_update_mesh_config(
@@ -2605,8 +2613,12 @@ static int ieee80211_update_mesh_config(
if (_chg_mesh_attr(NL80211_MESHCONF_HWMP_RANN_INTERVAL, mask))
conf->dot11MeshHWMPRannInterval =
nconf->dot11MeshHWMPRannInterval;
@ -294,7 +294,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
if (_chg_mesh_attr(NL80211_MESHCONF_RSSI_THRESHOLD, mask)) {
/* our RSSI threshold implementation is supported only for
* devices that report signal in dBm.
@@ -2629,6 +2641,7 @@ static int ieee80211_update_mesh_config(
@@ -2648,6 +2660,7 @@ static int ieee80211_update_mesh_config(
conf->dot11MeshConnectedToAuthServer =
nconf->dot11MeshConnectedToAuthServer;
ieee80211_mbss_info_change_notify(sdata, BSS_CHANGED_BEACON);
@ -331,7 +331,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
--- a/net/mac80211/debugfs.c
+++ b/net/mac80211/debugfs.c
@@ -509,6 +509,7 @@ static const char *hw_flag_names[] = {
FLAG(DISALLOW_PUNCTURING),
FLAG(DISALLOW_PUNCTURING_5GHZ),
FLAG(HANDLES_QUIET_CSA),
FLAG(SUPPORTS_NSS_OFFLOAD),
+ FLAG(SUPPORTS_MESH_NSS_OFFLOAD),
@ -1193,7 +1193,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
if (!is_multicast_ether_addr(skb->data)) {
struct sta_info *next_hop;
bool mpp_lookup = true;
@@ -2974,6 +2984,9 @@ static struct sk_buff *ieee80211_build_h
@@ -2973,6 +2983,9 @@ static struct sk_buff *ieee80211_build_h
skb_reset_mac_header(skb);
@ -1203,7 +1203,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
info = IEEE80211_SKB_CB(skb);
memset(info, 0, sizeof(*info));
@@ -4297,6 +4310,7 @@ void __ieee80211_subif_start_xmit(struct
@@ -4296,6 +4309,7 @@ void __ieee80211_subif_start_xmit(struct
struct sk_buff *next;
int len = skb->len;
struct ieee80211_key *key = NULL;
@ -1211,7 +1211,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
struct ieee80211_sub_if_data *ap_sdata;
if (unlikely(!ieee80211_sdata_running(sdata) || skb->len < ETH_HLEN)) {
@@ -4371,9 +4385,15 @@ void __ieee80211_subif_start_xmit(struct
@@ -4370,9 +4384,15 @@ void __ieee80211_subif_start_xmit(struct
goto out;
}
@ -1232,7 +1232,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
out_free:
--- a/net/mac80211/driver-ops.h
+++ b/net/mac80211/driver-ops.h
@@ -1737,4 +1737,10 @@ drv_can_neg_ttlm(struct ieee80211_local
@@ -1749,4 +1749,10 @@ drv_can_neg_ttlm(struct ieee80211_local
return res;
}

View File

@ -16,7 +16,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -2839,6 +2839,8 @@ struct ieee80211_txq {
@@ -2876,6 +2876,8 @@ struct ieee80211_txq {
*
* @IEEE80211_HW_SUPPORTS_NSS_OFFLOAD: Hardware/driver supports NSS offload
*
@ -25,7 +25,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
* @NUM_IEEE80211_HW_FLAGS: number of hardware flags, used for sizing arrays
*/
enum ieee80211_hw_flags {
@@ -2900,6 +2902,7 @@ enum ieee80211_hw_flags {
@@ -2937,6 +2939,7 @@ enum ieee80211_hw_flags {
IEEE80211_HW_HANDLES_QUIET_CSA,
IEEE80211_HW_SUPPORTS_NSS_OFFLOAD,
IEEE80211_HW_SUPPORTS_MESH_NSS_OFFLOAD,

View File

@ -14,7 +14,7 @@ Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com>
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -4790,6 +4790,67 @@ out_free:
@@ -4789,6 +4789,67 @@ out_free:
kfree_skb(skb);
}
@ -82,7 +82,7 @@ Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com>
netdev_tx_t ieee80211_subif_start_xmit_8023(struct sk_buff *skb,
struct net_device *dev)
{
@@ -4829,6 +4890,11 @@ netdev_tx_t ieee80211_subif_start_xmit_8
@@ -4828,6 +4889,11 @@ netdev_tx_t ieee80211_subif_start_xmit_8
if (key && (!(key->flags & KEY_FLAG_UPLOADED_TO_HARDWARE)))
goto skip_offload;

View File

@ -20,7 +20,7 @@ Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -1759,6 +1759,8 @@ static void sta_apply_mesh_params(struct
@@ -1761,6 +1761,8 @@ static void sta_apply_mesh_params(struct
/* init at low value */
ewma_mesh_tx_rate_avg_add(&sta->mesh->tx_rate_avg, 10);
@ -29,7 +29,7 @@ Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
break;
case NL80211_PLINK_LISTEN:
case NL80211_PLINK_BLOCKED:
@@ -1773,6 +1775,7 @@ static void sta_apply_mesh_params(struct
@@ -1775,6 +1777,7 @@ static void sta_apply_mesh_params(struct
ieee80211_mps_sta_status_update(sta);
changed |= ieee80211_mps_set_sta_local_pm(sta,
NL80211_MESH_POWER_UNKNOWN);
@ -94,7 +94,7 @@ Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
if (action) {
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -4713,10 +4713,15 @@ void ieee80211_check_fast_rx(struct sta_
@@ -4717,10 +4717,15 @@ void ieee80211_check_fast_rx(struct sta_
break;
case NL80211_IFTYPE_MESH_POINT:
@ -112,7 +112,7 @@ Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
break;
default:
goto clear;
@@ -4757,7 +4762,7 @@ void ieee80211_check_fast_rx(struct sta_
@@ -4761,7 +4766,7 @@ void ieee80211_check_fast_rx(struct sta_
__release(check_fast_rx);
if (assign)
@ -121,7 +121,7 @@ Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
offload_flags = get_bss_sdata(sdata)->vif.offload_flags;
offload = offload_flags & IEEE80211_OFFLOAD_DECAP_ENABLED;
@@ -4939,6 +4944,10 @@ static bool ieee80211_invoke_fast_rx(str
@@ -4943,6 +4948,10 @@ static bool ieee80211_invoke_fast_rx(str
u8 sa[ETH_ALEN];
} addrs __aligned(2);
struct ieee80211_sta_rx_stats *stats;
@ -132,7 +132,7 @@ Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
/* for parallel-rx, we need to have DUP_VALIDATED, otherwise we write
* to a common data structure; drivers can implement that per queue
@@ -4988,6 +4997,37 @@ static bool ieee80211_invoke_fast_rx(str
@@ -4992,6 +5001,37 @@ static bool ieee80211_invoke_fast_rx(str
snap_offs += IEEE80211_CCMP_HDR_LEN;
}
@ -170,7 +170,7 @@ Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
if (!ieee80211_vif_is_mesh(&rx->sdata->vif) &&
!(status->rx_flags & IEEE80211_RX_AMSDU)) {
if (!pskb_may_pull(skb, snap_offs + sizeof(*payload)))
@@ -5025,9 +5065,33 @@ static bool ieee80211_invoke_fast_rx(str
@@ -5029,9 +5069,33 @@ static bool ieee80211_invoke_fast_rx(str
return true;
}

View File

@ -33,7 +33,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -4721,7 +4721,7 @@ static void ieee80211_8023_xmit(struct i
@@ -4720,7 +4720,7 @@ static void ieee80211_8023_xmit(struct i
ieee80211_aggr_check(sdata, sta, skb);
@ -42,7 +42,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
tid = skb->priority & IEEE80211_QOS_CTL_TAG1D_MASK;
tid_tx = rcu_dereference(sta->ampdu_mlme.tid_tx[tid]);
if (tid_tx) {
@@ -4775,7 +4775,7 @@ static void ieee80211_8023_xmit(struct i
@@ -4774,7 +4774,7 @@ static void ieee80211_8023_xmit(struct i
}
dev_sw_netstats_tx_add(dev, skbs, len);

View File

@ -21,7 +21,7 @@ Signed-off-by: Nagarajan Maran <quic_nmaran@quicinc.com>
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -1011,7 +1011,8 @@ static bool ieee80211_set_sdata_offload_
@@ -998,7 +998,8 @@ static bool ieee80211_set_sdata_offload_
flags |= IEEE80211_OFFLOAD_DECAP_ENABLED;
if (local->monitors &&

View File

@ -14,7 +14,7 @@ Signed-off-by: P Praneesh <quic_ppranees@quicinc.com>
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -1442,8 +1442,6 @@ ieee80211_tx_info_clear_status(struct ie
@@ -1481,8 +1481,6 @@ ieee80211_tx_info_clear_status(struct ie
* @RX_FLAG_AMPDU_IS_LAST: this subframe is the last subframe of the A-MPDU
* @RX_FLAG_AMPDU_DELIM_CRC_ERROR: A delimiter CRC error has been detected
* on this subframe
@ -23,7 +23,7 @@ Signed-off-by: P Praneesh <quic_ppranees@quicinc.com>
* @RX_FLAG_MIC_STRIPPED: The mic was stripped of this packet. Decryption was
* done by the hardware
* @RX_FLAG_ONLY_MONITOR: Report frame only to monitor interfaces without
@@ -1500,39 +1498,38 @@ ieee80211_tx_info_clear_status(struct ie
@@ -1539,39 +1537,38 @@ ieee80211_tx_info_clear_status(struct ie
* hardware or driver)
*/
enum mac80211_rx_flags {

View File

@ -20,7 +20,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -2060,6 +2060,11 @@ netdev_tx_t ieee80211_subif_start_xmit(s
@@ -2080,6 +2080,11 @@ netdev_tx_t ieee80211_subif_start_xmit(s
struct net_device *dev);
netdev_tx_t ieee80211_subif_start_xmit_8023(struct sk_buff *skb,
struct net_device *dev);
@ -44,7 +44,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
/* misc utils */
static __le16 ieee80211_duration(struct ieee80211_tx_data *tx,
@@ -4343,7 +4344,7 @@ void __ieee80211_subif_start_xmit(struct
@@ -4342,7 +4343,7 @@ void __ieee80211_subif_start_xmit(struct
!is_multicast_ether_addr(skb->data)) {
if (sta)
key = rcu_dereference(sta->ptk[sta->ptk_idx]);
@ -53,7 +53,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
rcu_read_unlock();
return;
}
@@ -4389,7 +4390,7 @@ void __ieee80211_subif_start_xmit(struct
@@ -4388,7 +4389,7 @@ void __ieee80211_subif_start_xmit(struct
if (info->flags & IEEE80211_TX_CTL_HW_80211_ENCAP) {
if (sta)
key = rcu_dereference(sta->ptk[sta->ptk_idx]);
@ -62,7 +62,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
} else {
dev_sw_netstats_tx_add(dev, 1, skb->len);
ieee80211_xmit(sdata, sta, skb);
@@ -4689,7 +4690,8 @@ static bool ieee80211_tx_8023(struct iee
@@ -4688,7 +4689,8 @@ static bool ieee80211_tx_8023(struct iee
static void ieee80211_8023_xmit(struct ieee80211_sub_if_data *sdata,
struct net_device *dev, struct sta_info *sta,
@ -72,7 +72,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
{
struct ieee80211_tx_info *info;
struct ethhdr *ehdr = (struct ethhdr *)skb->data;
@@ -4745,6 +4747,7 @@ static void ieee80211_8023_xmit(struct i
@@ -4744,6 +4746,7 @@ static void ieee80211_8023_xmit(struct i
info = IEEE80211_SKB_CB(skb);
memset(info, 0, sizeof(*info));
@ -80,7 +80,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
info->hw_queue = sdata->vif.hw_queue[queue];
if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN &&
@@ -4765,11 +4768,12 @@ static void ieee80211_8023_xmit(struct i
@@ -4764,11 +4767,12 @@ static void ieee80211_8023_xmit(struct i
memcpy(IEEE80211_SKB_CB(seg), info, sizeof(*info));
}
@ -96,7 +96,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
if (info->status_data)
info->status_data_idr = 1;
}
@@ -4792,7 +4796,8 @@ out_free:
@@ -4791,7 +4795,8 @@ out_free:
void ieee80211_8023_xmit_ap(struct ieee80211_sub_if_data *sdata,
struct net_device *dev, struct sta_info *sta,
@ -106,7 +106,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
{
struct ieee80211_tx_info *info;
struct ieee80211_local *local = sdata->local;
@@ -4801,6 +4806,9 @@ void ieee80211_8023_xmit_ap(struct ieee8
@@ -4800,6 +4805,9 @@ void ieee80211_8023_xmit_ap(struct ieee8
unsigned long flags;
int q;
u16 q_map;
@ -116,7 +116,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
/*
* If the skb is shared we need to obtain our own copy.
@@ -4812,11 +4820,13 @@ void ieee80211_8023_xmit_ap(struct ieee8
@@ -4811,11 +4819,13 @@ void ieee80211_8023_xmit_ap(struct ieee8
info = IEEE80211_SKB_CB(skb);
memset(info, 0, sizeof(*info));
@ -133,7 +133,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
info->flags |= IEEE80211_TX_CTL_HW_80211_ENCAP;
info->control.vif = &sdata->vif;
@@ -4850,14 +4860,23 @@ void ieee80211_8023_xmit_ap(struct ieee8
@@ -4849,14 +4859,23 @@ void ieee80211_8023_xmit_ap(struct ieee8
drv_tx(local, &control, skb);
}
@ -158,7 +158,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
#ifdef CPTCFG_MAC80211_NSS_SUPPORT
ieee80211_xmit_nss_fixup(skb, dev);
@@ -4873,14 +4892,15 @@ netdev_tx_t ieee80211_subif_start_xmit_8
@@ -4872,14 +4891,15 @@ netdev_tx_t ieee80211_subif_start_xmit_8
kfree_skb(skb);
goto out;
}
@ -176,7 +176,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
goto skip_offload;
key = rcu_dereference(sta->ptk[sta->ptk_idx]);
@@ -4891,13 +4911,13 @@ netdev_tx_t ieee80211_subif_start_xmit_8
@@ -4890,13 +4910,13 @@ netdev_tx_t ieee80211_subif_start_xmit_8
goto skip_offload;
if (sdata->vif.type == NL80211_IFTYPE_AP) {
@ -192,7 +192,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
goto out;
skip_offload:
@@ -6419,7 +6439,10 @@ int ieee80211_tx_control_port(struct wip
@@ -6420,7 +6440,10 @@ int ieee80211_tx_control_port(struct wip
start_xmit:
local_bh_disable();

View File

@ -72,7 +72,7 @@ Signed-off-by: P Praneesh <quic_ppranees@quicinc.com>
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -2346,7 +2346,7 @@ static void mpath_set_pinfo(struct mesh_
@@ -2365,7 +2365,7 @@ static void mpath_set_pinfo(struct mesh_
if (mpath->flags & MESH_PATH_RESOLVED)
pinfo->flags |= NL80211_MPATH_FLAG_RESOLVED;
pinfo->hop_count = mpath->hop_count;

View File

@ -16,7 +16,7 @@ Signed-off-by: Maharaja Kennadyrajan <quic_mkenna@quicinc.com>
--- a/net/mac80211/sta_info.c
+++ b/net/mac80211/sta_info.c
@@ -2411,7 +2411,7 @@ void ieee80211_sta_update_pending_airtim
@@ -2407,7 +2407,7 @@ void ieee80211_sta_update_pending_airtim
}
static struct ieee80211_sta_rx_stats *
@ -25,7 +25,7 @@ Signed-off-by: Maharaja Kennadyrajan <quic_mkenna@quicinc.com>
{
struct ieee80211_sta_rx_stats *stats = &sta->deflink.rx_stats;
int cpu;
@@ -2424,8 +2424,13 @@ sta_get_last_rx_stats(struct sta_info *s
@@ -2420,8 +2420,13 @@ sta_get_last_rx_stats(struct sta_info *s
for_each_possible_cpu(cpu) {
struct ieee80211_sta_rx_stats *cpustats;
@ -39,7 +39,7 @@ Signed-off-by: Maharaja Kennadyrajan <quic_mkenna@quicinc.com>
if (time_after(cpustats->last_rx, stats->last_rx))
stats = cpustats;
@@ -2502,7 +2507,7 @@ static void sta_stats_decode_rate(struct
@@ -2498,7 +2503,7 @@ static void sta_stats_decode_rate(struct
static int sta_set_rate_info_rx(struct sta_info *sta, struct rate_info *rinfo)
{
@ -48,7 +48,7 @@ Signed-off-by: Maharaja Kennadyrajan <quic_mkenna@quicinc.com>
if (rate == STA_STATS_RATE_INVALID)
return -EINVAL;
@@ -2602,7 +2607,7 @@ void sta_set_sinfo(struct sta_info *sta,
@@ -2598,7 +2603,7 @@ void sta_set_sinfo(struct sta_info *sta,
int i, ac, cpu;
struct ieee80211_sta_rx_stats *last_rxstats;
@ -57,7 +57,7 @@ Signed-off-by: Maharaja Kennadyrajan <quic_mkenna@quicinc.com>
sinfo->generation = sdata->local->sta_generation;
@@ -2886,7 +2891,7 @@ u32 sta_get_expected_throughput(struct s
@@ -2882,7 +2887,7 @@ u32 sta_get_expected_throughput(struct s
unsigned long ieee80211_sta_last_active(struct sta_info *sta)
{

View File

@ -31,7 +31,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
static void ieee80211_8023_xmit(struct ieee80211_sub_if_data *sdata,
struct net_device *dev, struct sta_info *sta,
struct ieee80211_key *key, struct sk_buff *skb,
@@ -3658,7 +3660,7 @@ ieee80211_sdata_netdev_features(struct i
@@ -3656,7 +3658,7 @@ ieee80211_sdata_netdev_features(struct i
}
static struct sk_buff *
@ -40,7 +40,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
{
if (skb_is_gso(skb)) {
struct sk_buff *segs;
@@ -3676,7 +3678,7 @@ ieee80211_tx_skb_fixup(struct sk_buff *s
@@ -3674,7 +3676,7 @@ ieee80211_tx_skb_fixup(struct sk_buff *s
if (skb_needs_linearize(skb, features) && __skb_linearize(skb))
goto free;
@ -49,7 +49,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
int ofs = skb_checksum_start_offset(skb);
if (skb->encapsulation)
@@ -3822,7 +3824,7 @@ static bool ieee80211_xmit_fast(struct i
@@ -3820,7 +3822,7 @@ static bool ieee80211_xmit_fast(struct i
memcpy(&eth, skb->data, ETH_HLEN - 2);
/* after this point (skb is modified) we cannot return false */
@ -58,7 +58,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
if (!skb)
return true;
@@ -4367,7 +4369,7 @@ void __ieee80211_subif_start_xmit(struct
@@ -4366,7 +4368,7 @@ void __ieee80211_subif_start_xmit(struct
* things so we cannot really handle checksum or GSO offload.
* fix it up in software before we handle anything else.
*/
@ -67,7 +67,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
if (!skb) {
len = 0;
goto out;
@@ -4740,7 +4742,7 @@ static void ieee80211_8023_xmit(struct i
@@ -4739,7 +4741,7 @@ static void ieee80211_8023_xmit(struct i
}
}
@ -78,7 +78,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -2263,6 +2263,10 @@ int ieee80211_if_add(struct ieee80211_lo
@@ -2246,6 +2246,10 @@ int ieee80211_if_add(struct ieee80211_lo
ndev->features |= local->hw.netdev_features;
ndev->priv_flags |= IFF_LIVE_ADDR_CHANGE;

View File

@ -23,7 +23,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -2838,6 +2838,9 @@ struct ieee80211_txq {
@@ -2875,6 +2875,9 @@ struct ieee80211_txq {
*
* @IEEE80211_HW_SUPPORTS_TID_CLASS_OFFLOAD: Hardware suports tid calssification offload.
*
@ -33,7 +33,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
* @NUM_IEEE80211_HW_FLAGS: number of hardware flags, used for sizing arrays
*/
enum ieee80211_hw_flags {
@@ -2900,6 +2903,7 @@ enum ieee80211_hw_flags {
@@ -2937,6 +2940,7 @@ enum ieee80211_hw_flags {
IEEE80211_HW_SUPPORTS_NSS_OFFLOAD,
IEEE80211_HW_SUPPORTS_MESH_NSS_OFFLOAD,
IEEE80211_HW_SUPPORTS_TID_CLASS_OFFLOAD,
@ -83,7 +83,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
return false;
if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
@@ -4352,7 +4359,8 @@ void __ieee80211_subif_start_xmit(struct
@@ -4351,7 +4358,8 @@ void __ieee80211_subif_start_xmit(struct
}
}
@ -93,7 +93,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
ieee80211_aggr_check(sdata, sta, skb);
if (sta) {
@@ -4706,8 +4714,10 @@ static void ieee80211_8023_xmit(struct i
@@ -4705,8 +4713,10 @@ static void ieee80211_8023_xmit(struct i
bool multicast;
u8 tid;
@ -106,7 +106,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
multicast = is_multicast_ether_addr(ra);
@@ -6426,9 +6436,12 @@ int ieee80211_tx_control_port(struct wip
@@ -6427,9 +6437,12 @@ int ieee80211_tx_control_port(struct wip
}
if (!IS_ERR(sta)) {
@ -123,7 +123,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
* for MLO STA, the SA should be the AP MLD address, but
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -4565,6 +4565,9 @@ static int ieee80211_get_txq_stats(struc
@@ -4576,6 +4576,9 @@ static int ieee80211_get_txq_stats(struc
struct ieee80211_sub_if_data *sdata;
int ret = 0;
@ -135,7 +135,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -993,7 +993,10 @@ struct ieee80211_hw *ieee80211_alloc_hw_
@@ -1001,7 +1001,10 @@ struct ieee80211_hw *ieee80211_alloc_hw_
atomic_set(&local->agg_queue_stop[i], 0);
}
tasklet_setup(&local->tx_pending_tasklet, ieee80211_tx_pending);
@ -205,7 +205,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
int i;
sta = kzalloc(sizeof(*sta) + hw->sta_data_size, gfp);
@@ -615,18 +617,22 @@ __sta_info_alloc(struct ieee80211_sub_if
@@ -611,18 +613,22 @@ __sta_info_alloc(struct ieee80211_sub_if
sta->last_connected = ktime_get_seconds();
@ -237,7 +237,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
}
if (sta_prepare_rate_control(local, sta, gfp))
@@ -700,7 +706,8 @@ __sta_info_alloc(struct ieee80211_sub_if
@@ -696,7 +702,8 @@ __sta_info_alloc(struct ieee80211_sub_if
return sta;
free_txq:
@ -247,7 +247,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
free:
sta_info_free_link(&sta->deflink);
#ifdef CPTCFG_MAC80211_MESH
@@ -1719,11 +1726,13 @@ void ieee80211_sta_ps_deliver_wakeup(str
@@ -1715,11 +1722,13 @@ void ieee80211_sta_ps_deliver_wakeup(str
if (!ieee80211_hw_check(&local->hw, AP_LINK_PS))
drv_sta_notify(local, sdata, STA_NOTIFY_AWAKE, &sta->sta);
@ -265,7 +265,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
}
skb_queue_head_init(&pending);
@@ -2138,6 +2147,9 @@ ieee80211_sta_ps_deliver_response(struct
@@ -2134,6 +2143,9 @@ ieee80211_sta_ps_deliver_response(struct
* TIM recalculation.
*/
@ -275,7 +275,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
for (tid = 0; tid < ARRAY_SIZE(sta->sta.txq); tid++) {
if (!sta->sta.txq[tid] ||
!(driver_release_tids & BIT(tid)) ||
@@ -2572,7 +2584,7 @@ static void sta_set_tidstats(struct sta_
@@ -2568,7 +2580,7 @@ static void sta_set_tidstats(struct sta_
tidstats->tx_msdu_failed = sta->deflink.status_stats.msdu_failed[tid];
}
@ -284,7 +284,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
spin_lock_bh(&local->fq.lock);
rcu_read_lock();
@@ -2901,6 +2913,9 @@ unsigned long ieee80211_sta_last_active(
@@ -2897,6 +2909,9 @@ unsigned long ieee80211_sta_last_active(
static void sta_update_codel_params(struct sta_info *sta, u32 thr)
{

View File

@ -10,7 +10,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -4711,16 +4711,14 @@ void ieee80211_check_fast_rx(struct sta_
@@ -4715,16 +4715,14 @@ void ieee80211_check_fast_rx(struct sta_
break;
case NL80211_IFTYPE_MESH_POINT:
@ -30,7 +30,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
default:
goto clear;
}
@@ -4942,10 +4940,7 @@ static bool ieee80211_invoke_fast_rx(str
@@ -4946,10 +4944,7 @@ static bool ieee80211_invoke_fast_rx(str
u8 sa[ETH_ALEN];
} addrs __aligned(2);
struct ieee80211_sta_rx_stats *stats;
@ -41,7 +41,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
/* for parallel-rx, we need to have DUP_VALIDATED, otherwise we write
* to a common data structure; drivers can implement that per queue
@@ -4995,37 +4990,6 @@ static bool ieee80211_invoke_fast_rx(str
@@ -4999,37 +4994,6 @@ static bool ieee80211_invoke_fast_rx(str
snap_offs += IEEE80211_CCMP_HDR_LEN;
}
@ -79,7 +79,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
if (!ieee80211_vif_is_mesh(&rx->sdata->vif) &&
!(status->rx_flags & IEEE80211_RX_AMSDU)) {
if (!pskb_may_pull(skb, snap_offs + sizeof(*payload)))
@@ -5063,30 +5027,6 @@ static bool ieee80211_invoke_fast_rx(str
@@ -5067,30 +5031,6 @@ static bool ieee80211_invoke_fast_rx(str
return true;
}

View File

@ -25,7 +25,7 @@ Signed-off-by: Manish Dharanenthiran <quic_mdharane@quicinc.com>
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -728,7 +728,7 @@ struct ieee80211_if_mesh {
@@ -731,7 +731,7 @@ struct ieee80211_if_mesh {
struct timer_list mesh_path_root_timer;
unsigned long wrkq_flags;

View File

@ -27,7 +27,7 @@ Signed-off-by: Balamurugan Ramar <quic_bramar@quicinc.com>
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -7144,7 +7144,7 @@ void ieee80211_sta_work(struct ieee80211
@@ -7752,7 +7752,7 @@ void ieee80211_sta_work(struct ieee80211
*/
if (status_acked) {
ifmgd->assoc_data->timeout =

View File

@ -1,6 +1,6 @@
--- a/net/mac80211/sta_info.c
+++ b/net/mac80211/sta_info.c
@@ -2412,10 +2412,7 @@ void ieee80211_sta_update_pending_airtim
@@ -2408,10 +2408,7 @@ void ieee80211_sta_update_pending_airtim
atomic_sub(tx_airtime, &local->aql_total_pending_airtime);
tx_pending = atomic_sub_return(tx_airtime,
&local->aql_ac_pending_airtime[ac]);

View File

@ -17,7 +17,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -8756,6 +8756,7 @@ bool cfg80211_rx_spurious_frame(struct n
@@ -8803,6 +8803,7 @@ bool cfg80211_rx_spurious_frame(struct n
* @dev: The device the frame matched to
* @addr: the transmitter address
* @gfp: context flags
@ -25,7 +25,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
*
* This function is used in AP mode (only!) to inform userspace that
* an associated station sent a 4addr frame but that wasn't expected.
@@ -8765,7 +8766,8 @@ bool cfg80211_rx_spurious_frame(struct n
@@ -8812,7 +8813,8 @@ bool cfg80211_rx_spurious_frame(struct n
* for a reason other than not having a subscription.)
*/
bool cfg80211_rx_unexpected_4addr_frame(struct net_device *dev,
@ -37,7 +37,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
* cfg80211_probe_status - notify userspace about probe status
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -2188,9 +2188,16 @@ static int ieee80211_change_station(stru
@@ -2207,9 +2207,16 @@ static int ieee80211_change_station(stru
vlansdata = IEEE80211_DEV_TO_SUB_IF(params->vlan);
if (params->vlan->ieee80211_ptr->use_4addr) {
@ -54,7 +54,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
rcu_assign_pointer(vlansdata->u.vlan.sta, sta);
__ieee80211_check_fast_rx_iface(vlansdata);
@@ -2200,6 +2207,39 @@ static int ieee80211_change_station(stru
@@ -2219,6 +2226,39 @@ static int ieee80211_change_station(stru
else
drv_sta_set_4addr(local, sta->sdata, &sta->sta,
true);
@ -127,7 +127,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -18877,7 +18877,8 @@ void cfg80211_conn_failed(struct net_dev
@@ -18916,7 +18916,8 @@ void cfg80211_conn_failed(struct net_dev
EXPORT_SYMBOL(cfg80211_conn_failed);
static bool __nl80211_unexpected_frame(struct net_device *dev, u8 cmd,
@ -137,7 +137,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
{
struct wireless_dev *wdev = dev->ieee80211_ptr;
struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy);
@@ -18903,6 +18904,9 @@ static bool __nl80211_unexpected_frame(s
@@ -18942,6 +18943,9 @@ static bool __nl80211_unexpected_frame(s
nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, addr))
goto nla_put_failure;
@ -147,7 +147,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
genlmsg_end(msg, hdr);
genlmsg_unicast(wiphy_net(&rdev->wiphy), msg, nlportid);
return true;
@@ -18926,14 +18930,15 @@ bool cfg80211_rx_spurious_frame(struct n
@@ -18965,14 +18969,15 @@ bool cfg80211_rx_spurious_frame(struct n
return false;
}
ret = __nl80211_unexpected_frame(dev, NL80211_CMD_UNEXPECTED_FRAME,
@ -165,7 +165,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
{
struct wireless_dev *wdev = dev->ieee80211_ptr;
bool ret;
@@ -18948,7 +18953,7 @@ bool cfg80211_rx_unexpected_4addr_frame(
@@ -18987,7 +18992,7 @@ bool cfg80211_rx_unexpected_4addr_frame(
}
ret = __nl80211_unexpected_frame(dev,
NL80211_CMD_UNEXPECTED_4ADDR_FRAME,
@ -176,7 +176,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
}
--- a/net/mac80211/chan.c
+++ b/net/mac80211/chan.c
@@ -979,6 +979,8 @@ __ieee80211_link_copy_chanctx_to_vlans(s
@@ -1035,6 +1035,8 @@ __ieee80211_link_copy_chanctx_to_vlans(s
list_for_each_entry(vlan, &sdata->u.ap.vlans, u.vlan.list) {
struct ieee80211_bss_conf *vlan_conf;
@ -185,7 +185,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
vlan_conf = wiphy_dereference(local->hw.wiphy,
vlan->vif.link_conf[link_id]);
if (WARN_ON(!vlan_conf))
@@ -1220,6 +1222,8 @@ ieee80211_link_update_chanreq(struct iee
@@ -1276,6 +1278,8 @@ ieee80211_link_update_chanreq(struct iee
list_for_each_entry(vlan, &sdata->u.ap.vlans, u.vlan.list) {
struct ieee80211_bss_conf *vlan_conf;
@ -196,7 +196,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
if (WARN_ON(!vlan_conf))
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -1847,9 +1847,9 @@ void ieee80211_send_4addr_nullfunc(struc
@@ -2062,9 +2062,9 @@ void ieee80211_send_4addr_nullfunc(struc
fc = cpu_to_le16(IEEE80211_FTYPE_DATA | IEEE80211_STYPE_NULLFUNC |
IEEE80211_FCTL_FROMDS | IEEE80211_FCTL_TODS);
nullfunc->frame_control = fc;