ath11k_nss: refresh patches + cleanup Makefile

This commit is contained in:
Qosmio 2024-02-27 00:46:09 -05:00 committed by Sean Khan
parent 442263a680
commit d465fce411
75 changed files with 450 additions and 466 deletions

View File

@ -309,8 +309,6 @@ ifdef CONFIG_ATH11K_NSS_SUPPORT
IREMAP_CFLAGS+=-I$(STAGING_DIR)/usr/include/qca-nss-drv -I$(STAGING_DIR)/usr/include/qca-nss-clients
endif
NSS_PATCHES:= subsys ath10k ath11k
config-$(CONFIG_PACKAGE_MAC80211_NSS_SUPPORT) += MAC80211_NSS_SUPPORT
MAKE_OPTS:= \
@ -434,6 +432,13 @@ define Build/InstallDev
rm -f $(1)/usr/include/mac80211-backport/linux/module.h
endef
ifdef CONFIG_ATH11K_NSS_SUPPORT
define KernelPackage/ath11k/install
$(INSTALL_DIR) $(1)/etc/init.d $(1)/etc/config
$(INSTALL_BIN) ./files/qca-nss-pbuf.init $(1)/etc/init.d/qca-nss-pbuf
$(INSTALL_BIN) ./files/pbuf.uci $(1)/etc/config/pbuf
endef
endif
$(eval $(foreach drv,$(PKG_DRIVERS),$(call KernelPackage,$(drv))))
$(eval $(call KernelPackage,cfg80211))

View File

@ -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
@@ -2756,10 +2756,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;
@@ -2769,6 +2802,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;
@@ -2785,18 +2820,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;
@@ -2825,8 +2848,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));
@@ -2835,6 +2856,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;

View File

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath11k/core.c
+++ b/drivers/net/wireless/ath/ath11k/core.c
@@ -26,10 +26,10 @@ module_param_named(crypto_mode, ath11k_c
@@ -27,10 +27,10 @@ module_param_named(crypto_mode, ath11k_c
MODULE_PARM_DESC(crypto_mode, "crypto mode: 0-hardware, 1-software");
/* frame mode values are mapped as per enum ath11k_hw_txrx_mode */
@ -11,5 +11,5 @@
- "Datapath frame mode (0: raw, 1: native wifi (default), 2: ethernet)");
+ "Datapath frame mode (0: raw, 1: native wifi, 2: ethernet(default))");
struct ath11k_base *ath11k_soc[MAX_SOCS];
bool ath11k_ftm_mode;
module_param_named(ftm_mode, ath11k_ftm_mode, bool, 0444);

View File

@ -31,7 +31,7 @@ Signed-off-by: Miles Hu <milehu@codeaurora.org>
spin_unlock_bh(&ar->ab->base_lock);
--- a/drivers/net/wireless/ath/ath11k/hal_rx.c
+++ b/drivers/net/wireless/ath/ath11k/hal_rx.c
@@ -1480,6 +1480,7 @@ ath11k_hal_rx_parse_mon_status_tlv(struc
@@ -1478,6 +1478,7 @@ ath11k_hal_rx_parse_mon_status_tlv(struc
ab->wmi_ab.svc_map);
struct hal_rx_phyrx_rssi_legacy_info *rssi =
(struct hal_rx_phyrx_rssi_legacy_info *)tlv_data;
@ -39,7 +39,7 @@ Signed-off-by: Miles Hu <milehu@codeaurora.org>
/* TODO: Please note that the combined rssi will not be accurate
* in MU case. Rssi in MU needs to be retrieved from
@@ -1489,6 +1490,22 @@ ath11k_hal_rx_parse_mon_status_tlv(struc
@@ -1487,6 +1488,22 @@ ath11k_hal_rx_parse_mon_status_tlv(struc
FIELD_GET(HAL_RX_PHYRX_RSSI_LEGACY_INFO_INFO0_RSSI_COMB,
__le32_to_cpu(rssi->info0));
@ -64,7 +64,7 @@ Signed-off-by: Miles Hu <milehu@codeaurora.org>
ppdu_info->rssi_chain_pri20[i] =
--- a/drivers/net/wireless/ath/ath11k/hal_rx.h
+++ b/drivers/net/wireless/ath/ath11k/hal_rx.h
@@ -408,6 +408,15 @@ struct hal_rx_he_sig_b2_ofdma_info {
@@ -414,6 +414,15 @@ struct hal_rx_he_sig_b2_ofdma_info {
#define HAL_RX_PHYRX_RSSI_LEGACY_INFO_INFO0_RSSI_COMB GENMASK(15, 8)

View File

@ -5,7 +5,7 @@
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -5376,8 +5376,11 @@ int ath11k_dp_rx_process_mon_status(stru
@@ -5451,8 +5451,11 @@ int ath11k_dp_rx_process_mon_status(stru
goto next_skb;
}
@ -33,7 +33,7 @@
__le32_to_cpu(eu_stats->info7))) - 1;
--- a/drivers/net/wireless/ath/ath11k/hal_rx.h
+++ b/drivers/net/wireless/ath/ath11k/hal_rx.h
@@ -66,6 +66,7 @@ enum hal_rx_reception_type {
@@ -70,6 +70,7 @@ enum hal_rx_reception_type {
};
#define HAL_RX_FCS_LEN 4
@ -41,7 +41,7 @@
enum hal_rx_mon_status {
HAL_RX_MON_STATUS_PPDU_NOT_DONE,
@@ -150,6 +151,7 @@ struct hal_rx_mon_ppdu_info {
@@ -171,6 +172,7 @@ struct hal_rx_mon_ppdu_info {
u8 rssi_comb;
u8 rssi_chain_pri20[HAL_RX_MAX_NSS];
u16 tid;

View File

@ -15,7 +15,7 @@
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -2893,11 +2893,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;
@@ -2919,10 +2920,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;
@@ -2980,7 +2984,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));
@@ -2998,10 +3001,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 &&
@@ -3034,7 +3037,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 @@
}
@@ -5372,6 +5488,55 @@ static void ath11k_dp_rx_mon_dest_proces
@@ -5380,6 +5496,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)
{
@@ -5445,8 +5610,13 @@ int ath11k_dp_rx_process_mon_status(stru
@@ -5453,8 +5618,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
@@ -2297,6 +2297,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,
@@ -2338,7 +2374,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

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath11k/core.h
+++ b/drivers/net/wireless/ath/ath11k/core.h
@@ -312,6 +312,16 @@ struct ath11k_rekey_data {
@@ -314,6 +314,16 @@ struct ath11k_rekey_data {
bool enable_offload;
};
@ -17,7 +17,7 @@
struct ath11k_vif {
u32 vdev_id;
enum wmi_vdev_type vdev_type;
@@ -370,6 +380,8 @@ struct ath11k_vif {
@@ -372,6 +382,8 @@ struct ath11k_vif {
#ifdef CPTCFG_ATH11K_DEBUGFS
struct dentry *debugfs_twt;
#endif /* CPTCFG_ATH11K_DEBUGFS */
@ -128,7 +128,7 @@
debugfs_create_file("dfs_simulate_radar", 0200,
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -6151,9 +6151,9 @@ static int ath11k_mac_mgmt_tx(struct ath
@@ -6148,9 +6148,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) {
@ -140,7 +140,7 @@
}
if (skb_queue_len_lockless(q) >= ATH11K_TX_MGMT_NUM_PENDING_MAX) {
@@ -6179,9 +6179,11 @@ static void ath11k_mac_op_tx(struct ieee
@@ -6176,9 +6176,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;
@ -152,7 +152,7 @@
int ret;
memset(skb_cb, 0, sizeof(*skb_cb));
@@ -6195,12 +6197,21 @@ static void ath11k_mac_op_tx(struct ieee
@@ -6192,12 +6194,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)) {
@ -178,7 +178,7 @@
}
--- a/drivers/net/wireless/ath/ath11k/peer.c
+++ b/drivers/net/wireless/ath/ath11k/peer.c
@@ -444,6 +444,7 @@ int ath11k_peer_create(struct ath11k *ar
@@ -458,6 +458,7 @@ int ath11k_peer_create(struct ath11k *ar
peer->sec_type = HAL_ENCRYPT_TYPE_OPEN;
peer->sec_type_grp = HAL_ENCRYPT_TYPE_OPEN;
@ -198,7 +198,7 @@
int peer_id;
--- a/drivers/net/wireless/ath/ath11k/wmi.c
+++ b/drivers/net/wireless/ath/ath11k/wmi.c
@@ -5825,6 +5825,12 @@ static int wmi_process_mgmt_tx_comp(stru
@@ -5823,6 +5823,12 @@ static int wmi_process_mgmt_tx_comp(stru
struct sk_buff *msdu;
struct ieee80211_tx_info *info;
struct ath11k_skb_cb *skb_cb;
@ -211,7 +211,7 @@
int num_mgmt;
spin_lock_bh(&ar->txmgmt_idr_lock);
@@ -5852,6 +5858,31 @@ static int wmi_process_mgmt_tx_comp(stru
@@ -5850,6 +5856,31 @@ static int wmi_process_mgmt_tx_comp(stru
info->status.ack_signal = tx_compl_param->ack_rssi;
}
@ -243,7 +243,7 @@
ieee80211_tx_status_irqsafe(ar->hw, msdu);
num_mgmt = atomic_dec_if_positive(&ar->num_pending_mgmt_tx);
@@ -7521,6 +7552,11 @@ static void ath11k_mgmt_rx_event(struct
@@ -7519,6 +7550,11 @@ static void ath11k_mgmt_rx_event(struct
struct ieee80211_hdr *hdr;
u16 fc;
struct ieee80211_supported_band *sband;
@ -255,7 +255,7 @@
if (ath11k_pull_mgmt_rx_params_tlv(ab, skb, &rx_ev) != 0) {
ath11k_warn(ab, "failed to extract mgmt rx event");
@@ -7586,7 +7622,34 @@ static void ath11k_mgmt_rx_event(struct
@@ -7584,7 +7620,34 @@ static void ath11k_mgmt_rx_event(struct
hdr = (struct ieee80211_hdr *)skb->data;
fc = le16_to_cpu(hdr->frame_control);

View File

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath11k/qmi.c
+++ b/drivers/net/wireless/ath/ath11k/qmi.c
@@ -2101,6 +2101,9 @@ static int ath11k_qmi_assign_target_mem_
@@ -2100,6 +2100,9 @@ static int ath11k_qmi_assign_target_mem_
ab->qmi.target_mem[idx].type = ab->qmi.target_mem[i].type;
idx++;
break;

View File

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -9571,6 +9571,8 @@ static int __ath11k_mac_register(struct
@@ -9579,6 +9579,8 @@ static int __ath11k_mac_register(struct
wiphy_ext_feature_set(ar->hw->wiphy,
NL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT);

View File

@ -2803,7 +2803,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
static inline void ath11k_pci_select_window(struct ath11k_pci *ab_pci, u32 offset)
{
struct ath11k_base *ab = ab_pci->ab;
@@ -708,6 +722,7 @@ static const struct ath11k_hif_ops ath11
@@ -710,6 +724,7 @@ static const struct ath11k_hif_ops ath11
.map_service_to_pipe = ath11k_pcic_map_service_to_pipe,
.ce_irq_enable = ath11k_pci_hif_ce_irq_enable,
.ce_irq_disable = ath11k_pci_hif_ce_irq_disable,
@ -2845,7 +2845,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
@@ -1166,6 +1166,44 @@ int ath11k_wmi_send_pdev_set_regdomain(s
@@ -1164,6 +1164,44 @@ int ath11k_wmi_send_pdev_set_regdomain(s
return ret;
}
@ -2995,7 +2995,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
@@ -6370,6 +6370,16 @@ static int ath11k_mac_op_start(struct ie
@@ -6367,6 +6367,16 @@ static int ath11k_mac_op_start(struct ie
goto err;
}

View File

@ -357,7 +357,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
if (ar->ab->hw_params.rxdma1_enable) {
rx_ring = &dp->rxdma_mon_buf_ring;
@@ -2029,7 +2032,7 @@ static void ath11k_dp_rx_h_csum_offload(
@@ -2035,7 +2038,7 @@ static void ath11k_dp_rx_h_csum_offload(
CHECKSUM_NONE : CHECKSUM_UNNECESSARY;
}
@ -366,7 +366,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
enum hal_encrypt_type enctype)
{
switch (enctype) {
@@ -2056,7 +2059,7 @@ static int ath11k_dp_rx_crypto_mic_len(s
@@ -2062,7 +2065,7 @@ static int ath11k_dp_rx_crypto_mic_len(s
return 0;
}
@ -375,7 +375,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
enum hal_encrypt_type enctype)
{
switch (enctype) {
@@ -2084,7 +2087,7 @@ static int ath11k_dp_rx_crypto_param_len
@@ -2090,7 +2093,7 @@ static int ath11k_dp_rx_crypto_param_len
return 0;
}
@ -384,7 +384,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
enum hal_encrypt_type enctype)
{
switch (enctype) {
@@ -2820,6 +2823,22 @@ static void ath11k_dp_rx_process_receive
@@ -2826,6 +2829,22 @@ static void ath11k_dp_rx_process_receive
}
}
@ -407,7 +407,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)
{
@@ -3127,6 +3146,13 @@ static void ath11k_dp_rx_update_user_sta
@@ -3133,6 +3152,13 @@ static void ath11k_dp_rx_update_user_sta
arsta = (struct ath11k_sta *)peer->sta->drv_priv;
rx_stats = arsta->rx_stats;
@ -421,7 +421,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
if (!rx_stats)
return;
@@ -3203,8 +3229,10 @@ static void ath11k_dp_rx_update_peer_mu_
@@ -3209,8 +3235,10 @@ static void ath11k_dp_rx_update_peer_mu_
{
u32 num_users, i;
@ -433,7 +433,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
num_users = ppdu_info->num_users;
if (num_users > HAL_MAX_UL_MU_USERS)
@@ -5607,7 +5635,7 @@ int ath11k_dp_rx_process_mon_status(stru
@@ -5613,7 +5641,7 @@ int ath11k_dp_rx_process_mon_status(stru
struct sk_buff *skb;
struct sk_buff_head skb_list;
struct ath11k_peer *peer;
@ -442,7 +442,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
int num_buffs_reaped = 0;
u32 rx_buf_sz;
u16 log_type;
@@ -5675,6 +5703,7 @@ int ath11k_dp_rx_process_mon_status(stru
@@ -5681,6 +5709,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);
@ -623,7 +623,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
exit:
mutex_unlock(&ar->conf_mutex);
return ret;
@@ -6219,10 +6282,14 @@ static void ath11k_mac_op_tx(struct ieee
@@ -6216,10 +6279,14 @@ static void ath11k_mac_op_tx(struct ieee
if (control->sta)
arsta = ath11k_sta_to_arsta(control->sta);
@ -639,7 +639,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
}
}
@@ -6244,6 +6311,8 @@ static int ath11k_mac_config_mon_status_
@@ -6241,6 +6308,8 @@ static int ath11k_mac_config_mon_status_
if (enable) {
tlv_filter = ath11k_mac_mon_status_filter_default;
@ -648,7 +648,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
if (ath11k_debugfs_rx_filter(ar))
tlv_filter.rx_filter = ath11k_debugfs_rx_filter(ar);
}
@@ -6542,7 +6611,7 @@ static int ath11k_mac_setup_vdev_create_
@@ -6539,7 +6608,7 @@ static int ath11k_mac_setup_vdev_create_
return 0;
}
@ -657,7 +657,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
struct ieee80211_vif *vif)
{
struct ath11k *ar = hw->priv;
@@ -6588,6 +6657,8 @@ static void ath11k_mac_op_update_vif_off
@@ -6585,6 +6654,8 @@ static void ath11k_mac_op_update_vif_off
arvif->vdev_id, ret);
vif->offload_flags &= ~IEEE80211_OFFLOAD_DECAP_ENABLED;
}
@ -666,7 +666,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
}
static bool ath11k_mac_vif_ap_active_any(struct ath11k_base *ab)
@@ -6718,6 +6789,8 @@ static int ath11k_mac_vdev_delete(struct
@@ -6715,6 +6786,8 @@ static int ath11k_mac_vdev_delete(struct
reinit_completion(&ar->vdev_delete_done);
@ -675,7 +675,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",
@@ -6858,7 +6931,34 @@ static int ath11k_mac_op_add_interface(s
@@ -6855,7 +6928,34 @@ static int ath11k_mac_op_add_interface(s
list_add(&arvif->list, &ar->arvifs);
spin_unlock_bh(&ar->data_lock);
@ -711,7 +711,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,
@@ -6982,6 +7082,7 @@ err_peer_del:
@@ -6979,6 +7079,7 @@ err_peer_del:
}
err_vdev_del:
@ -719,7 +719,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);
@@ -7492,6 +7593,10 @@ ath11k_mac_update_vif_chan(struct ath11k
@@ -7489,6 +7590,10 @@ ath11k_mac_update_vif_chan(struct ath11k
arvif->vdev_id, ret);
continue;
}
@ -730,7 +730,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
}
/* Restart the internal monitor vdev on new channel */
@@ -8720,6 +8825,8 @@ static void ath11k_mac_op_sta_statistics
@@ -8717,6 +8822,8 @@ static void ath11k_mac_op_sta_statistics
sinfo->signal_avg = ewma_avg_rssi_read(&arsta->avg_rssi) +
ATH11K_DEFAULT_NOISE_FLOOR;
sinfo->filled |= BIT_ULL(NL80211_STA_INFO_SIGNAL_AVG);
@ -739,7 +739,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
}
#if IS_ENABLED(CONFIG_IPV6)
@@ -9139,6 +9246,7 @@ static const struct ieee80211_ops ath11k
@@ -9144,6 +9251,7 @@ static const struct ieee80211_ops ath11k
.update_vif_offload = ath11k_mac_op_update_vif_offload,
.config = ath11k_mac_op_config,
.bss_info_changed = ath11k_mac_op_bss_info_changed,
@ -747,7 +747,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,
@@ -9524,7 +9632,8 @@ static int __ath11k_mac_register(struct
@@ -9529,7 +9637,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);
@ -757,7 +757,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
}
ar->hw->wiphy->features |= NL80211_FEATURE_STATIC_SMPS;
@@ -9637,6 +9746,9 @@ static int __ath11k_mac_register(struct
@@ -9644,6 +9753,9 @@ static int __ath11k_mac_register(struct
ab->hw_params.bios_sar_capa)
ar->hw->wiphy->sar_capa = ab->hw_params.bios_sar_capa;

View File

@ -21,7 +21,7 @@ Signed-off-by: Seevalamuthu Mariappan <seevalam@codeaurora.org>
--- a/drivers/net/wireless/ath/ath11k/core.h
+++ b/drivers/net/wireless/ath/ath11k/core.h
@@ -117,6 +117,7 @@ struct ath11k_skb_cb {
@@ -119,6 +119,7 @@ struct ath11k_skb_cb {
u32 cipher;
struct ath11k *ar;
struct ieee80211_vif *vif;
@ -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
@@ -9763,6 +9763,9 @@ static int __ath11k_mac_register(struct
@@ -9770,6 +9770,9 @@ static int __ath11k_mac_register(struct
*/
ar->hw->wiphy->interface_modes &= ~BIT(NL80211_IFTYPE_MONITOR);

View File

@ -246,8 +246,8 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
{
.hw_rev = ATH11K_HW_IPQ6018_HW10,
@@ -177,7 +180,7 @@ static struct ath11k_hw_params ath11k_hw
.coldboot_cal_mm = true,
.coldboot_cal_ftm = true,
.coldboot_cal_mm = false,
.coldboot_cal_ftm = false,
.cbcal_restart_fw = true,
- .fw_mem_mode = 0,
+ .fw_mem_mode = ATH11K_QMI_TARGET_MEM_MODE,

View File

@ -13,7 +13,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
--- a/drivers/net/wireless/ath/ath11k/nss.c
+++ b/drivers/net/wireless/ath/ath11k/nss.c
@@ -306,6 +306,22 @@ void ath11k_nss_wifili_event_receive(str
@@ -307,6 +307,22 @@ void ath11k_nss_wifili_event_receive(str
case NSS_WIFILI_TID_REOQ_SETUP_MSG:
/* TODO setup tidq */
break;
@ -36,7 +36,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
default:
ath11k_dbg(ab, ATH11K_DBG_NSS, "unhandled event %d\n", msg_type);
break;
@@ -416,13 +432,6 @@ static void ath11k_nss_vdev_event_receiv
@@ -417,13 +433,6 @@ static void ath11k_nss_vdev_event_receiv
/*TODO*/
}
@ -50,7 +50,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
/* TODO: move to mac80211 after cleanups/refactoring required after feature completion */
static int ath11k_nss_deliver_rx(struct ieee80211_vif *vif, struct sk_buff *skb,
bool eth, int data_offs, struct napi_struct *napi)
@@ -546,11 +555,239 @@ static int ath11k_nss_undecap_nwifi(stru
@@ -547,11 +556,239 @@ static int ath11k_nss_undecap_nwifi(stru
return 0;
}
@ -291,7 +291,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
struct wireless_dev *wdev = NULL;
struct ieee80211_vif *vif = NULL;
struct ath11k_vif *arvif;
@@ -590,28 +827,16 @@ ath11k_nss_vdev_data_receive(struct net_
@@ -591,28 +828,16 @@ ath11k_nss_vdev_data_receive(struct net_
ath11k_dbg_dump(ab, ATH11K_DBG_DP_RX, "", "dp rx msdu from nss: ",
skb->data, skb->len);
@ -327,7 +327,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
dev_kfree_skb_any(skb);
return;
}
@@ -1320,7 +1545,7 @@ void ath11k_nss_update_sta_rxrate(struct
@@ -1321,7 +1546,7 @@ void ath11k_nss_update_sta_rxrate(struct
peer->nss.nss_stats->rxrate.bw = ath11k_mac_bw_to_mac80211_bw(ppdu_info->bw);
}
@ -336,7 +336,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
{
struct nss_wifili_peer_msg *peer_msg;
struct nss_wifili_msg *wlmsg = NULL;
@@ -1334,9 +1559,10 @@ int ath11k_nss_peer_delete(struct ath11k
@@ -1335,9 +1560,10 @@ int ath11k_nss_peer_delete(struct ath11k
spin_lock_bh(&ab->base_lock);
@ -349,7 +349,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
spin_unlock_bh(&ab->base_lock);
return -EINVAL;
}
@@ -1409,8 +1635,9 @@ free_peer:
@@ -1410,8 +1636,9 @@ free_peer:
return ret;
}
@ -360,7 +360,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
struct nss_wifili_peer_msg *peer_msg;
struct nss_wifili_msg *wlmsg = NULL;
nss_wifili_msg_callback_t msg_cb;
@@ -1467,17 +1694,23 @@ int ath11k_nss_peer_create(struct ath11k
@@ -1468,17 +1695,23 @@ int ath11k_nss_peer_create(struct ath11k
status = nss_wifili_tx_msg(ab->nss.ctx, wlmsg);
if (status != NSS_TX_SUCCESS) {
ret = -EINVAL;
@ -387,7 +387,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
peer->nss.nss_stats = kzalloc(sizeof(*peer->nss.nss_stats), GFP_ATOMIC);
if (!peer->nss.nss_stats) {
ret = -ENOMEM;
@@ -1496,6 +1729,199 @@ msg_free:
@@ -1497,6 +1730,199 @@ msg_free:
return ret;
}
@ -587,7 +587,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
/*-------------------------------INIT/DEINIT---------------------------------*/
static int ath11k_nss_radio_buf_cfg(struct ath11k *ar, int range, int buf_sz)
@@ -1886,7 +2312,7 @@ static int ath11k_nss_init(struct ath11k
@@ -1890,7 +2316,7 @@ static int ath11k_nss_init(struct ath11k
status = nss_wifili_tx_msg(nss_contex, wlmsg);
if (status != NSS_TX_SUCCESS) {
@ -596,7 +596,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
goto unregister;
}
@@ -1940,7 +2366,8 @@ static int ath11k_nss_stats_cfg(struct a
@@ -1944,7 +2370,8 @@ static int ath11k_nss_stats_cfg(struct a
status = nss_wifili_tx_msg(ar->nss.ctx, wlmsg);
if (status != NSS_TX_SUCCESS) {

View File

@ -34,7 +34,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
#endif
struct ath11k_pdev_dp dp;
u8 mac_addr[ETH_ALEN];
@@ -1042,6 +1043,9 @@ struct ath11k_base {
@@ -1047,6 +1048,9 @@ struct ath11k_base {
} testmode;
#endif
@ -67,7 +67,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
struct htt_resp_msg {
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -1849,6 +1849,8 @@ void ath11k_dp_htt_htc_t2h_msg_handler(s
@@ -1857,6 +1857,8 @@ void ath11k_dp_htt_htc_t2h_msg_handler(s
u16 peer_mac_h16;
u16 ast_hash;
u16 hw_peer_id;
@ -76,7 +76,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
ath11k_dbg(ab, ATH11K_DBG_DP_HTT, "dp_htt rx msg type :0x%0x\n", type);
@@ -1884,15 +1886,29 @@ void ath11k_dp_htt_htc_t2h_msg_handler(s
@@ -1892,15 +1894,29 @@ void ath11k_dp_htt_htc_t2h_msg_handler(s
resp->peer_map_ev.info2);
hw_peer_id = FIELD_GET(HTT_T2H_PEER_MAP_INFO1_HW_PEER_ID,
resp->peer_map_ev.info1);
@ -776,7 +776,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
#endif /* _PEER_H_ */
--- a/drivers/net/wireless/ath/ath11k/wmi.c
+++ b/drivers/net/wireless/ath/ath11k/wmi.c
@@ -154,6 +154,8 @@ static const struct wmi_tlv_policy wmi_t
@@ -156,6 +156,8 @@ static const struct wmi_tlv_policy wmi_t
.min_len = sizeof(struct wmi_per_chain_rssi_stats) },
[WMI_TAG_TWT_ADD_DIALOG_COMPLETE_EVENT] = {
.min_len = sizeof(struct wmi_twt_add_dialog_event) },
@ -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)
{
@@ -6362,6 +6409,36 @@ static int ath11k_pull_peer_assoc_conf_e
@@ -6363,6 +6410,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)
{
@@ -7277,6 +7354,7 @@ static int ath11k_wmi_tlv_rdy_parse(stru
@@ -7278,6 +7355,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:
@@ -8717,6 +8795,22 @@ static void ath11k_wmi_gtk_offload_statu
@@ -8797,6 +8875,22 @@ exit:
kfree(tb);
}
@ -905,7 +905,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
static void ath11k_wmi_tlv_op_rx(struct ath11k_base *ab, struct sk_buff *skb)
{
struct wmi_cmd_hdr *cmd_hdr;
@@ -8844,6 +8938,9 @@ static void ath11k_wmi_tlv_op_rx(struct
@@ -8927,6 +9021,9 @@ static void ath11k_wmi_tlv_op_rx(struct
case WMI_GTK_OFFLOAD_STATUS_EVENTID:
ath11k_wmi_gtk_offload_status_event(ab, skb);
break;
@ -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
@@ -3009,6 +3009,21 @@ struct wmi_peer_delete_cmd {
@@ -3011,6 +3011,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;
@@ -4611,6 +4626,21 @@ struct wmi_probe_resp_tx_status_event {
@@ -4613,6 +4628,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
*/
@@ -6400,6 +6430,9 @@ int ath11k_wmi_set_sta_ps_param(struct a
@@ -6412,6 +6442,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
@@ -6132,6 +6132,16 @@ static int ath11k_mac_mgmt_tx_wmi(struct
@@ -6129,6 +6129,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);
@@ -6199,8 +6209,8 @@ static void ath11k_mgmt_over_wmi_tx_work
@@ -6196,8 +6206,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;
@@ -6262,7 +6272,7 @@ static void ath11k_mac_op_tx(struct ieee
@@ -6259,7 +6269,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",
@@ -6277,6 +6287,20 @@ static void ath11k_mac_op_tx(struct ieee
@@ -6274,6 +6284,20 @@ static void ath11k_mac_op_tx(struct ieee
spin_unlock_bh(&ar->data_lock);
}
return;
@ -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]
@@ -699,6 +699,55 @@ int ath11k_wmi_mgmt_send(struct ath11k *
@@ -701,6 +701,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)
{
@@ -5857,8 +5906,8 @@ static int ath11k_pull_mgmt_rx_params_tl
@@ -5905,8 +5954,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;
@@ -5896,6 +5945,11 @@ static int wmi_process_mgmt_tx_comp(stru
@@ -5944,6 +5993,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);
@@ -5914,10 +5968,13 @@ static int wmi_process_mgmt_tx_comp(stru
@@ -5962,10 +6016,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:
@@ -5939,12 +5996,13 @@ skip_mgmt_stats:
@@ -5987,12 +6044,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->data, skb->len, GFP_ATOMIC);
@@ -5954,7 +6012,7 @@ static int ath11k_pull_mgmt_tx_compl_par
@@ -6002,7 +6060,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);
@@ -7731,10 +7789,11 @@ exit:
@@ -7810,10 +7868,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;
}
@@ -7747,7 +7806,7 @@ static void ath11k_mgmt_tx_compl_event(s
@@ -7826,7 +7885,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",
@@ -7758,6 +7817,36 @@ exit:
@@ -7837,6 +7896,36 @@ exit:
rcu_read_unlock();
}
@ -275,9 +275,9 @@ 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)
@@ -8844,6 +8933,10 @@ static void ath11k_wmi_tlv_op_rx(struct
case WMI_GTK_OFFLOAD_STATUS_EVENTID:
ath11k_wmi_gtk_offload_status_event(ab, skb);
@@ -9024,6 +9113,10 @@ static void ath11k_wmi_tlv_op_rx(struct
case WMI_WDS_PEER_EVENTID:
ath11k_wmi_wds_peer_event(ab, skb);
break;
+ case WMI_QOS_NULL_FRAME_TX_COMPLETION_EVENTID:
+ ath11k_qos_null_compl_event(ab, skb);
@ -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,
@@ -1878,6 +1881,9 @@ enum wmi_tlv_tag {
@@ -1880,6 +1883,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_PDEV_SET_BIOS_SAR_TABLE_CMD = 0x3D8,
WMI_TAG_PDEV_SET_BIOS_GEO_TABLE_CMD,
WMI_TAG_MAX
@@ -2107,7 +2113,17 @@ enum wmi_tlv_service {
@@ -2109,7 +2115,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,
@@ -3814,6 +3830,7 @@ struct wmi_scan_prob_req_oui_cmd {
@@ -3831,6 +3847,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)
@@ -3824,9 +3841,10 @@ struct wmi_scan_prob_req_oui_cmd {
@@ -3841,9 +3858,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;
@@ -4917,7 +4935,7 @@ struct wmi_rssi_ctl_ext {
@@ -4959,7 +4977,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;
@@ -5748,6 +5766,17 @@ struct wmi_debug_log_config_cmd_fixed_pa
@@ -5790,6 +5808,17 @@ struct wmi_debug_log_config_cmd_fixed_pa
u32 value;
} __packed;
@ -381,7 +381,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
#define WMI_MAX_MEM_REQS 32
#define MAX_RADIOS 3
@@ -6358,6 +6387,8 @@ int ath11k_wmi_cmd_send(struct ath11k_pd
@@ -6400,6 +6429,8 @@ int ath11k_wmi_cmd_send(struct ath11k_pd
struct sk_buff *ath11k_wmi_alloc_skb(struct ath11k_wmi_base *wmi_sc, u32 len);
int ath11k_wmi_mgmt_send(struct ath11k *ar, u32 vdev_id, u32 buf_id,
struct sk_buff *frame);

View File

@ -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
@@ -4748,6 +4748,11 @@ static void ath11k_sta_rc_update_wk(stru
@@ -4744,6 +4744,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;
@@ -4919,17 +4924,28 @@ err_rc_bw_changed:
@@ -4915,17 +4920,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,
@@ -4937,8 +4953,93 @@ static void ath11k_sta_set_4addr_wk(stru
@@ -4933,8 +4949,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,
@@ -5268,9 +5369,32 @@ static void ath11k_mac_op_sta_set_4addr(
@@ -5264,9 +5365,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;
}
@@ -6654,6 +6778,9 @@ static int ath11k_mac_op_update_vif_offl
@@ -6646,6 +6770,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 &&
@@ -6874,7 +7001,8 @@ static int ath11k_mac_op_add_interface(s
@@ -6866,7 +6993,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;
@@ -6894,6 +7022,28 @@ static int ath11k_mac_op_add_interface(s
@@ -6886,6 +7014,28 @@ static int ath11k_mac_op_add_interface(s
arvif->vif = vif;
INIT_LIST_HEAD(&arvif->list);
@ -263,7 +263,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
INIT_DELAYED_WORK(&arvif->connection_loss_work,
ath11k_mac_vif_sta_connection_loss_work);
@@ -6923,6 +7073,7 @@ static int ath11k_mac_op_add_interface(s
@@ -6915,6 +7065,7 @@ static int ath11k_mac_op_add_interface(s
fallthrough;
case NL80211_IFTYPE_AP:
arvif->vdev_type = WMI_VDEV_TYPE_AP;
@ -271,7 +271,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
break;
case NL80211_IFTYPE_MONITOR:
arvif->vdev_type = WMI_VDEV_TYPE_MONITOR;
@@ -7145,13 +7296,30 @@ static void ath11k_mac_op_remove_interfa
@@ -7137,13 +7288,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);
@@ -7168,6 +7336,14 @@ static void ath11k_mac_op_remove_interfa
@@ -7160,6 +7328,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);
@@ -7211,8 +7387,7 @@ err_vdev_del:
@@ -7203,8 +7379,7 @@ err_vdev_del:
ath11k_debugfs_remove_interface(arvif);
@ -329,7 +329,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
mutex_unlock(&ar->conf_mutex);
}
@@ -7272,16 +7447,17 @@ static int ath11k_mac_op_ampdu_action(st
@@ -7264,16 +7439,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:
@@ -8804,6 +8980,7 @@ static void ath11k_mac_op_sta_statistics
@@ -8796,6 +8972,7 @@ static void ath11k_mac_op_sta_statistics
{
struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta);
struct ath11k *ar = arsta->arvif->ar;
@ -357,7 +357,7 @@ 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);
@@ -8860,7 +9037,8 @@ static void ath11k_mac_op_sta_statistics
@@ -8852,7 +9029,8 @@ static void ath11k_mac_op_sta_statistics
ATH11K_DEFAULT_NOISE_FLOOR;
sinfo->filled |= BIT_ULL(NL80211_STA_INFO_SIGNAL_AVG);
@ -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
@@ -5070,6 +5070,8 @@ enum wmi_vdev_subtype {
@@ -5082,6 +5082,8 @@ enum wmi_vdev_subtype {
WMI_VDEV_SUBTYPE_MESH_11S,
};
@ -380,7 +380,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
WMI_STA_PS_PARAM_TX_WAKE_THRESHOLD = 1,
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -1156,12 +1156,13 @@ err_mem_free:
@@ -1121,12 +1121,13 @@ err_mem_free:
return ret;
}
@ -396,7 +396,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
int ret;
ret = ath11k_peer_rx_tid_setup(ar, params->sta->addr, vdev_id,
@@ -1173,13 +1174,13 @@ int ath11k_dp_rx_ampdu_start(struct ath1
@@ -1138,13 +1139,13 @@ int ath11k_dp_rx_ampdu_start(struct ath1
return ret;
}

View File

@ -15,7 +15,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
--- a/drivers/net/wireless/ath/ath11k/nss.c
+++ b/drivers/net/wireless/ath/ath11k/nss.c
@@ -1526,14 +1526,11 @@ static int ath11k_nss_ext_vdev_register(
@@ -1527,14 +1527,11 @@ static int ath11k_nss_ext_vdev_register(
struct ath11k *ar = arvif->ar;
struct ath11k_base *ab = ar->ab;
nss_tx_status_t status;
@ -30,7 +30,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
arvif->nss.ctx = nss_wifi_ext_vdev_register_if(arvif->nss.if_num,
ath11k_nss_ext_vdev_data_receive,
ath11k_nss_ext_vdev_special_data_receive,
@@ -1561,7 +1558,8 @@ static void ath11k_nss_ext_vdev_free(str
@@ -1562,7 +1559,8 @@ static void ath11k_nss_ext_vdev_free(str
status = nss_dynamic_interface_dealloc_node(
arvif->nss.if_num,
@ -40,7 +40,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
if (status != NSS_TX_SUCCESS)
ath11k_warn(ab, "failed to free nss ext vdev err:%d\n",
status);
@@ -1570,14 +1568,19 @@ static void ath11k_nss_ext_vdev_free(str
@@ -1571,14 +1569,19 @@ static void ath11k_nss_ext_vdev_free(str
"nss ext vdev interface deallocated\n");
}
@ -62,7 +62,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
if_num = nss_dynamic_interface_alloc_node(di_type);
if (if_num < 0) {
ath11k_warn(ab, "failed to allocate nss ext vdev\n");
@@ -1586,8 +1589,8 @@ static int ath11k_nss_ext_vdev_alloc(str
@@ -1587,8 +1590,8 @@ static int ath11k_nss_ext_vdev_alloc(str
arvif->nss.if_num = if_num;
ath11k_dbg(ab, ATH11K_DBG_NSS_WDS,
@ -73,7 +73,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
return 0;
}
@@ -1616,7 +1619,7 @@ int ath11k_nss_ext_vdev_create(struct at
@@ -1617,7 +1620,7 @@ int ath11k_nss_ext_vdev_create(struct at
return -EINVAL;
}
@ -82,7 +82,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
if (ret)
return ret;
@@ -1729,6 +1732,86 @@ free:
@@ -1730,6 +1733,86 @@ free:
return ret;
}

View File

@ -36,7 +36,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
@@ -97,6 +97,11 @@ enum ath11k_crypt_mode {
@@ -99,6 +99,11 @@ enum ath11k_crypt_mode {
ATH11K_CRYPT_MODE_SW,
};
@ -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 :
@@ -324,6 +329,20 @@ struct ath11k_mgmt_frame_stats {
@@ -326,6 +331,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;
@@ -388,6 +407,11 @@ struct ath11k_vif {
@@ -390,6 +409,11 @@ struct ath11k_vif {
struct arvif_nss nss;
#endif
struct list_head ap_vlan_arvifs;
@ -83,7 +83,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
@@ -346,6 +346,10 @@ enum nl80211_he_gi ath11k_mac_he_gi_to_n
@@ -351,6 +351,10 @@ enum nl80211_he_gi ath11k_mac_he_gi_to_n
return ret;
}
@ -94,7 +94,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
u8 ath11k_mac_bw_to_mac80211_bw(u8 bw)
{
u8 ret = 0;
@@ -718,6 +722,33 @@ u8 ath11k_mac_get_target_pdev_id(struct
@@ -723,6 +727,33 @@ u8 ath11k_mac_get_target_pdev_id(struct
return ar->ab->target_pdev_ids[0].pdev_id;
}
@ -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;
@@ -4167,6 +4198,9 @@ static int ath11k_install_key(struct ath
@@ -4172,6 +4203,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;
@@ -4256,15 +4290,40 @@ static int ath11k_clear_peer_keys(struct
@@ -4261,15 +4295,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;
@@ -4282,17 +4341,38 @@ static int ath11k_mac_op_set_key(struct
@@ -4287,17 +4346,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.
*/
@@ -4337,6 +4417,74 @@ static int ath11k_mac_op_set_key(struct
@@ -4342,6 +4422,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);
@@ -4359,6 +4507,27 @@ static int ath11k_mac_op_set_key(struct
@@ -4364,6 +4512,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) {
@@ -4368,18 +4537,23 @@ static int ath11k_mac_op_set_key(struct
@@ -4373,18 +4542,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:
@@ -5186,6 +5360,33 @@ static u32 ath11k_mac_ieee80211_sta_bw_t
@@ -5191,6 +5365,33 @@ static u32 ath11k_mac_ieee80211_sta_bw_t
return bw;
}
@ -388,7 +388,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,
@@ -5295,6 +5496,34 @@ static int ath11k_mac_op_sta_state(struc
@@ -5300,6 +5501,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);
@ -423,7 +423,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
}
} else if (old_state == IEEE80211_STA_AUTHORIZED &&
new_state == IEEE80211_STA_ASSOC) {
@@ -7027,7 +7256,7 @@ static int ath11k_mac_op_add_interface(s
@@ -7018,7 +7247,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 &&
@ -432,7 +432,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;
@@ -7040,6 +7269,7 @@ static int ath11k_mac_op_add_interface(s
@@ -7031,6 +7260,7 @@ static int ath11k_mac_op_add_interface(s
vif->addr, ret);
goto err;
}
@ -440,7 +440,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
mutex_unlock(&ar->conf_mutex);
return ret;
}
@@ -7064,6 +7294,20 @@ static int ath11k_mac_op_add_interface(s
@@ -7055,6 +7285,20 @@ static int ath11k_mac_op_add_interface(s
arvif->vdev_id = bit;
arvif->vdev_subtype = WMI_VDEV_SUBTYPE_NONE;
@ -461,7 +461,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
switch (vif->type) {
case NL80211_IFTYPE_UNSPECIFIED:
case NL80211_IFTYPE_STATION:
@@ -7104,7 +7348,7 @@ static int ath11k_mac_op_add_interface(s
@@ -7095,7 +7339,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);
@ -470,7 +470,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
}
ar->num_created_vdevs++;
@@ -7263,7 +7507,7 @@ err_peer_del:
@@ -7254,7 +7498,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);
@ -479,7 +479,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
}
}
@@ -7274,6 +7518,8 @@ err_vdev_del:
@@ -7265,6 +7509,8 @@ err_vdev_del:
list_del(&arvif->list);
spin_unlock_bh(&ar->data_lock);
@ -488,7 +488,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
err:
mutex_unlock(&ar->conf_mutex);
@@ -7371,6 +7617,7 @@ err_vdev_del:
@@ -7362,6 +7608,7 @@ err_vdev_del:
list_del(&arvif->list);
spin_unlock_bh(&ar->data_lock);
@ -496,7 +496,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
ath11k_peer_cleanup(ar, arvif->vdev_id);
idr_for_each(&ar->txmgmt_idr,
@@ -9959,8 +10206,11 @@ static int __ath11k_mac_register(struct
@@ -9960,8 +10207,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
@@ -1939,6 +1939,7 @@ int ath11k_wmi_vdev_install_key(struct a
@@ -1938,6 +1938,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;
@ -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
@@ -3701,6 +3701,7 @@ struct wmi_vdev_install_key_arg {
@@ -3703,6 +3703,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;
@@ -5774,6 +5775,7 @@ struct target_resource_config {
@@ -5786,6 +5787,7 @@ struct target_resource_config {
u32 bpf_instruction_size;
u32 max_bssid_rx_filters;
u32 use_pdev_id;

View File

@ -1,8 +1,8 @@
--- a/drivers/net/wireless/ath/ath11k/core.h
+++ b/drivers/net/wireless/ath/ath11k/core.h
@@ -1048,6 +1049,7 @@ struct ath11k_base {
} testmode;
#endif
@@ -1076,6 +1076,7 @@ struct ath11k_base {
u32 max_ast_index;
u32 num_ast_entries;
+ bool stats_disable;
/* must be last */
@ -99,4 +99,3 @@
ret = 0;

View File

@ -55,7 +55,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
tlv_tag, ptr - begin, len, tlv_len);
return -EINVAL;
}
@@ -2448,10 +2454,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;
@@ -2462,9 +2518,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) {
@@ -2475,6 +2535,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
@@ -2484,6 +2564,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)
@@ -2725,7 +2807,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;
@@ -2792,8 +2875,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;
@@ -2808,10 +2896,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;
@@ -2828,7 +2918,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);
@@ -2836,7 +2931,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>
}
}
@@ -2845,11 +2943,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;
@@ -4316,6 +4415,7 @@ static int ath11k_dp_rx_h_null_q_desc(st
@@ -4322,6 +4421,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;
@@ -4365,7 +4465,8 @@ static int ath11k_dp_rx_h_null_q_desc(st
@@ -4371,7 +4471,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
@@ -5536,6 +5536,14 @@ static int ath11k_mac_op_sta_state(struc
@@ -5532,6 +5532,14 @@ static int ath11k_mac_op_sta_state(struc
}
} else if (old_state == IEEE80211_STA_AUTHORIZED &&
new_state == IEEE80211_STA_ASSOC) {

View File

@ -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
@@ -6643,12 +6643,22 @@ static void ath11k_mac_op_tx(struct ieee
@@ -6669,12 +6669,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;
}
@@ -7596,7 +7606,7 @@ err_vdev_del:
@@ -7622,7 +7632,7 @@ err_vdev_del:
idr_for_each(&ar->txmgmt_idr,
ath11k_mac_vif_txmgmt_idr_remove, vif);
@ -490,7 +490,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
if (len > size)
--- a/drivers/net/wireless/ath/ath11k/core.c
+++ b/drivers/net/wireless/ath/ath11k/core.c
@@ -186,7 +186,6 @@ static struct ath11k_hw_params ath11k_hw
@@ -188,7 +188,6 @@ static struct ath11k_hw_params ath11k_hw
.supports_regdb = false,
.fix_l1ss = true,
.credit_flow = false,
@ -498,7 +498,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
.hal_params = &ath11k_hw_hal_params_ipq8074,
.supports_dynamic_smps_6ghz = false,
.alloc_cacheable_memory = true,
@@ -212,6 +211,8 @@ static struct ath11k_hw_params ath11k_hw
@@ -213,6 +212,8 @@ static struct ath11k_hw_params ath11k_hw
.tx_ring_size = DP_TCL_DATA_RING_SIZE,
.smp2p_wow_exit = false,
.support_fw_mac_sequence = false,
@ -507,7 +507,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
},
{
.name = "qca6390 hw2.0",
@@ -381,6 +382,8 @@ static struct ath11k_hw_params ath11k_hw
@@ -380,6 +381,8 @@ static struct ath11k_hw_params ath11k_hw
.tx_ring_size = DP_TCL_DATA_RING_SIZE,
.smp2p_wow_exit = false,
.support_fw_mac_sequence = false,
@ -516,7 +516,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
},
{
.name = "wcn6855 hw2.0",
@@ -2146,6 +2149,9 @@ int ath11k_core_pre_init(struct ath11k_b
@@ -2143,6 +2146,9 @@ int ath11k_core_pre_init(struct ath11k_b
if (nss_offload)
ab->nss.stats_enabled = 1;

View File

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -5898,6 +5898,8 @@ static int ath11k_mac_copy_he_cap(struct
@@ -6267,6 +6267,8 @@ static int ath11k_mac_copy_he_cap(struct
memcpy(he_cap_elem->phy_cap_info, band_cap->he_cap_phy_info,
sizeof(he_cap_elem->phy_cap_info));

View File

@ -1046,7 +1046,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
#define HTT_PPDU_STATS_MAX_USERS 37
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -1403,6 +1403,71 @@ static int ath11k_htt_tlv_ppdu_stats_par
@@ -1409,6 +1409,71 @@ static int ath11k_htt_tlv_ppdu_stats_par
return 0;
}
@ -1118,7 +1118,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
static void
ath11k_update_per_peer_tx_stats(struct ath11k *ar,
struct htt_ppdu_stats *ppdu_stats, u8 user)
@@ -1426,6 +1491,9 @@ ath11k_update_per_peer_tx_stats(struct a
@@ -1432,6 +1497,9 @@ ath11k_update_per_peer_tx_stats(struct a
if (!(usr_stats->tlv_flags & BIT(HTT_PPDU_STATS_TAG_USR_RATE)))
return;
@ -1128,7 +1128,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
if (usr_stats->tlv_flags & BIT(HTT_PPDU_STATS_TAG_USR_COMPLTN_COMMON))
is_ampdu =
HTT_USR_CMPLTN_IS_AMPDU(usr_stats->cmpltn_cmn.flags);
@@ -1559,6 +1627,8 @@ ath11k_update_per_peer_tx_stats(struct a
@@ -1565,6 +1633,8 @@ ath11k_update_per_peer_tx_stats(struct a
ath11k_debugfs_sta_add_tx_stats(arsta, peer_stats, rate_idx);
}
@ -1137,7 +1137,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
spin_unlock_bh(&ab->base_lock);
rcu_read_unlock();
}
@@ -1679,6 +1749,69 @@ int ath11k_dp_htt_tlv_iter(struct ath11k
@@ -1685,6 +1755,69 @@ int ath11k_dp_htt_tlv_iter(struct ath11k
return 0;
}
@ -1207,7 +1207,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
static int ath11k_htt_pull_ppdu_stats(struct ath11k_base *ab,
struct sk_buff *skb)
{
@@ -1697,6 +1830,15 @@ static int ath11k_htt_pull_ppdu_stats(st
@@ -1703,6 +1836,15 @@ static int ath11k_htt_pull_ppdu_stats(st
pdev_id = FIELD_GET(HTT_T2H_PPDU_STATS_INFO_PDEV_ID, msg->info);
ppdu_id = msg->ppdu_id;
@ -1223,7 +1223,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
rcu_read_lock();
ar = ath11k_mac_get_ar_by_pdev_id(ab, pdev_id);
if (!ar) {
@@ -1764,6 +1906,12 @@ static int ath11k_htt_pull_ppdu_stats(st
@@ -1770,6 +1912,12 @@ static int ath11k_htt_pull_ppdu_stats(st
}
}
@ -1257,7 +1257,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
mutex_unlock(&ar->conf_mutex);
}
@@ -9700,6 +9712,28 @@ err_fallback:
@@ -9714,6 +9726,28 @@ err_fallback:
return 0;
}
@ -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,
@@ -9757,6 +9791,9 @@ static const struct ieee80211_ops ath11k
@@ -9771,6 +9805,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,
@@ -10215,6 +10252,8 @@ static int __ath11k_mac_register(struct
@@ -10231,6 +10268,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);

View File

@ -16,7 +16,7 @@ Change-Id: I4a6ac67a1c2cf3ab7a219d0953907191606a5e70
--- a/drivers/net/wireless/ath/ath11k/nss.c
+++ b/drivers/net/wireless/ath/ath11k/nss.c
@@ -568,7 +568,7 @@ static int ath11k_nss_undecap_nwifi(stru
@@ -606,7 +606,7 @@ static int ath11k_nss_undecap_nwifi(stru
static void ath11k_nss_wds_type_rx(struct ath11k *ar, struct net_device *dev,
u8* src_mac, u8 is_sa_valid, u8 addr4_valid,
@ -25,7 +25,7 @@ Change-Id: I4a6ac67a1c2cf3ab7a219d0953907191606a5e70
{
struct ath11k_base *ab = ar->ab;
struct ath11k_ast_entry *ast_entry = NULL;
@@ -604,8 +604,6 @@ static void ath11k_nss_wds_type_rx(struc
@@ -642,8 +642,6 @@ static void ath11k_nss_wds_type_rx(struc
}
}
@ -34,7 +34,7 @@ Change-Id: I4a6ac67a1c2cf3ab7a219d0953907191606a5e70
}
spin_unlock_bh(&ab->base_lock);
@@ -649,8 +647,7 @@ static void ath11k_nss_mec_handler(struc
@@ -687,8 +685,7 @@ static void ath11k_nss_mec_handler(struc
static void ath11k_nss_vdev_spl_receive_ext_wdsdata(struct ath11k_vif *arvif,
struct sk_buff *skb,
@ -44,7 +44,7 @@ Change-Id: I4a6ac67a1c2cf3ab7a219d0953907191606a5e70
{
struct ath11k *ar = arvif->ar;
struct ath11k_base *ab = ar->ab;
@@ -672,7 +669,7 @@ static void ath11k_nss_vdev_spl_receive_
@@ -710,7 +707,7 @@ static void ath11k_nss_vdev_spl_receive_
switch (wds_type) {
case NSS_WIFI_VDEV_WDS_TYPE_RX:
ath11k_nss_wds_type_rx(ar, skb->dev, src_mac, is_sa_valid,
@ -53,8 +53,8 @@ Change-Id: I4a6ac67a1c2cf3ab7a219d0953907191606a5e70
break;
case NSS_WIFI_VDEV_WDS_TYPE_MEC:
ath11k_nss_mec_handler(ar, (u8 *)(skb->data));
@@ -739,10 +736,12 @@ ath11k_nss_vdev_special_data_receive(str
struct ieee80211_vif *vif;
@@ -775,10 +772,12 @@ ath11k_nss_vdev_special_data_receive(str
struct nss_wifi_vdev_wds_per_packet_metadata *wds_metadata = NULL;
struct ath11k_vif *arvif;
struct ath11k_base *ab;
- bool drop = false;
@ -65,9 +65,9 @@ Change-Id: I4a6ac67a1c2cf3ab7a219d0953907191606a5e70
+ struct ath11k_skb_rxcb *rxcb;
+ struct ath11k_peer *ta_peer = NULL;
if (!dev) {
dev_kfree_skb_any(skb);
@@ -791,15 +790,50 @@ ath11k_nss_vdev_special_data_receive(str
arvif = ath11k_nss_get_arvif_from_dev(dev);
if (!arvif) {
@@ -810,15 +809,50 @@ ath11k_nss_vdev_special_data_receive(str
return;
}
@ -126,7 +126,7 @@ Change-Id: I4a6ac67a1c2cf3ab7a219d0953907191606a5e70
}
static void
@@ -1006,6 +1040,9 @@ int ath11k_nss_vdev_set_cmd(struct ath11
@@ -2129,6 +2163,9 @@ int ath11k_nss_vdev_set_cmd(struct ath11
case ATH11K_NSS_WIFI_VDEV_CFG_WDS_BACKHAUL_CMD:
cmd = NSS_WIFI_VDEV_CFG_WDS_BACKHAUL_CMD;
break;
@ -136,7 +136,7 @@ Change-Id: I4a6ac67a1c2cf3ab7a219d0953907191606a5e70
default:
return -EINVAL;
}
@@ -1247,12 +1284,31 @@ int ath11k_nss_vdev_create(struct ath11k
@@ -2651,12 +2688,31 @@ int ath11k_nss_vdev_create(struct ath11k
goto free_vdev;
switch (arvif->vif->type) {
@ -167,9 +167,9 @@ Change-Id: I4a6ac67a1c2cf3ab7a219d0953907191606a5e70
+ goto unregister_vdev;
+ }
break;
default:
ret = -ENOTSUPP;
@@ -1526,7 +1582,6 @@ static int ath11k_nss_ext_vdev_register(
#ifdef CPTCFG_ATH11K_NSS_MESH_SUPPORT
case NL80211_IFTYPE_MESH_POINT:
@@ -2987,7 +3043,6 @@ static int ath11k_nss_ext_vdev_register(
{
struct ath11k *ar = arvif->ar;
struct ath11k_base *ab = ar->ab;
@ -177,7 +177,7 @@ Change-Id: I4a6ac67a1c2cf3ab7a219d0953907191606a5e70
u32 features = 0;
if (arvif->vif->type != NL80211_IFTYPE_AP_VLAN || arvif->nss.ctx)
@@ -1540,7 +1595,7 @@ static int ath11k_nss_ext_vdev_register(
@@ -3001,7 +3056,7 @@ static int ath11k_nss_ext_vdev_register(
if (!arvif->nss.ctx) {
ath11k_warn(ab, "failed to register nss vdev if_num %d nss_err:%d\n",
@ -188,7 +188,7 @@ Change-Id: I4a6ac67a1c2cf3ab7a219d0953907191606a5e70
--- a/drivers/net/wireless/ath/ath11k/nss.h
+++ b/drivers/net/wireless/ath/ath11k/nss.h
@@ -109,8 +109,12 @@ enum ath11k_nss_vdev_cmd {
@@ -115,8 +115,12 @@ enum ath11k_nss_vdev_cmd {
ATH11K_NSS_WIFI_VDEV_ENCAP_TYPE_CMD,
ATH11K_NSS_WIFI_VDEV_DECAP_TYPE_CMD,
ATH11K_NSS_WIFI_VDEV_CFG_WDS_BACKHAUL_CMD,

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
@@ -7640,8 +7640,10 @@ err_vdev_del:
@@ -7643,8 +7643,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
@@ -6125,13 +6125,13 @@ static int wmi_process_tx_comp(struct at
@@ -5966,13 +5966,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);
@@ -6139,6 +6139,7 @@ static int wmi_process_tx_comp(struct at
@@ -5980,6 +5980,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;
}
@@ -6147,6 +6148,28 @@ static int wmi_process_tx_comp(struct at
@@ -5988,6 +5989,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);
@ -87,8 +87,8 @@ Signed-off-by: Rameshkumar Sundaram <ramess@codeaurora.org>
+ spin_unlock_bh(&ar->data_lock);
info = IEEE80211_SKB_CB(msdu);
if ((!(info->flags & IEEE80211_TX_CTL_NO_ACK)) && !tx_compl_param->status)
@@ -6161,34 +6184,6 @@ static int wmi_process_tx_comp(struct at
if ((!(info->flags & IEEE80211_TX_CTL_NO_ACK)) &&
@@ -6003,34 +6026,6 @@ static int wmi_process_tx_comp(struct at
*/
info->status.rates[0].idx = -1;

View File

@ -30,7 +30,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
--- a/drivers/net/wireless/ath/ath11k/hw.c
+++ b/drivers/net/wireless/ath/ath11k/hw.c
@@ -1440,6 +1440,7 @@ const struct ath11k_hw_ring_mask ath11k_
@@ -1332,6 +1332,7 @@ const struct ath11k_hw_ring_mask ath11k_
ATH11K_RX_WBM_REL_RING_MASK_0,
},
.reo_status = {

View File

@ -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
@@ -2235,6 +2235,7 @@ struct ath11k_base *ath11k_core_alloc(st
@@ -2212,6 +2212,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);
@@ -2248,6 +2249,8 @@ struct ath11k_base *ath11k_core_alloc(st
@@ -2225,6 +2226,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);
@ -159,7 +159,7 @@ Signed-off-by: Rameshkumar Sundaram <ramess@codeaurora.org>
msg_cb = (nss_wifili_msg_callback_t)ath11k_nss_wifili_event_receive;
--- a/drivers/net/wireless/ath/ath11k/nss.h
+++ b/drivers/net/wireless/ath/ath11k/nss.h
@@ -288,8 +288,8 @@ int ath11k_nss_update_wds_peer(struct at
@@ -290,8 +290,8 @@ int ath11k_nss_update_wds_peer(struct at
u8 *dest_mac);
int ath11k_nss_map_wds_peer(struct ath11k *ar, struct ath11k_peer *peer,
u8 *dest_mac, enum ath11k_ast_entry_type type);
@ -170,7 +170,7 @@ Signed-off-by: Rameshkumar Sundaram <ramess@codeaurora.org>
int ath11k_nss_ext_vdev_cfg_wds_peer(struct ath11k_vif *arvif,
u8 *wds_addr, u32 wds_peer_id);
int ath11k_nss_ext_vdev_wds_4addr_allow(struct ath11k_vif *arvif,
@@ -409,8 +409,8 @@ static inline int ath11k_nss_map_wds_pee
@@ -413,8 +413,8 @@ static inline int ath11k_nss_map_wds_pee
return 0;
}
@ -183,7 +183,7 @@ Signed-off-by: Rameshkumar Sundaram <ramess@codeaurora.org>
}
--- a/drivers/net/wireless/ath/ath11k/pci.c
+++ b/drivers/net/wireless/ath/ath11k/pci.c
@@ -970,6 +970,7 @@ static void ath11k_pci_remove(struct pci
@@ -972,6 +972,7 @@ static void ath11k_pci_remove(struct pci
}
set_bit(ATH11K_FLAG_UNREGISTERING, &ab->dev_flags);

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
@@ -10114,6 +10114,8 @@ static int __ath11k_mac_register(struct
@@ -10154,6 +10154,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
@@ -6197,12 +6197,23 @@ int ath11k_dp_rx_process_mon_status(stru
@@ -5953,12 +5953,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);
@@ -6524,6 +6535,13 @@ static int ath11k_dp_full_mon_process_rx
@@ -6282,6 +6293,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;
@@ -6563,7 +6581,6 @@ static int ath11k_dp_full_mon_process_rx
@@ -6321,7 +6339,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;
@@ -6594,16 +6611,10 @@ reap_status_ring:
@@ -6352,16 +6369,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

@ -35,7 +35,7 @@ Signed-off-by: Venkateswara Naralasetty <quic_vnaralas@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -3464,6 +3464,46 @@ ath11k_dp_rx_mon_update_status_buf_state
@@ -3660,6 +3660,46 @@ ath11k_dp_rx_mon_update_status_buf_state
}
}
@ -82,7 +82,7 @@ Signed-off-by: Venkateswara Naralasetty <quic_vnaralas@quicinc.com>
static int ath11k_dp_rx_reap_mon_status_ring(struct ath11k_base *ab, int mac_id,
int *budget, struct sk_buff_head *skb_list)
{
@@ -3477,6 +3517,7 @@ static int ath11k_dp_rx_reap_mon_status_
@@ -3673,6 +3713,7 @@ static int ath11k_dp_rx_reap_mon_status_
struct sk_buff *skb;
struct ath11k_skb_rxcb *rxcb;
struct hal_tlv_hdr *tlv;
@ -90,7 +90,7 @@ Signed-off-by: Venkateswara Naralasetty <quic_vnaralas@quicinc.com>
u32 cookie;
int buf_id, srng_id;
dma_addr_t paddr;
@@ -3496,8 +3537,7 @@ static int ath11k_dp_rx_reap_mon_status_
@@ -3692,8 +3733,7 @@ static int ath11k_dp_rx_reap_mon_status_
ath11k_hal_srng_access_begin(ab, srng);
while (*budget) {
*budget -= 1;
@ -100,7 +100,7 @@ Signed-off-by: Venkateswara Naralasetty <quic_vnaralas@quicinc.com>
if (!rx_mon_status_desc) {
pmon->buf_state = DP_MON_STATUS_REPLINISH;
break;
@@ -3528,18 +3568,43 @@ static int ath11k_dp_rx_reap_mon_status_
@@ -3724,18 +3764,43 @@ static int ath11k_dp_rx_reap_mon_status_
tlv = (struct hal_tlv_hdr *)skb->data;
if (FIELD_GET(HAL_TLV_HDR_TAG, tlv->tl) !=
HAL_RX_STATUS_BUFFER_DONE) {

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
@@ -1839,6 +1839,11 @@ static int ath11k_core_reconfigure_on_cr
@@ -1838,6 +1838,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;
@@ -3134,6 +3134,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,
@@ -3164,8 +3174,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
@@ -4882,12 +4882,6 @@ static int ath11k_station_disassoc(struc
@@ -4899,12 +4899,6 @@ static int ath11k_station_disassoc(struc
return ret;
}
@ -30,7 +30,7 @@ Signed-off-by: Karthikeyan Kathirvel <quic_kathirve@quicinc.com>
return 0;
}
@@ -5478,6 +5472,17 @@ static int ath11k_mac_op_sta_state(struc
@@ -5495,6 +5489,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

@ -13,7 +13,7 @@ Signed-off-by: Ramya Gnanasekar <quic_rgnanase@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -2515,7 +2515,8 @@ static void ath11k_dp_rx_h_undecap(struc
@@ -2564,7 +2564,8 @@ static void ath11k_dp_rx_h_undecap(struc
ehdr = (struct ethhdr *)msdu->data;
/* mac80211 allows fast path only for authorized STA */

View File

@ -19,7 +19,7 @@ Signed-off-by: Raj Kumar Bhagat <quic_rajkbhag@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/nss.c
+++ b/drivers/net/wireless/ath/ath11k/nss.c
@@ -2410,13 +2410,14 @@ msg_free:
@@ -3871,13 +3871,14 @@ msg_free:
}
int ath11k_nss_map_wds_peer(struct ath11k *ar, struct ath11k_peer *peer,
@ -35,7 +35,7 @@ Signed-off-by: Raj Kumar Bhagat <quic_rajkbhag@quicinc.com>
int ret = 0;
wlmsg = kzalloc(sizeof(struct nss_wifili_msg), GFP_ATOMIC);
@@ -2426,7 +2427,7 @@ int ath11k_nss_map_wds_peer(struct ath11
@@ -3887,7 +3888,7 @@ int ath11k_nss_map_wds_peer(struct ath11
wds_peer_map_msg = &wlmsg->msg.wdspeermapmsg;
wds_peer_map_msg->vdev_id = peer->vdev_id;
@ -46,7 +46,7 @@ Signed-off-by: Raj Kumar Bhagat <quic_rajkbhag@quicinc.com>
wds_peer_map_msg->peer_id = NSS_WIFILI_MEC_PEER_ID;
--- a/drivers/net/wireless/ath/ath11k/nss.h
+++ b/drivers/net/wireless/ath/ath11k/nss.h
@@ -16,6 +16,7 @@ struct ath11k;
@@ -20,6 +20,7 @@ struct ath11k;
struct ath11k_base;
struct ath11k_vif;
struct ath11k_peer;
@ -54,7 +54,7 @@ Signed-off-by: Raj Kumar Bhagat <quic_rajkbhag@quicinc.com>
struct ath11k_sta;
enum ath11k_ast_entry_type;
struct hal_rx_mon_ppdu_info;
@@ -241,7 +242,7 @@ int ath11k_nss_add_wds_peer(struct ath11
@@ -289,7 +290,7 @@ int ath11k_nss_add_wds_peer(struct ath11
int ath11k_nss_update_wds_peer(struct ath11k *ar, struct ath11k_peer *peer,
u8 *dest_mac);
int ath11k_nss_map_wds_peer(struct ath11k *ar, struct ath11k_peer *peer,
@ -63,7 +63,7 @@ Signed-off-by: Raj Kumar Bhagat <quic_rajkbhag@quicinc.com>
int ath11k_nss_del_wds_peer(struct ath11k *ar, u8 *peer_addr,
int peer_id, u8 *dest_mac);
int ath11k_nss_ext_vdev_cfg_wds_peer(struct ath11k_vif *arvif,
@@ -337,7 +338,8 @@ static inline int ath11k_nss_update_wds_
@@ -408,7 +409,8 @@ static inline int ath11k_nss_update_wds_
}
static inline int ath11k_nss_map_wds_peer(struct ath11k *ar, struct ath11k_peer *peer,
@ -75,7 +75,7 @@ Signed-off-by: Raj Kumar Bhagat <quic_rajkbhag@quicinc.com>
}
--- a/drivers/net/wireless/ath/ath11k/peer.c
+++ b/drivers/net/wireless/ath/ath11k/peer.c
@@ -359,8 +359,7 @@ void ath11k_peer_map_ast(struct ath11k *
@@ -373,8 +373,7 @@ void ath11k_peer_map_ast(struct ath11k *
if ((ast_entry->type == ATH11K_AST_TYPE_WDS) ||
(ast_entry->type == ATH11K_AST_TYPE_MEC))

View File

@ -14,7 +14,7 @@ Signed-off-by: Ramya Gnanasekar <quic_rgnanase@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/dp.h
+++ b/drivers/net/wireless/ath/ath11k/dp.h
@@ -1501,6 +1501,7 @@ struct htt_ppdu_stats_usr_cmpltn_cmn {
@@ -1425,6 +1425,7 @@ struct htt_ppdu_stats_usr_cmpltn_cmn {
#define HTT_PPDU_STATS_ACK_BA_INFO_TID_NUM GENMASK(31, 25)
#define HTT_PPDU_STATS_NON_QOS_TID 16
@ -24,7 +24,7 @@ Signed-off-by: Ramya Gnanasekar <quic_rgnanase@quicinc.com>
u32 ppdu_id;
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -1323,7 +1323,7 @@ static int ath11k_htt_tlv_ppdu_stats_par
@@ -1288,7 +1288,7 @@ static int ath11k_htt_tlv_ppdu_stats_par
struct htt_ppdu_user_stats *user_stats = NULL;
int cur_user;
u16 peer_id;
@ -33,7 +33,7 @@ Signed-off-by: Ramya Gnanasekar <quic_rgnanase@quicinc.com>
ppdu_info = data;
@@ -1404,6 +1404,8 @@ static int ath11k_htt_tlv_ppdu_stats_par
@@ -1369,6 +1369,8 @@ static int ath11k_htt_tlv_ppdu_stats_par
return -EINVAL;
}
@ -42,7 +42,7 @@ Signed-off-by: Ramya Gnanasekar <quic_rgnanase@quicinc.com>
peer_id =
((struct htt_ppdu_stats_usr_cmpltn_ack_ba_status *)ptr)->sw_peer_id;
cur_user = ath11k_get_ppdu_user_index(&ppdu_info->ppdu_stats,
@@ -1415,6 +1417,7 @@ static int ath11k_htt_tlv_ppdu_stats_par
@@ -1380,6 +1382,7 @@ static int ath11k_htt_tlv_ppdu_stats_par
user_stats->is_valid_peer_id = true;
memcpy((void *)&user_stats->ack_ba, ptr,
sizeof(struct htt_ppdu_stats_usr_cmpltn_ack_ba_status));

View File

@ -41,9 +41,9 @@ 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
@@ -1176,6 +1176,9 @@ struct ath11k_soc_dp_stats {
@@ -902,6 +902,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 reo_error_drop[HAL_REO_DEST_RING_ERROR_CODE_MAX];
u32 hal_reo_error[DP_REO_DST_RING_MAX];
+ u32 hal_reo_cmd_drain;
+ u32 reo_cmd_cache_error;
@ -53,7 +53,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
};
--- a/drivers/net/wireless/ath/ath11k/debugfs.c
+++ b/drivers/net/wireless/ath/ath11k/debugfs.c
@@ -1416,6 +1416,18 @@ static ssize_t ath11k_debugfs_dump_soc_d
@@ -848,6 +848,18 @@ static ssize_t ath11k_debugfs_dump_soc_d
"\nNSS Transmit Failures: %d\n",
atomic_read(&soc_stats->tx_err.nss_tx_fail));
@ -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
@@ -1185,8 +1185,10 @@ int ath11k_dp_alloc(struct ath11k_base *
@@ -1102,8 +1102,10 @@ int ath11k_dp_alloc(struct ath11k_base *
INIT_LIST_HEAD(&dp->reo_cmd_list);
INIT_LIST_HEAD(&dp->reo_cmd_cache_flush_list);
@ -95,7 +95,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
u32 ba_win_sz;
bool active;
@@ -53,6 +54,14 @@ struct dp_reo_cache_flush_elem {
@@ -51,6 +52,14 @@ struct dp_reo_cache_flush_elem {
unsigned long ts;
};
@ -110,7 +110,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
struct dp_reo_cmd {
struct list_head list;
struct dp_rx_tid data;
@@ -298,6 +307,12 @@ struct ath11k_dp {
@@ -295,6 +304,12 @@ struct ath11k_dp {
* - reo_cmd_cache_flush_count
*/
spinlock_t reo_cmd_lock;
@ -122,10 +122,10 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
+ spinlock_t reo_cmd_update_queue_lock;
struct ath11k_hp_update_timer reo_cmd_timer;
struct ath11k_hp_update_timer tx_ring_timer[DP_TCL_NUM_RING_MAX];
};
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -22,6 +22,9 @@
@@ -21,6 +21,9 @@
#define ATH11K_DP_RX_FRAGMENT_TIMEOUT_MS (2 * HZ)
@ -135,7 +135,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
static inline
u8 *ath11k_dp_rx_h_80211_hdr(struct ath11k_base *ab, struct hal_rx_desc *desc)
{
@@ -729,13 +732,50 @@ static int ath11k_dp_rx_pdev_srng_alloc(
@@ -672,13 +675,50 @@ static int ath11k_dp_rx_pdev_srng_alloc(
return 0;
}
@ -186,7 +186,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
spin_lock_bh(&dp->reo_cmd_lock);
list_for_each_entry_safe(cmd, tmp, &dp->reo_cmd_list, list) {
list_del(&cmd->list);
@@ -781,14 +821,18 @@ static void ath11k_dp_reo_cmd_free(struc
@@ -724,14 +764,18 @@ static void ath11k_dp_reo_cmd_free(struc
}
}
@ -207,7 +207,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
desc_sz = ath11k_hal_reo_qdesc_size(0, HAL_DESC_REO_NON_QOS_TID);
while (tot_desc_sz > desc_sz) {
@@ -799,11 +843,17 @@ static void ath11k_dp_reo_cache_flush(st
@@ -742,11 +786,17 @@ static void ath11k_dp_reo_cache_flush(st
HAL_REO_CMD_FLUSH_CACHE, &cmd,
NULL);
if (ret)
@ -228,7 +228,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
memset(&cmd, 0, sizeof(cmd));
cmd.addr_lo = lower_32_bits(rx_tid->paddr);
cmd.addr_hi = upper_32_bits(rx_tid->paddr);
@@ -811,24 +861,21 @@ static void ath11k_dp_reo_cache_flush(st
@@ -754,24 +804,21 @@ static void ath11k_dp_reo_cache_flush(st
ret = ath11k_dp_tx_send_reo_cmd(ab, rx_tid,
HAL_REO_CMD_FLUSH_CACHE,
&cmd, ath11k_dp_reo_cmd_free);
@ -259,7 +259,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
goto free_desc;
} else if (status != HAL_REO_CMD_SUCCESS) {
/* Shouldn't happen! Cleanup in case of other failure? */
@@ -837,6 +884,29 @@ static void ath11k_dp_rx_tid_del_func(st
@@ -780,6 +827,29 @@ static void ath11k_dp_rx_tid_del_func(st
return;
}
@ -289,7 +289,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
elem = kzalloc(sizeof(*elem), GFP_ATOMIC);
if (!elem)
goto free_desc;
@@ -854,13 +924,20 @@ static void ath11k_dp_rx_tid_del_func(st
@@ -797,13 +867,20 @@ static void ath11k_dp_rx_tid_del_func(st
if (dp->reo_cmd_cache_flush_count > DP_REO_DESC_FREE_THRESHOLD ||
time_after(jiffies, elem->ts +
msecs_to_jiffies(DP_REO_DESC_FREE_TIMEOUT_MS))) {
@ -314,7 +314,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
}
}
spin_unlock_bh(&dp->reo_cmd_lock);
@@ -876,34 +953,48 @@ free_desc:
@@ -819,34 +896,48 @@ free_desc:
void ath11k_peer_rx_tid_delete(struct ath11k *ar,
struct ath11k_peer *peer, u8 tid)
{

View File

@ -21,11 +21,9 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
drivers/net/wireless/ath/ath11k/dp_tx.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/ath/ath11k/dp_tx.c b/drivers/net/wireless/ath/ath11k/dp_tx.c
index 3d8417d..5c034e6 100644
--- a/drivers/net/wireless/ath/ath11k/dp_tx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_tx.c
@@ -347,7 +347,8 @@ tcl_ring_sel:
@@ -221,7 +221,8 @@ tcl_ring_sel:
switch (ti.encap_type) {
case HAL_TCL_ENCAP_TYPE_NATIVE_WIFI:
@ -35,7 +33,7 @@ index 3d8417d..5c034e6 100644
is_diff_encap = true;
else
ath11k_dp_tx_encap_nwifi(skb);
@@ -375,7 +376,7 @@ tcl_ring_sel:
@@ -247,7 +248,7 @@ tcl_ring_sel:
if ((!test_bit(ATH11K_FLAG_HW_CRYPTO_DISABLED, &ar->ab->dev_flags) &&
!(info->control.flags & IEEE80211_TX_CTL_HW_80211_ENCAP) &&
!info->control.hw_key && ieee80211_has_protected(hdr->frame_control)) ||
@ -44,6 +42,3 @@ index 3d8417d..5c034e6 100644
/* HW requirement is that metadata should always point to a
* 8-byte aligned address. So we add alignment pad to start of
* buffer. HTT Metadata should be ensured to be multiple of 8-bytes
--
2.17.1

View File

@ -16,7 +16,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/nss.c
+++ b/drivers/net/wireless/ath/ath11k/nss.c
@@ -72,6 +72,43 @@ static void ath11k_nss_wifili_stats_sync
@@ -101,6 +101,43 @@ static void ath11k_nss_wifili_stats_sync
spin_unlock_bh(&ab->base_lock);
}
@ -60,9 +60,9 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
static void ath11k_nss_get_peer_stats(struct ath11k_base *ab, struct nss_wifili_peer_stats *stats)
{
struct ath11k_peer *peer;
@@ -333,6 +370,10 @@ void ath11k_nss_wifili_event_receive(str
ath11k_dbg(ab, ATH11K_DBG_NSS_WDS, "nss wifili peer 4addr event received %d response %d error %d\n",
msg_type, response, error);
@@ -369,6 +406,10 @@ void ath11k_nss_wifili_event_receive(str
ath11k_dbg(ab, ATH11K_DBG_NSS_MESH, "nss wifili mesh capability response %d\n",
ab->nss.mesh_nss_offload_enabled);
break;
+ case NSS_WIFILI_LINK_DESC_INFO_MSG:
+ ath11k_nss_wifili_link_desc_return(ab,

View File

@ -11,11 +11,9 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
drivers/net/wireless/ath/ath11k/mac.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c
index 3e79e07..32ff5c9 100644
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -13034,6 +13034,7 @@ static int __ath11k_mac_register(struct ath11k *ar)
@@ -10141,6 +10141,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);
@ -23,6 +21,3 @@ index 3e79e07..32ff5c9 100644
if (ath11k_frame_mode == ATH11K_HW_TXRX_ETHERNET) {
ieee80211_hw_set(ar->hw, SUPPORTS_TX_ENCAP_OFFLOAD);
--
2.34.1

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
@@ -6292,7 +6292,9 @@ int ath11k_dp_rx_process_mon_status(stru
@@ -6090,7 +6090,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))) {
@@ -6310,7 +6312,6 @@ int ath11k_dp_rx_process_mon_status(stru
@@ -6108,7 +6110,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,14 +67,14 @@ 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);
@@ -6326,6 +6327,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) {
@@ -6136,6 +6137,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);
+ ppdu_info->ppdu_continuation = true;
continue;
}
rcu_read_lock();
--- a/drivers/net/wireless/ath/ath11k/hal_rx.h
+++ b/drivers/net/wireless/ath/ath11k/hal_rx.h
@@ -221,6 +221,7 @@ struct hal_rx_mon_ppdu_info {

View File

@ -18,7 +18,7 @@ Signed-off-by: Karthikeyan Periyasamy <quic_periyasa@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/dp_tx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_tx.c
@@ -217,7 +217,8 @@ tcl_ring_sel:
@@ -222,7 +222,8 @@ tcl_ring_sel:
switch (ti.encap_type) {
case HAL_TCL_ENCAP_TYPE_NATIVE_WIFI:
if ((arvif->vif->offload_flags & IEEE80211_OFFLOAD_ENCAP_ENABLED) &&

View File

@ -26,7 +26,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -8232,7 +8232,6 @@ ath11k_mac_op_assign_vif_chanctx(struct
@@ -8221,7 +8221,6 @@ ath11k_mac_op_assign_vif_chanctx(struct
struct ath11k_base *ab = ar->ab;
struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif);
int ret;
@ -34,7 +34,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
mutex_lock(&ar->conf_mutex);
@@ -8255,21 +8254,6 @@ ath11k_mac_op_assign_vif_chanctx(struct
@@ -8244,21 +8243,6 @@ ath11k_mac_op_assign_vif_chanctx(struct
goto out;
}

View File

@ -30,7 +30,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
enum nl80211_he_ru_alloc ath11k_mac_phy_he_ru_to_nl80211_he_ru_alloc(u16 ru_phy)
{
@@ -5323,7 +5323,7 @@ static int ath11k_mac_station_add(struct
@@ -5319,7 +5319,7 @@ static int ath11k_mac_station_add(struct
if (ab->hw_params.vdev_start_delay &&
!arvif->is_started &&
arvif->vdev_type != WMI_VDEV_TYPE_AP) {
@ -39,7 +39,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
if (ret) {
ath11k_warn(ab, "failed to delay vdev start: %d\n", ret);
goto free_tx_stats;
@@ -8175,8 +8175,8 @@ unlock:
@@ -8164,8 +8164,8 @@ unlock:
mutex_unlock(&ar->conf_mutex);
}

View File

@ -28,7 +28,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
enum nl80211_he_ru_alloc ath11k_mac_phy_he_ru_to_nl80211_he_ru_alloc(u16 ru_phy)
{
enum nl80211_he_ru_alloc ret;
@@ -5253,100 +5250,6 @@ static void ath11k_mac_dec_num_stations(
@@ -5249,100 +5246,6 @@ static void ath11k_mac_dec_num_stations(
ar->num_stations--;
}
@ -129,7 +129,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
static u32 ath11k_mac_ieee80211_sta_bw_to_wmi(struct ath11k *ar,
struct ieee80211_sta *sta)
{
@@ -5402,187 +5305,6 @@ static int ath11k_mac_cfg_dyn_vlan(struc
@@ -5398,187 +5301,6 @@ static int ath11k_mac_cfg_dyn_vlan(struc
return ret;
}
@ -317,7 +317,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
static int ath11k_mac_op_sta_set_txpwr(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
struct ieee80211_sta *sta)
@@ -9735,6 +9457,281 @@ ath11k_mac_op_config_mesh_offload_path(s
@@ -9739,6 +9461,281 @@ ath11k_mac_op_config_mesh_offload_path(s
}
#endif

View File

@ -52,7 +52,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -7937,6 +7937,30 @@ static int ath11k_mac_start_vdev_delay(s
@@ -7933,6 +7933,30 @@ static int ath11k_mac_start_vdev_delay(s
return 0;
}
@ -83,7 +83,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
static int
ath11k_mac_op_assign_vif_chanctx(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
@@ -7981,15 +8005,17 @@ ath11k_mac_op_assign_vif_chanctx(struct
@@ -7977,15 +8001,17 @@ ath11k_mac_op_assign_vif_chanctx(struct
goto out;
}
@ -109,7 +109,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
if (arvif->vdev_type != WMI_VDEV_TYPE_MONITOR &&
test_bit(ATH11K_FLAG_MONITOR_VDEV_CREATED, &ar->monitor_flags)) {
@@ -8029,8 +8055,6 @@ ath11k_mac_op_unassign_vif_chanctx(struc
@@ -8025,8 +8051,6 @@ ath11k_mac_op_unassign_vif_chanctx(struc
"chanctx unassign ptr %p vdev_id %i\n",
ctx, arvif->vdev_id);
@ -118,7 +118,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
if (ab->hw_params.vdev_start_delay &&
arvif->vdev_type == WMI_VDEV_TYPE_MONITOR) {
spin_lock_bh(&ab->base_lock);
@@ -8054,24 +8078,13 @@ ath11k_mac_op_unassign_vif_chanctx(struc
@@ -8050,24 +8074,13 @@ ath11k_mac_op_unassign_vif_chanctx(struc
return;
}
@ -149,7 +149,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
}
if (ab->hw_params.vdev_start_delay &&
@@ -9551,6 +9564,46 @@ exit:
@@ -9555,6 +9568,46 @@ exit:
return ret;
}
@ -196,7 +196,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
static int ath11k_mac_op_sta_state(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
struct ieee80211_sta *sta,
@@ -9586,31 +9639,15 @@ static int ath11k_mac_op_sta_state(struc
@@ -9590,31 +9643,15 @@ static int ath11k_mac_op_sta_state(struc
sta->addr, arvif->vdev_id);
} else if ((old_state == IEEE80211_STA_NONE &&
new_state == IEEE80211_STA_NOTEXIST)) {
@ -233,7 +233,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
ath11k_warn(ar->ab, "Found peer entry %pM n vdev %i after it was supposedly removed\n",
vif->addr, arvif->vdev_id);
ath11k_peer_rhash_delete(ar->ab, peer);
@@ -9621,12 +9658,6 @@ static int ath11k_mac_op_sta_state(struc
@@ -9625,12 +9662,6 @@ static int ath11k_mac_op_sta_state(struc
}
spin_unlock_bh(&ar->ab->base_lock);
mutex_unlock(&ar->ab->tbl_mtx_lock);
@ -246,9 +246,9 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
} else if (old_state == IEEE80211_STA_AUTH &&
new_state == IEEE80211_STA_ASSOC &&
(vif->type == NL80211_IFTYPE_AP ||
@@ -10195,6 +10226,8 @@ static int __ath11k_mac_register(struct
wiphy_ext_feature_set(ar->hw->wiphy,
NL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT);
@@ -10202,6 +10233,8 @@ static int __ath11k_mac_register(struct
wiphy_ext_feature_set(ar->hw->wiphy, NL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT);
+ wiphy_ext_feature_set(ar->hw->wiphy, NL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT);
+

View File

@ -40,7 +40,7 @@
ath11k-$(CPTCFG_ATH11K_THERMAL) += thermal.o
--- a/drivers/net/wireless/ath/ath11k/debugfs.c
+++ b/drivers/net/wireless/ath/ath11k/debugfs.c
@@ -1919,7 +1919,9 @@ int ath11k_debugfs_register(struct ath11
@@ -1875,7 +1875,9 @@ int ath11k_debugfs_register(struct ath11
snprintf(buf, 100, "../../ath11k/%pd2", ar->debug.debugfs_pdev);
debugfs_create_symlink("ath11k", ar->hw->wiphy->debugfsdir, buf);
@ -120,7 +120,7 @@
&fops_peer_ps_state);
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -1664,8 +1664,10 @@ ath11k_update_per_peer_tx_stats(struct a
@@ -1723,8 +1723,10 @@ ath11k_update_per_peer_tx_stats(struct a
peer_stats->mu_pos = mu_pos;
peer_stats->ru_tones = arsta->txrate.he_ru_alloc;
@ -131,7 +131,7 @@
}
usr_stats->rate_stats_updated = true;
@@ -2105,7 +2107,9 @@ void ath11k_dp_htt_htc_t2h_msg_handler(s
@@ -2170,7 +2172,9 @@ void ath11k_dp_htt_htc_t2h_msg_handler(s
ath11k_htt_pull_ppdu_stats(ab, skb);
break;
case HTT_T2H_MSG_TYPE_EXT_STATS_CONF:
@ -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
@@ -9869,7 +9869,7 @@ static const struct ieee80211_ops ath11k
@@ -9812,7 +9812,7 @@ static const struct ieee80211_ops ath11k
.set_wakeup = ath11k_wow_op_set_wakeup,
#endif

View File

@ -1,6 +1,6 @@
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -9224,7 +9224,7 @@ void cfg80211_bss_flush(struct wiphy *wi
@@ -9247,7 +9247,7 @@ void cfg80211_bss_flush(struct wiphy *wi
* @count: the number of TBTTs until the color change happens
* @color_bitmap: representations of the colors that the local BSS is aware of
*/
@ -9,7 +9,7 @@
enum nl80211_commands cmd, u8 count,
u64 color_bitmap);
@@ -9234,9 +9234,9 @@ int cfg80211_bss_color_notify(struct net
@@ -9257,9 +9257,9 @@ int cfg80211_bss_color_notify(struct net
* @color_bitmap: representations of the colors that the local BSS is aware of
*/
static inline int cfg80211_obss_color_collision_notify(struct net_device *dev,
@ -21,7 +21,7 @@
0, color_bitmap);
}
@@ -9250,7 +9250,7 @@ static inline int cfg80211_obss_color_co
@@ -9273,7 +9273,7 @@ static inline int cfg80211_obss_color_co
static inline int cfg80211_color_change_started_notify(struct net_device *dev,
u8 count)
{
@ -30,7 +30,7 @@
count, 0);
}
@@ -9262,7 +9262,7 @@ static inline int cfg80211_color_change_
@@ -9285,7 +9285,7 @@ static inline int cfg80211_color_change_
*/
static inline int cfg80211_color_change_aborted_notify(struct net_device *dev)
{
@ -39,7 +39,7 @@
0, 0);
}
@@ -9274,7 +9274,7 @@ static inline int cfg80211_color_change_
@@ -9297,7 +9297,7 @@ static inline int cfg80211_color_change_
*/
static inline int cfg80211_color_change_notify(struct net_device *dev)
{
@ -50,7 +50,7 @@
}
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -4771,7 +4771,7 @@ void ieee80211_color_collision_detection
@@ -4780,7 +4780,7 @@ void ieee80211_color_collision_detection
struct ieee80211_sub_if_data *sdata = link->sdata;
sdata_lock(sdata);
@ -72,7 +72,7 @@
sdata->debugfs.subdir_stations = debugfs_create_dir("stations",
--- a/net/mac80211/sta_info.c
+++ b/net/mac80211/sta_info.c
@@ -1407,18 +1407,6 @@ static void __sta_info_destroy_part2(str
@@ -1410,18 +1410,6 @@ static void __sta_info_destroy_part2(str
WARN_ON_ONCE(ret);
}
@ -93,7 +93,7 @@
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -19406,7 +19406,7 @@ void cfg80211_ch_switch_started_notify(s
@@ -19472,7 +19472,7 @@ void cfg80211_ch_switch_started_notify(s
}
EXPORT_SYMBOL(cfg80211_ch_switch_started_notify);
@ -102,7 +102,7 @@
enum nl80211_commands cmd, u8 count,
u64 color_bitmap)
{
@@ -19420,7 +19420,7 @@ int cfg80211_bss_color_notify(struct net
@@ -19486,7 +19486,7 @@ int cfg80211_bss_color_notify(struct net
trace_cfg80211_bss_color_notify(dev, cmd, count, color_bitmap);
@ -111,7 +111,7 @@
if (!msg)
return -ENOMEM;
@@ -19443,7 +19443,7 @@ int cfg80211_bss_color_notify(struct net
@@ -19509,7 +19509,7 @@ int cfg80211_bss_color_notify(struct net
genlmsg_end(msg, hdr);
return genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy),

View File

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

View File

@ -53,7 +53,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
};
/**
@@ -1406,7 +1422,7 @@ ieee80211_tx_info_clear_status(struct ie
@@ -1408,7 +1424,7 @@ ieee80211_tx_info_clear_status(struct ie
* @RX_FLAG_AMPDU_EOF_BIT_KNOWN: The EOF value is known
* @RX_FLAG_RADIOTAP_HE: HE radiotap data is present
* (&struct ieee80211_radiotap_he, mac80211 will fill in
@ -62,7 +62,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
* - DATA3_DATA_MCS
* - DATA3_DATA_DCM
* - DATA3_CODING
@@ -1414,7 +1430,7 @@ ieee80211_tx_info_clear_status(struct ie
@@ -1416,7 +1432,7 @@ ieee80211_tx_info_clear_status(struct ie
* - DATA5_DATA_BW_RU_ALLOC
* - DATA6_NSTS
* - DATA3_STBC
@ -71,7 +71,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)
@@ -1987,6 +2003,16 @@ static inline bool lockdep_vif_mutex_hel
@@ -1989,6 +2005,16 @@ static inline bool lockdep_vif_mutex_hel
lockdep_vif_mutex_held(vif))
/**
@ -88,7 +88,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
@@ -2677,6 +2703,8 @@ struct ieee80211_txq {
@@ -2680,6 +2706,8 @@ struct ieee80211_txq {
* @IEEE80211_HW_MLO_MCAST_MULTI_LINK_TX: Hardware/driver handles transmitting
* multicast frames on all links, mac80211 should not do that.
*
@ -97,7 +97,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
* @NUM_IEEE80211_HW_FLAGS: number of hardware flags, used for sizing arrays
*/
enum ieee80211_hw_flags {
@@ -2734,6 +2762,7 @@ enum ieee80211_hw_flags {
@@ -2737,6 +2765,7 @@ enum ieee80211_hw_flags {
IEEE80211_HW_SUPPORTS_CONC_MON_RX_DECAP,
IEEE80211_HW_DETECTS_COLOR_COLLISION,
IEEE80211_HW_MLO_MCAST_MULTI_LINK_TX,
@ -105,7 +105,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
/* keep last, obviously */
NUM_IEEE80211_HW_FLAGS
@@ -3746,6 +3775,10 @@ struct ieee80211_prep_tx_info {
@@ -3749,6 +3778,10 @@ struct ieee80211_prep_tx_info {
* non-MLO connections.
* The callback can sleep.
*
@ -116,7 +116,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.
@@ -4297,7 +4330,9 @@ struct ieee80211_ops {
@@ -4300,7 +4333,9 @@ struct ieee80211_ops {
struct ieee80211_vif *vif,
struct ieee80211_bss_conf *info,
u64 changed);
@ -127,7 +127,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,
@@ -4602,7 +4637,7 @@ struct ieee80211_ops {
@@ -4605,7 +4640,7 @@ struct ieee80211_ops {
int (*reset_tid_config)(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
struct ieee80211_sta *sta, u8 tids);
@ -138,7 +138,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
struct ieee80211_sta *sta, bool enabled);
--- a/net/mac80211/debugfs.c
+++ b/net/mac80211/debugfs.c
@@ -496,6 +496,7 @@ static const char *hw_flag_names[] = {
@@ -505,6 +505,7 @@ static const char *hw_flag_names[] = {
FLAG(SUPPORTS_CONC_MON_RX_DECAP),
FLAG(DETECTS_COLOR_COLLISION),
FLAG(MLO_MCAST_MULTI_LINK_TX),
@ -191,7 +191,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;
@@ -694,12 +705,6 @@ struct ieee80211_hw *ieee80211_alloc_hw_
@@ -691,12 +702,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,
@ -204,7 +204,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);
@@ -1007,6 +1012,18 @@ int ieee80211_register_hw(struct ieee802
@@ -1005,6 +1010,18 @@ int ieee80211_register_hw(struct ieee802
return -EINVAL;
}
@ -225,7 +225,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
return -EINVAL;
--- a/net/mac80211/sta_info.c
+++ b/net/mac80211/sta_info.c
@@ -2368,6 +2368,9 @@ sta_get_last_rx_stats(struct sta_info *s
@@ -2370,6 +2370,9 @@ sta_get_last_rx_stats(struct sta_info *s
struct ieee80211_sta_rx_stats *stats = &sta->deflink.rx_stats;
int cpu;
@ -237,7 +237,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -1028,11 +1028,23 @@ ieee80211_tx_h_stats(struct ieee80211_tx
@@ -1029,11 +1029,23 @@ ieee80211_tx_h_stats(struct ieee80211_tx
{
struct sk_buff *skb;
int ac = -1;
@ -261,7 +261,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
ac = skb_get_queue_mapping(skb);
tx->sta->deflink.tx_stats.bytes[ac] += skb->len;
}
@@ -2857,7 +2869,9 @@ static struct sk_buff *ieee80211_build_h
@@ -2858,7 +2870,9 @@ static struct sk_buff *ieee80211_build_h
if (unlikely(!multicast && ((skb->sk &&
skb_shinfo(skb)->tx_flags & SKBTX_WIFI_STATUS) ||
@ -272,7 +272,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
info_id = ieee80211_store_ack_skb(local, skb, &info_flags,
cookie);
@@ -4639,13 +4653,16 @@ static void ieee80211_8023_xmit(struct i
@@ -4641,13 +4655,16 @@ static void ieee80211_8023_xmit(struct i
}
if (unlikely(skb->sk &&
@ -306,7 +306,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
gfp);
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -2675,7 +2675,7 @@ static int ieee80211_change_bss(struct w
@@ -2679,7 +2679,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;
@ -315,7 +315,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
link = ieee80211_link_or_deflink(sdata, params->link_id, true);
if (IS_ERR(link))
@@ -2725,6 +2725,8 @@ static int ieee80211_change_bss(struct w
@@ -2729,6 +2729,8 @@ static int ieee80211_change_bss(struct w
sdata->flags |= IEEE80211_SDATA_DONT_BRIDGE_PACKETS;
else
sdata->flags &= ~IEEE80211_SDATA_DONT_BRIDGE_PACKETS;
@ -324,7 +324,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
ieee80211_check_fast_rx_iface(sdata);
}
@@ -2753,6 +2755,8 @@ static int ieee80211_change_bss(struct w
@@ -2757,6 +2759,8 @@ static int ieee80211_change_bss(struct w
ieee80211_link_info_change_notify(sdata, link, changed);
@ -361,7 +361,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
{
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -1845,6 +1845,8 @@ void ieee80211_vif_cfg_change_notify(str
@@ -1847,6 +1847,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);

View File

@ -18,7 +18,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -6213,7 +6213,13 @@ start_xmit:
@@ -6215,7 +6215,13 @@ start_xmit:
mutex_lock(&local->mtx);
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
@@ -9229,4 +9229,15 @@ bool cfg80211_valid_disable_subchannel_b
@@ -9327,4 +9327,15 @@ bool cfg80211_valid_disable_subchannel_b
*/
void cfg80211_links_removed(struct net_device *dev, u16 link_mask);
@ -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
@@ -7353,6 +7353,20 @@ u32 ieee80211_calc_rx_airtime(struct iee
@@ -7361,6 +7361,20 @@ u32 ieee80211_calc_rx_airtime(struct iee
int len);
/**
@ -91,18 +91,18 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
/* add new commands above here */
/* used to define NL80211_CMD_MAX below */
@@ -2818,6 +2823,8 @@ enum nl80211_commands {
* @NL80211_ATTR_WIPHY_ANTENNA_GAIN: Configured antenna gain. Used to reduce
* transmit power to stay within regulatory limits. u32, dBi.
@@ -2815,6 +2820,8 @@ enum nl80211_commands {
* @NL80211_ATTR_MLO_LINK_DISABLED: Flag attribute indicating that the link is
* disabled.
*
+ * @NL80211_ATTR_HE_MUEDCA_PARAMS: MU-EDCA AC parameters for the
+ * %NL80211_CMD_UPDATE_HE_MUEDCA_PARAMS command.
* @NUM_NL80211_ATTR: total number of nl80211_attrs available
* @NL80211_ATTR_MAX: highest attribute number currently defined
* @__NL80211_ATTR_AFTER_LAST: internal use
@@ -3358,6 +3365,8 @@ enum nl80211_attrs {
@@ -3353,6 +3360,8 @@ enum nl80211_attrs {
NL80211_ATTR_WIPHY_ANTENNA_GAIN,
NL80211_ATTR_MLO_LINK_DISABLED,
+ NL80211_ATTR_HE_MUEDCA_PARAMS,
+
@ -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
@@ -7910,3 +7910,15 @@ void ieee80211_disable_rssi_reports(stru
@@ -7954,3 +7954,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
@@ -3085,6 +3085,26 @@ TRACE_EVENT(stop_queue,
@@ -3092,6 +3092,26 @@ TRACE_EVENT(stop_queue,
)
);
@ -158,7 +158,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
#undef TRACE_INCLUDE_PATH
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -20170,6 +20170,42 @@ nla_put_failure:
@@ -20199,6 +20199,42 @@ nla_put_failure:
}
EXPORT_SYMBOL(cfg80211_update_owe_info_event);

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,
@@ -4268,6 +4271,8 @@ void __ieee80211_subif_start_xmit(struct
@@ -4270,6 +4273,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);
@@ -4289,6 +4294,19 @@ void __ieee80211_subif_start_xmit(struct
@@ -4291,6 +4296,19 @@ void __ieee80211_subif_start_xmit(struct
if (IS_ERR(sta))
sta = NULL;

View File

@ -136,7 +136,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
return 0;
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -2570,6 +2570,54 @@ static bool ieee80211_frame_allowed(stru
@@ -2569,6 +2569,54 @@ static bool ieee80211_frame_allowed(stru
return true;
}
@ -191,7 +191,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
static void ieee80211_deliver_skb_to_local_stack(struct sk_buff *skb,
struct ieee80211_rx_data *rx)
{
@@ -2609,11 +2657,15 @@ static void ieee80211_deliver_skb_to_loc
@@ -2608,11 +2656,15 @@ static void ieee80211_deliver_skb_to_loc
!ether_addr_equal(ehdr->h_dest, sdata->vif.addr)))
ether_addr_copy(ehdr->h_dest, sdata->vif.addr);
@ -209,7 +209,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -4501,6 +4501,35 @@ static void ieee80211_mlo_multicast_tx(s
@@ -4503,6 +4503,35 @@ static void ieee80211_mlo_multicast_tx(s
kfree_skb(skb);
}
@ -245,7 +245,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
@@ -4514,6 +4543,10 @@ netdev_tx_t ieee80211_subif_start_xmit(s
@@ -4516,6 +4545,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;
@ -256,7 +256,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
if (likely(!is_multicast_ether_addr(eth->h_dest)))
goto normal;
@@ -4700,6 +4733,9 @@ netdev_tx_t ieee80211_subif_start_xmit_8
@@ -4702,6 +4735,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
@@ -5095,6 +5095,17 @@ void ieee80211_sta_pspoll(struct ieee802
@@ -5098,6 +5098,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
@@ -2176,7 +2176,13 @@ static int ieee80211_change_station(stru
@@ -2180,7 +2180,13 @@ static int ieee80211_change_station(stru
rcu_assign_pointer(vlansdata->u.vlan.sta, sta);
__ieee80211_check_fast_rx_iface(vlansdata);
@ -137,8 +137,8 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
{
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -4298,8 +4298,13 @@ void __ieee80211_subif_start_xmit(struct
atomic_inc(&sta->tx_netif_pkts);
@@ -4297,8 +4297,13 @@ void __ieee80211_subif_start_xmit(struct
sta = NULL;
if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) {
- ap_sdata = container_of(sdata->bss,
@ -153,7 +153,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)
@@ -4692,7 +4692,8 @@ static void ieee80211_8023_xmit(struct i
@@ -4688,7 +4693,8 @@ static void ieee80211_8023_xmit(struct i
info->hw_queue = sdata->vif.hw_queue[queue];
@ -197,7 +197,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
drv_remove_interface(local, sdata);
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -5218,7 +5218,8 @@ static bool ieee80211_assoc_success(stru
@@ -5259,7 +5259,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
@@ -2084,6 +2084,8 @@ enum ieee80211_key_flags {
@@ -2086,6 +2086,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)
@@ -2103,6 +2105,7 @@ struct ieee80211_key_conf {
@@ -2105,6 +2107,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
@@ -4654,16 +4654,25 @@ static void ieee80211_8023_xmit(struct i
@@ -4649,16 +4649,25 @@ static void ieee80211_8023_xmit(struct i
struct ieee80211_key *key, struct sk_buff *skb)
{
struct ieee80211_tx_info *info;

View File

@ -77,7 +77,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
/* then other type-dependent work */
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -4676,19 +4676,21 @@ static void ieee80211_8023_xmit(struct i
@@ -4678,19 +4678,21 @@ static void ieee80211_8023_xmit(struct i
ieee80211_aggr_check(sdata, sta, skb);
@ -111,7 +111,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
}
skb = ieee80211_tx_skb_fixup(skb, ieee80211_sdata_netdev_features(sdata));
@@ -4745,7 +4747,7 @@ netdev_tx_t ieee80211_subif_start_xmit_8
@@ -4747,7 +4749,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;
@ -120,7 +120,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
struct sta_info *sta;
#ifdef CPTCFG_MAC80211_NSS_SUPPORT
@@ -4763,9 +4765,13 @@ netdev_tx_t ieee80211_subif_start_xmit_8
@@ -4765,9 +4767,13 @@ netdev_tx_t ieee80211_subif_start_xmit_8
goto out;
}
@ -137,7 +137,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
goto skip_offload;
key = rcu_dereference(sta->ptk[sta->ptk_idx]);
@@ -4776,6 +4782,7 @@ netdev_tx_t ieee80211_subif_start_xmit_8
@@ -4778,6 +4784,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);
@ -145,7 +145,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
ieee80211_8023_xmit(sdata, dev, sta, key, skb);
goto out;
@@ -6282,13 +6289,7 @@ start_xmit:
@@ -6284,13 +6291,7 @@ start_xmit:
mutex_lock(&local->mtx);
if (pubsta) {

View File

@ -66,7 +66,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
};
/*
@@ -792,6 +801,11 @@ struct ieee80211_bss_conf {
@@ -790,6 +799,11 @@ struct ieee80211_bss_conf {
bool he_full_ul_mumimo;
bool eht_su_beamformer;
bool eht_su_beamformee;
@ -112,7 +112,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
};
@@ -2768,6 +2788,7 @@ enum ieee80211_hw_flags {
@@ -2769,6 +2789,7 @@ enum ieee80211_hw_flags {
IEEE80211_HW_DETECTS_COLOR_COLLISION,
IEEE80211_HW_MLO_MCAST_MULTI_LINK_TX,
IEEE80211_HW_SUPPORTS_NSS_OFFLOAD,
@ -120,7 +120,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
/* keep last, obviously */
NUM_IEEE80211_HW_FLAGS
@@ -4268,6 +4289,8 @@ struct ieee80211_prep_tx_info {
@@ -4269,6 +4290,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.
@@ -4651,6 +4674,12 @@ struct ieee80211_ops {
@@ -4652,6 +4675,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);
@@ -7509,4 +7538,100 @@ int ieee80211_set_active_links(struct ie
@@ -7510,4 +7539,100 @@ int ieee80211_set_active_links(struct ie
void ieee80211_set_active_links_async(struct ieee80211_vif *vif,
u16 active_links);
@ -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
@@ -2521,6 +2521,7 @@ static int ieee80211_update_mesh_config(
@@ -2523,6 +2523,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;
@@ -2537,8 +2538,11 @@ static int ieee80211_update_mesh_config(
@@ -2539,8 +2540,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)) {
@@ -2552,8 +2556,12 @@ static int ieee80211_update_mesh_config(
@@ -2554,8 +2558,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))
@@ -2588,8 +2596,12 @@ static int ieee80211_update_mesh_config(
@@ -2590,8 +2598,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.
@@ -2631,6 +2643,7 @@ static int ieee80211_update_mesh_config(
@@ -2633,6 +2645,7 @@ static int ieee80211_update_mesh_config(
conf->dot11MeshConnectedToAuthServer =
nconf->dot11MeshConnectedToAuthServer;
ieee80211_mbss_info_change_notify(sdata, BSS_CHANGED_BEACON);
@ -330,7 +330,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
sdata, fmt, ##__VA_ARGS__)
--- a/net/mac80211/debugfs.c
+++ b/net/mac80211/debugfs.c
@@ -497,6 +497,7 @@ static const char *hw_flag_names[] = {
@@ -506,6 +506,7 @@ static const char *hw_flag_names[] = {
FLAG(DETECTS_COLOR_COLLISION),
FLAG(MLO_MCAST_MULTI_LINK_TX),
FLAG(SUPPORTS_NSS_OFFLOAD),
@ -340,7 +340,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
--- a/net/mac80211/driver-ops.c
+++ b/net/mac80211/driver-ops.c
@@ -572,3 +572,23 @@ int drv_change_sta_links(struct ieee8021
@@ -579,3 +579,23 @@ int drv_change_sta_links(struct ieee8021
return 0;
}
@ -379,7 +379,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
#endif /* __MAC80211_DRIVER_OPS */
--- a/net/mac80211/mesh.h
+++ b/net/mac80211/mesh.h
@@ -316,6 +316,10 @@ void mesh_rx_path_sel_frame(struct ieee8
@@ -315,6 +315,10 @@ void mesh_rx_path_sel_frame(struct ieee8
struct ieee80211_mgmt *mgmt, size_t len);
struct mesh_path *
mesh_path_add(struct ieee80211_sub_if_data *sdata, const u8 *dst);
@ -390,7 +390,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
int mesh_path_add_gate(struct mesh_path *mpath);
int mesh_path_send_to_gates(struct mesh_path *mpath);
@@ -357,6 +361,7 @@ void mesh_path_discard_frame(struct ieee
@@ -356,6 +360,7 @@ void mesh_path_discard_frame(struct ieee
void mesh_path_tx_root_frame(struct ieee80211_sub_if_data *sdata);
bool mesh_action_is_path_sel(struct ieee80211_mgmt *mgmt);
@ -1173,7 +1173,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
void mesh_pathtbl_unregister(struct ieee80211_sub_if_data *sdata)
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -2609,7 +2609,7 @@ static struct sk_buff *ieee80211_build_h
@@ -2610,7 +2610,7 @@ static struct sk_buff *ieee80211_build_h
bool multicast;
u16 info_id = 0;
struct ieee80211_chanctx_conf *chanctx_conf = NULL;
@ -1182,7 +1182,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
int ret;
u8 link_id = u32_get_bits(ctrl_flags, IEEE80211_TX_CTRL_MLO_LINK);
@@ -2621,6 +2621,9 @@ static struct sk_buff *ieee80211_build_h
@@ -2622,6 +2622,9 @@ static struct sk_buff *ieee80211_build_h
info_flags |= IEEE80211_TX_CTL_REQ_TX_STATUS;
#endif
@ -1192,7 +1192,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
/* convert Ethernet header to proper 802.11 header (based on
* operation mode) */
ethertype = (skb->data[12] << 8) | skb->data[13];
@@ -2691,6 +2694,13 @@ static struct sk_buff *ieee80211_build_h
@@ -2692,6 +2695,13 @@ static struct sk_buff *ieee80211_build_h
break;
#ifdef CPTCFG_MAC80211_MESH
case NL80211_IFTYPE_MESH_POINT:
@ -1206,7 +1206,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;
@@ -2954,10 +2964,10 @@ static struct sk_buff *ieee80211_build_h
@@ -2955,10 +2965,10 @@ static struct sk_buff *ieee80211_build_h
skb_reset_mac_header(skb);
@ -1221,7 +1221,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
info->ack_frame_id = info_id;
info->band = band;
@@ -4272,6 +4282,7 @@ void __ieee80211_subif_start_xmit(struct
@@ -4274,6 +4284,7 @@ void __ieee80211_subif_start_xmit(struct
struct sk_buff *next;
int len = skb->len;
struct ieee80211_key *key = NULL;
@ -1229,7 +1229,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)) {
@@ -4348,9 +4359,15 @@ void __ieee80211_subif_start_xmit(struct
@@ -4350,9 +4361,15 @@ void __ieee80211_subif_start_xmit(struct
goto out;
}

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
@@ -2728,6 +2728,8 @@ struct ieee80211_txq {
@@ -2731,6 +2731,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 {
@@ -2787,6 +2789,7 @@ enum ieee80211_hw_flags {
@@ -2790,6 +2792,7 @@ enum ieee80211_hw_flags {
IEEE80211_HW_MLO_MCAST_MULTI_LINK_TX,
IEEE80211_HW_SUPPORTS_NSS_OFFLOAD,
IEEE80211_HW_SUPPORTS_MESH_NSS_OFFLOAD,
@ -35,7 +35,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
NUM_IEEE80211_HW_FLAGS
--- a/net/mac80211/debugfs.c
+++ b/net/mac80211/debugfs.c
@@ -498,6 +498,7 @@ static const char *hw_flag_names[] = {
@@ -507,6 +507,7 @@ static const char *hw_flag_names[] = {
FLAG(MLO_MCAST_MULTI_LINK_TX),
FLAG(SUPPORTS_NSS_OFFLOAD),
FLAG(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
@@ -4759,6 +4759,67 @@ out_free:
@@ -4761,6 +4761,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)
{
@@ -4798,6 +4859,11 @@ netdev_tx_t ieee80211_subif_start_xmit_8
@@ -4800,6 +4861,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
@@ -1747,6 +1747,8 @@ static void sta_apply_mesh_params(struct
@@ -1750,6 +1750,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:
@@ -1761,6 +1763,7 @@ static void sta_apply_mesh_params(struct
@@ -1764,6 +1766,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);
@ -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;
@@ -4876,6 +4881,10 @@ static bool ieee80211_invoke_fast_rx(str
@@ -4875,6 +4880,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
@@ -4925,6 +4934,37 @@ static bool ieee80211_invoke_fast_rx(str
@@ -4924,6 +4933,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)))
@@ -4962,9 +5002,33 @@ static bool ieee80211_invoke_fast_rx(str
@@ -4961,9 +5001,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
@@ -4711,7 +4711,7 @@ static void ieee80211_8023_xmit(struct i
@@ -4695,7 +4695,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) {
@@ -4762,7 +4762,7 @@ static void ieee80211_8023_xmit(struct i
@@ -4746,7 +4746,7 @@ static void ieee80211_8023_xmit(struct i
&info->flags, NULL);
dev_sw_netstats_tx_add(dev, skbs, len);

View File

@ -10,11 +10,9 @@ Signed-off-by: Hari Chandrakanthan <quic_haric@quicinc.com>
net/mac80211/spectmgmt.c | 22 +++++++++-------------
1 file changed, 9 insertions(+), 13 deletions(-)
diff --git a/net/mac80211/spectmgmt.c b/net/mac80211/spectmgmt.c
index 76747bf..7ddfb96 100644
--- a/net/mac80211/spectmgmt.c
+++ b/net/mac80211/spectmgmt.c
@@ -33,7 +33,10 @@ int ieee80211_parse_ch_switch_ie(struct ieee80211_sub_if_data *sdata,
@@ -33,7 +33,10 @@ int ieee80211_parse_ch_switch_ie(struct
struct cfg80211_chan_def new_vht_chandef = {};
const struct ieee80211_sec_chan_offs_ie *sec_chan_offs;
const struct ieee80211_wide_bw_chansw_ie *wide_bw_chansw_ie;
@ -25,7 +23,7 @@ index 76747bf..7ddfb96 100644
memset(csa_ie, 0, sizeof(*csa_ie));
@@ -133,20 +136,13 @@ int ieee80211_parse_ch_switch_ie(struct ieee80211_sub_if_data *sdata,
@@ -133,20 +136,13 @@ int ieee80211_parse_ch_switch_ie(struct
}
if (wide_bw_chansw_ie) {
@ -52,6 +50,3 @@ index 76747bf..7ddfb96 100644
/* default, for the case of IEEE80211_VHT_CHANWIDTH_USE_HT,
* to the previously parsed chandef
--
2.7.4

View File

@ -19,11 +19,9 @@ Signed-off-by: Hari Chandrakanthan <quic_haric@quicinc.com>
net/mac80211/spectmgmt.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/net/mac80211/spectmgmt.c b/net/mac80211/spectmgmt.c
index 7ddfb96..15c7ac3 100644
--- a/net/mac80211/spectmgmt.c
+++ b/net/mac80211/spectmgmt.c
@@ -136,6 +136,10 @@ int ieee80211_parse_ch_switch_ie(struct ieee80211_sub_if_data *sdata,
@@ -136,6 +136,10 @@ int ieee80211_parse_ch_switch_ie(struct
}
if (wide_bw_chansw_ie) {
@ -34,6 +32,3 @@ index 7ddfb96..15c7ac3 100644
new_seg1 = wide_bw_chansw_ie->new_center_freq_seg1;
vht_oper.chan_width = wide_bw_chansw_ie->new_channel_width;
vht_oper.center_freq_seg0_idx = wide_bw_chansw_ie->new_center_freq_seg0;
--
2.7.4

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
@@ -1427,8 +1427,6 @@ ieee80211_tx_info_clear_status(struct ie
@@ -1405,8 +1405,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,22 +1498,21 @@ enum mac80211_rx_flags {
@@ -1478,22 +1476,21 @@ enum mac80211_rx_flags {
RX_FLAG_AMPDU_LAST_KNOWN = BIT(12),
RX_FLAG_AMPDU_IS_LAST = BIT(13),
RX_FLAG_AMPDU_DELIM_CRC_ERROR = BIT(14),
@ -63,7 +63,7 @@ Signed-off-by: P Praneesh <quic_ppranees@quicinc.com>
/**
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -517,18 +517,13 @@ ieee80211_add_rx_radiotap_header(struct
@@ -507,18 +507,13 @@ ieee80211_add_rx_radiotap_header(struct
flags |= IEEE80211_RADIOTAP_AMPDU_IS_LAST;
if (status->flag & RX_FLAG_AMPDU_DELIM_CRC_ERROR)
flags |= IEEE80211_RADIOTAP_AMPDU_DELIM_CRC_ERR;

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
@@ -2061,6 +2061,11 @@ netdev_tx_t ieee80211_subif_start_xmit(s
@@ -2063,6 +2063,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,
@@ -4320,7 +4321,7 @@ void __ieee80211_subif_start_xmit(struct
@@ -4319,7 +4320,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;
}
@@ -4366,7 +4367,7 @@ void __ieee80211_subif_start_xmit(struct
@@ -4365,7 +4366,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);
@@ -4667,7 +4668,8 @@ static bool ieee80211_tx_8023(struct iee
@@ -4663,7 +4664,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;
@@ -4723,6 +4725,7 @@ static void ieee80211_8023_xmit(struct i
@@ -4719,6 +4721,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 &&
@@ -4743,11 +4746,12 @@ static void ieee80211_8023_xmit(struct i
@@ -4739,11 +4742,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>
dev_sw_netstats_tx_add(dev, skbs, len);
if (!ieee80211_hw_check(&local->hw, SUPPORTS_NSS_OFFLOAD) && sta) {
@@ -4770,7 +4774,8 @@ out_free:
@@ -4763,7 +4767,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;
@@ -4779,6 +4784,9 @@ void ieee80211_8023_xmit_ap(struct ieee8
@@ -4772,6 +4777,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.
@@ -4790,11 +4798,13 @@ void ieee80211_8023_xmit_ap(struct ieee8
@@ -4783,11 +4791,13 @@ void ieee80211_8023_xmit_ap(struct ieee8
info = IEEE80211_SKB_CB(skb);
memset(info, 0, sizeof(*info));
@ -133,9 +133,9 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
info->flags |= IEEE80211_TX_CTL_HW_80211_ENCAP;
info->control.vif = &sdata->vif;
@@ -4831,14 +4841,23 @@ void ieee80211_8023_xmit_ap(struct ieee8
if (sta)
atomic_inc(&sta->tx_drv_pkts);
@@ -4821,14 +4831,23 @@ void ieee80211_8023_xmit_ap(struct ieee8
drv_tx(local, &control, skb);
}
-
netdev_tx_t ieee80211_subif_start_xmit_8023(struct sk_buff *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);
@@ -4854,14 +4873,15 @@ netdev_tx_t ieee80211_subif_start_xmit_8
@@ -4844,14 +4863,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]);
@@ -4872,13 +4892,13 @@ netdev_tx_t ieee80211_subif_start_xmit_8
@@ -4862,13 +4882,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:
@@ -6384,7 +6404,10 @@ start_xmit:
@@ -6374,7 +6394,10 @@ start_xmit:
mutex_lock(&local->mtx);
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
@@ -2373,7 +2373,7 @@ static void mpath_set_pinfo(struct mesh_
@@ -2350,7 +2350,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;
@ -94,7 +94,7 @@ Signed-off-by: P Praneesh <quic_ppranees@quicinc.com>
#define MESH_FAST_TX_CACHE_MAX_SIZE 512
--- a/net/mac80211/mesh_hwmp.c
+++ b/net/mac80211/mesh_hwmp.c
@@ -510,7 +510,7 @@ static u32 hwmp_route_info_get(struct ie
@@ -504,7 +504,7 @@ static u32 hwmp_route_info_get(struct ie
if (next_hop)
ether_addr_copy(old_next_hop_addr, next_hop->sta.addr);
if (next_hop != sta) {
@ -103,7 +103,7 @@ Signed-off-by: P Praneesh <quic_ppranees@quicinc.com>
flush_mpath = true;
}
mesh_path_assign_nexthop(mpath, sta);
@@ -571,7 +571,7 @@ static u32 hwmp_route_info_get(struct ie
@@ -565,7 +565,7 @@ static u32 hwmp_route_info_get(struct ie
if (next_hop)
ether_addr_copy(old_next_hop_addr, next_hop->sta.addr);
if (next_hop != sta) {

View File

@ -19,7 +19,7 @@ Signed-off-by: Ramanathan Choodamani <quic_rchoodam@quicinc.com>
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -4572,6 +4572,7 @@ netdev_tx_t ieee80211_subif_start_xmit(s
@@ -4571,6 +4571,7 @@ netdev_tx_t ieee80211_subif_start_xmit(s
#ifdef CPTCFG_MAC80211_NSS_SUPPORT
ieee80211_xmit_nss_fixup(skb, dev);
#endif
@ -27,7 +27,7 @@ Signed-off-by: Ramanathan Choodamani <quic_rchoodam@quicinc.com>
if (likely(!is_multicast_ether_addr(eth->h_dest)))
goto normal;
@@ -4844,7 +4845,43 @@ void ieee80211_8023_xmit_ap(struct ieee8
@@ -4834,7 +4835,43 @@ void ieee80211_8023_xmit_ap(struct ieee8
netdev_tx_t ieee80211_subif_start_xmit_8023(struct sk_buff *skb,
struct net_device *dev)
{

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,
@@ -3631,7 +3633,7 @@ ieee80211_sdata_netdev_features(struct i
@@ -3632,7 +3634,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;
@@ -3649,7 +3651,7 @@ ieee80211_tx_skb_fixup(struct sk_buff *s
@@ -3650,7 +3652,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)
@@ -3795,7 +3797,7 @@ static bool ieee80211_xmit_fast(struct i
@@ -3796,7 +3798,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;
@@ -4344,7 +4346,7 @@ void __ieee80211_subif_start_xmit(struct
@@ -4343,7 +4345,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;
@@ -4572,7 +4574,6 @@ netdev_tx_t ieee80211_subif_start_xmit(s
@@ -4571,7 +4573,6 @@ netdev_tx_t ieee80211_subif_start_xmit(s
#ifdef CPTCFG_MAC80211_NSS_SUPPORT
ieee80211_xmit_nss_fixup(skb, dev);
#endif
@ -75,7 +75,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
if (likely(!is_multicast_ether_addr(eth->h_dest)))
goto normal;
@@ -4719,7 +4720,7 @@ static void ieee80211_8023_xmit(struct i
@@ -4715,7 +4716,7 @@ static void ieee80211_8023_xmit(struct i
}
}
@ -84,7 +84,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
if (!skb)
return;
@@ -4845,6 +4846,7 @@ void ieee80211_8023_xmit_ap(struct ieee8
@@ -4835,6 +4836,7 @@ void ieee80211_8023_xmit_ap(struct ieee8
netdev_tx_t ieee80211_subif_start_xmit_8023(struct sk_buff *skb,
struct net_device *dev)
{
@ -92,7 +92,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
struct ieee80211_tx_control control = {};
@@ -4879,9 +4881,10 @@ out:
@@ -4869,9 +4871,10 @@ out:
}
return NETDEV_TX_OK;

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
@@ -2727,6 +2727,9 @@ struct ieee80211_txq {
@@ -2730,6 +2730,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 {
@@ -2787,6 +2790,7 @@ enum ieee80211_hw_flags {
@@ -2790,6 +2793,7 @@ enum ieee80211_hw_flags {
IEEE80211_HW_SUPPORTS_NSS_OFFLOAD,
IEEE80211_HW_SUPPORTS_MESH_NSS_OFFLOAD,
IEEE80211_HW_SUPPORTS_TID_CLASS_OFFLOAD,
@ -43,7 +43,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
NUM_IEEE80211_HW_FLAGS
--- a/net/mac80211/debugfs.c
+++ b/net/mac80211/debugfs.c
@@ -499,6 +499,7 @@ static const char *hw_flag_names[] = {
@@ -508,6 +508,7 @@ static const char *hw_flag_names[] = {
FLAG(SUPPORTS_NSS_OFFLOAD),
FLAG(SUPPORTS_MESH_NSS_OFFLOAD),
FLAG(SUPPORTS_TID_CLASS_OFFLOAD),
@ -53,7 +53,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -1602,6 +1602,9 @@ int ieee80211_txq_setup_flows(struct iee
@@ -1603,6 +1603,9 @@ int ieee80211_txq_setup_flows(struct iee
bool supp_vht = false;
enum nl80211_band band;
@ -63,7 +63,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
ret = fq_init(fq, 4096);
if (ret)
return ret;
@@ -1649,6 +1652,9 @@ void ieee80211_txq_teardown_flows(struct
@@ -1650,6 +1653,9 @@ void ieee80211_txq_teardown_flows(struct
{
struct fq *fq = &local->fq;
@ -73,7 +73,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
kfree(local->cvars);
local->cvars = NULL;
@@ -1665,7 +1671,8 @@ static bool ieee80211_queue_skb(struct i
@@ -1666,7 +1672,8 @@ static bool ieee80211_queue_skb(struct i
struct ieee80211_vif *vif;
struct txq_info *txqi;
@ -83,7 +83,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
return false;
if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
@@ -4326,7 +4333,8 @@ void __ieee80211_subif_start_xmit(struct
@@ -4328,7 +4335,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) {
@@ -4678,8 +4686,10 @@ static void ieee80211_8023_xmit(struct i
@@ -4680,8 +4688,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);
@@ -6414,9 +6424,12 @@ int ieee80211_tx_control_port(struct wip
@@ -6416,9 +6426,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
@@ -4516,6 +4516,9 @@ static int ieee80211_get_txq_stats(struc
@@ -4525,6 +4525,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
@@ -841,7 +841,10 @@ struct ieee80211_hw *ieee80211_alloc_hw_
@@ -839,7 +839,10 @@ struct ieee80211_hw *ieee80211_alloc_hw_
atomic_set(&local->agg_queue_stop[i], 0);
}
tasklet_setup(&local->tx_pending_tasklet, ieee80211_tx_pending);
@ -185,7 +185,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
}
for (ac = 0; ac < IEEE80211_NUM_ACS; ac++) {
@@ -427,7 +429,9 @@ void sta_info_free(struct ieee80211_loca
@@ -430,7 +432,9 @@ void sta_info_free(struct ieee80211_loca
sta_dbg(sta->sdata, "Destroyed STA %pM\n", sta->sta.addr);
@ -196,7 +196,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
kfree(rcu_dereference_raw(sta->sta.rates));
#ifdef CPTCFG_MAC80211_MESH
kfree(sta->mesh);
@@ -529,8 +533,6 @@ __sta_info_alloc(struct ieee80211_sub_if
@@ -532,8 +536,6 @@ __sta_info_alloc(struct ieee80211_sub_if
struct ieee80211_local *local = sdata->local;
struct ieee80211_hw *hw = &local->hw;
struct sta_info *sta;
@ -205,7 +205,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
int i;
sta = kzalloc(sizeof(*sta) + hw->sta_data_size, gfp);
@@ -604,18 +606,22 @@ __sta_info_alloc(struct ieee80211_sub_if
@@ -607,18 +609,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))
@@ -689,7 +695,8 @@ __sta_info_alloc(struct ieee80211_sub_if
@@ -692,7 +698,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
@@ -1684,11 +1691,13 @@ void ieee80211_sta_ps_deliver_wakeup(str
@@ -1687,11 +1694,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);
@@ -2103,6 +2112,9 @@ ieee80211_sta_ps_deliver_response(struct
@@ -2106,6 +2115,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)) ||
@@ -2519,7 +2531,7 @@ static void sta_set_tidstats(struct sta_
@@ -2521,7 +2533,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();
@@ -2847,6 +2859,9 @@ unsigned long ieee80211_sta_last_active(
@@ -2849,6 +2861,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
@@ -4649,16 +4649,14 @@ void ieee80211_check_fast_rx(struct sta_
@@ -4647,16 +4647,14 @@ void ieee80211_check_fast_rx(struct sta_
break;
case NL80211_IFTYPE_MESH_POINT:
@ -31,7 +31,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
default:
goto clear;
}
@@ -4881,10 +4879,7 @@ static bool ieee80211_invoke_fast_rx(str
@@ -4878,10 +4876,7 @@ static bool ieee80211_invoke_fast_rx(str
u8 sa[ETH_ALEN];
} addrs __aligned(2);
struct ieee80211_sta_rx_stats *stats;
@ -42,7 +42,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
@@ -4934,37 +4929,6 @@ static bool ieee80211_invoke_fast_rx(str
@@ -4931,37 +4926,6 @@ static bool ieee80211_invoke_fast_rx(str
snap_offs += IEEE80211_CCMP_HDR_LEN;
}
@ -80,7 +80,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)))
@@ -5002,30 +4966,6 @@ static bool ieee80211_invoke_fast_rx(str
@@ -4999,30 +4963,6 @@ static bool ieee80211_invoke_fast_rx(str
return true;
}

View File

@ -36,7 +36,7 @@ Signed-off-by: Manish Dharanenthiran <quic_mdharane@quicinc.com>
--- a/net/mac80211/mesh.c
+++ b/net/mac80211/mesh.c
@@ -1183,7 +1183,7 @@ void ieee80211_mbss_info_change_notify(s
@@ -1184,7 +1184,7 @@ void ieee80211_mbss_info_change_notify(s
/* if we race with running work, worst case this work becomes a noop */
for_each_set_bit(bit, &bits, sizeof(changed) * BITS_PER_BYTE)
@ -45,7 +45,7 @@ Signed-off-by: Manish Dharanenthiran <quic_mdharane@quicinc.com>
set_bit(MESH_WORK_MBSS_CHANGED, &ifmsh->wrkq_flags);
wiphy_work_queue(sdata->local->hw.wiphy, &sdata->work);
}
@@ -1265,7 +1265,7 @@ void ieee80211_stop_mesh(struct ieee8021
@@ -1266,7 +1266,7 @@ void ieee80211_stop_mesh(struct ieee8021
/* clear any mesh work (for next join) we may have accrued */
ifmsh->wrkq_flags = 0;
@ -54,7 +54,7 @@ Signed-off-by: Manish Dharanenthiran <quic_mdharane@quicinc.com>
local->fif_other_bss--;
atomic_dec(&local->iff_allmultis);
@@ -1732,9 +1732,9 @@ static void mesh_bss_info_changed(struct
@@ -1733,9 +1733,9 @@ static void mesh_bss_info_changed(struct
u32 bit;
u64 changed = 0;