mirror of
https://github.com/optim-enterprises-bv/openwrt-ipq.git
synced 2025-10-29 17:33:01 +00:00
ath11k_nss: Refresh patches for backports 6.11.2
Signed-off-by: Sean Khan <datapronix@protonmail.com>
This commit is contained in:
@@ -29,7 +29,7 @@ Signed-off-by: Manikanta Pubbisetty <mpubbise@codeaurora.org>
|
||||
|
||||
/* SMBIOS type containing Board Data File Name Extension */
|
||||
#define ATH11K_SMBIOS_BDF_EXT_TYPE 0xF8
|
||||
@@ -418,6 +420,17 @@ struct ath11k_vif_iter {
|
||||
@@ -419,6 +421,17 @@ struct ath11k_vif_iter {
|
||||
struct ath11k_vif *arvif;
|
||||
};
|
||||
|
||||
@@ -47,7 +47,7 @@ Signed-off-by: Manikanta Pubbisetty <mpubbise@codeaurora.org>
|
||||
struct ath11k_rx_peer_stats {
|
||||
u64 num_msdu;
|
||||
u64 num_mpdu_fcs_ok;
|
||||
@@ -429,10 +442,6 @@ struct ath11k_rx_peer_stats {
|
||||
@@ -430,10 +443,6 @@ struct ath11k_rx_peer_stats {
|
||||
u64 non_ampdu_msdu_count;
|
||||
u64 stbc_count;
|
||||
u64 beamformed_count;
|
||||
@@ -58,7 +58,7 @@ Signed-off-by: Manikanta Pubbisetty <mpubbise@codeaurora.org>
|
||||
u64 coding_count[HAL_RX_SU_MU_CODING_MAX];
|
||||
u64 tid_count[IEEE80211_NUM_TIDS + 1];
|
||||
u64 pream_cnt[HAL_RX_PREAMBLE_MAX];
|
||||
@@ -440,6 +449,8 @@ struct ath11k_rx_peer_stats {
|
||||
@@ -441,6 +450,8 @@ struct ath11k_rx_peer_stats {
|
||||
u64 rx_duration;
|
||||
u64 dcm_count;
|
||||
u64 ru_alloc_cnt[HAL_RX_RU_ALLOC_TYPE_MAX];
|
||||
|
||||
@@ -23,7 +23,7 @@ Signed-off-by: Miles Hu <milehu@codeaurora.org>
|
||||
#include "fw.h"
|
||||
|
||||
#define SM(_v, _f) (((_v) << _f##_LSB) & _f##_MASK)
|
||||
@@ -511,6 +512,8 @@ struct ath11k_htt_data_stats {
|
||||
@@ -512,6 +513,8 @@ struct ath11k_htt_data_stats {
|
||||
u64 bw[ATH11K_COUNTER_TYPE_MAX][ATH11K_BW_NUM];
|
||||
u64 nss[ATH11K_COUNTER_TYPE_MAX][ATH11K_NSS_NUM];
|
||||
u64 gi[ATH11K_COUNTER_TYPE_MAX][ATH11K_GI_NUM];
|
||||
@@ -32,7 +32,7 @@ Signed-off-by: Miles Hu <milehu@codeaurora.org>
|
||||
};
|
||||
|
||||
struct ath11k_htt_tx_stats {
|
||||
@@ -518,6 +521,9 @@ struct ath11k_htt_tx_stats {
|
||||
@@ -519,6 +522,9 @@ struct ath11k_htt_tx_stats {
|
||||
u64 tx_duration;
|
||||
u64 ba_fails;
|
||||
u64 ack_fails;
|
||||
@@ -42,7 +42,7 @@ Signed-off-by: Miles Hu <milehu@codeaurora.org>
|
||||
};
|
||||
|
||||
struct ath11k_per_ppdu_tx_stats {
|
||||
@@ -634,11 +640,16 @@ struct ath11k_per_peer_tx_stats {
|
||||
@@ -635,11 +641,16 @@ struct ath11k_per_peer_tx_stats {
|
||||
u32 succ_bytes;
|
||||
u32 retry_bytes;
|
||||
u32 failed_bytes;
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
struct ath11k_vif {
|
||||
u32 vdev_id;
|
||||
enum wmi_vdev_type vdev_type;
|
||||
@@ -414,6 +424,7 @@ struct ath11k_vif {
|
||||
@@ -415,6 +425,7 @@ struct ath11k_vif {
|
||||
struct ath11k_rekey_data rekey_data;
|
||||
|
||||
struct ath11k_reg_tpc_power_info reg_tpc_info;
|
||||
@@ -258,7 +258,7 @@
|
||||
ieee80211_tx_status_irqsafe(ar->hw, msdu);
|
||||
|
||||
num_mgmt = atomic_dec_if_positive(&ar->num_pending_mgmt_tx);
|
||||
@@ -7545,6 +7576,11 @@ static void ath11k_mgmt_rx_event(struct
|
||||
@@ -7547,6 +7578,11 @@ static void ath11k_mgmt_rx_event(struct
|
||||
struct ieee80211_hdr *hdr;
|
||||
u16 fc;
|
||||
struct ieee80211_supported_band *sband;
|
||||
@@ -270,7 +270,7 @@
|
||||
|
||||
if (ath11k_pull_mgmt_rx_params_tlv(ab, skb, &rx_ev) != 0) {
|
||||
ath11k_warn(ab, "failed to extract mgmt rx event");
|
||||
@@ -7610,7 +7646,34 @@ static void ath11k_mgmt_rx_event(struct
|
||||
@@ -7612,7 +7648,34 @@ static void ath11k_mgmt_rx_event(struct
|
||||
|
||||
hdr = (struct ieee80211_hdr *)skb->data;
|
||||
fc = le16_to_cpu(hdr->frame_control);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
||||
@@ -10199,6 +10199,8 @@ static int __ath11k_mac_register(struct
|
||||
@@ -10211,6 +10211,8 @@ static int __ath11k_mac_register(struct
|
||||
wiphy_ext_feature_set(ar->hw->wiphy,
|
||||
NL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT);
|
||||
|
||||
|
||||
@@ -260,8 +260,8 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
+ if (!peer) {
|
||||
+ spin_unlock_bh(&ab->base_lock);
|
||||
+ if(ab->nss.debug_mode)
|
||||
+ ath11k_warn(ab, "ath11k_nss: unable to free peer mem, peer_id:%d\n",
|
||||
+ peer_id);
|
||||
+ ath11k_warn(ab, "ath11k_nss: unable to free peer mem, peer_id:%d\n",
|
||||
+ peer_id);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
@@ -1298,9 +1298,9 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
+ preamble_type = ppdu_info->preamble_type;
|
||||
+ }
|
||||
+
|
||||
+ if ((preamble_type == WMI_RATE_PREAMBLE_CCK ||
|
||||
+ preamble_type == WMI_RATE_PREAMBLE_OFDM) &&
|
||||
+ (ppdu_info->rate < ATH11K_LEGACY_NUM)) {
|
||||
+ if ((preamble_type == WMI_RATE_PREAMBLE_CCK ||
|
||||
+ preamble_type == WMI_RATE_PREAMBLE_OFDM) &&
|
||||
+ (ppdu_info->rate < ATH11K_LEGACY_NUM)) {
|
||||
+ rate = ath11k_hal_rx_legacy_rates[ppdu_info->rate];
|
||||
+ }
|
||||
+
|
||||
@@ -3017,7 +3017,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
/* TODO: Do we need to enable ANI? */
|
||||
--- a/drivers/net/wireless/ath/ath11k/core.h
|
||||
+++ b/drivers/net/wireless/ath/ath11k/core.h
|
||||
@@ -890,6 +890,8 @@ struct ath11k_soc_dp_tx_err_stats {
|
||||
@@ -891,6 +891,8 @@ struct ath11k_soc_dp_tx_err_stats {
|
||||
* idr unavailable etc.
|
||||
*/
|
||||
atomic_t misc_fail;
|
||||
@@ -3026,7 +3026,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
};
|
||||
|
||||
struct ath11k_soc_dp_stats {
|
||||
@@ -976,6 +978,7 @@ struct ath11k_base {
|
||||
@@ -977,6 +979,7 @@ struct ath11k_base {
|
||||
struct list_head peers;
|
||||
wait_queue_head_t peer_mapping_wq;
|
||||
u8 mac_addr[ETH_ALEN];
|
||||
|
||||
@@ -164,7 +164,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
|
||||
#define SM(_v, _f) (((_v) << _f##_LSB) & _f##_MASK)
|
||||
|
||||
@@ -425,6 +426,9 @@ struct ath11k_vif {
|
||||
@@ -426,6 +427,9 @@ struct ath11k_vif {
|
||||
|
||||
struct ath11k_reg_tpc_power_info reg_tpc_info;
|
||||
struct ath11k_mgmt_frame_stats mgmt_stats;
|
||||
@@ -174,7 +174,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
};
|
||||
|
||||
struct ath11k_vif_iter {
|
||||
@@ -578,6 +582,9 @@ struct ath11k_sta {
|
||||
@@ -579,6 +583,9 @@ struct ath11k_sta {
|
||||
#endif
|
||||
|
||||
bool use_4addr_set;
|
||||
@@ -184,7 +184,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
u16 tcl_metadata;
|
||||
|
||||
/* Protected with ar->data_lock */
|
||||
@@ -672,6 +679,9 @@ struct ath11k {
|
||||
@@ -673,6 +680,9 @@ struct ath11k {
|
||||
struct ath11k_pdev *pdev;
|
||||
struct ieee80211_hw *hw;
|
||||
struct ath11k_pdev_wmi *wmi;
|
||||
@@ -194,7 +194,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
struct ath11k_pdev_dp dp;
|
||||
u8 mac_addr[ETH_ALEN];
|
||||
struct ath11k_he ar_he;
|
||||
@@ -933,9 +943,11 @@ struct ath11k_base {
|
||||
@@ -934,9 +944,11 @@ struct ath11k_base {
|
||||
struct ath11k_htc htc;
|
||||
|
||||
struct ath11k_dp dp;
|
||||
@@ -380,7 +380,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
}
|
||||
|
||||
+void ath11k_dp_rx_from_nss(struct ath11k *ar, struct sk_buff *msdu,
|
||||
+ struct napi_struct *napi)
|
||||
+ struct napi_struct *napi)
|
||||
+{
|
||||
+ struct ieee80211_rx_status rx_status = {0};
|
||||
+ struct ath11k_skb_rxcb *rxcb;
|
||||
@@ -674,7 +674,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
ret = ath11k_wmi_vdev_delete(ar, arvif->vdev_id);
|
||||
if (ret) {
|
||||
ath11k_warn(ar->ab, "failed to delete WMI vdev %d: %d\n",
|
||||
@@ -6740,7 +6813,34 @@ static int ath11k_mac_op_add_interface(s
|
||||
@@ -6751,7 +6824,34 @@ static int ath11k_mac_op_add_interface(s
|
||||
list_add(&arvif->list, &ar->arvifs);
|
||||
spin_unlock_bh(&ar->data_lock);
|
||||
|
||||
@@ -710,7 +710,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
|
||||
nss = get_num_chains(ar->cfg_tx_chainmask) ? : 1;
|
||||
ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id,
|
||||
@@ -6870,6 +6970,7 @@ err_peer_del:
|
||||
@@ -6881,6 +6981,7 @@ err_peer_del:
|
||||
}
|
||||
|
||||
err_vdev_del:
|
||||
@@ -718,7 +718,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
ath11k_mac_vdev_delete(ar, arvif);
|
||||
spin_lock_bh(&ar->data_lock);
|
||||
list_del(&arvif->list);
|
||||
@@ -7387,6 +7488,10 @@ ath11k_mac_update_vif_chan(struct ath11k
|
||||
@@ -7399,6 +7500,10 @@ ath11k_mac_update_vif_chan(struct ath11k
|
||||
arvif->vdev_id, ret);
|
||||
continue;
|
||||
}
|
||||
@@ -729,7 +729,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
}
|
||||
|
||||
/* Restart the internal monitor vdev on new channel */
|
||||
@@ -9014,6 +9119,8 @@ static void ath11k_mac_op_sta_statistics
|
||||
@@ -9026,6 +9131,8 @@ static void ath11k_mac_op_sta_statistics
|
||||
sinfo->signal_avg += ATH11K_DEFAULT_NOISE_FLOOR;
|
||||
|
||||
sinfo->filled |= BIT_ULL(NL80211_STA_INFO_SIGNAL_AVG);
|
||||
@@ -738,7 +738,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
}
|
||||
|
||||
#if IS_ENABLED(CONFIG_IPV6)
|
||||
@@ -9711,6 +9818,7 @@ static const struct ieee80211_ops ath11k
|
||||
@@ -9723,6 +9830,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,
|
||||
@@ -746,7 +746,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
.configure_filter = ath11k_mac_op_configure_filter,
|
||||
.hw_scan = ath11k_mac_op_hw_scan,
|
||||
.cancel_hw_scan = ath11k_mac_op_cancel_hw_scan,
|
||||
@@ -10149,7 +10257,8 @@ static int __ath11k_mac_register(struct
|
||||
@@ -10161,7 +10269,8 @@ static int __ath11k_mac_register(struct
|
||||
ieee80211_hw_set(ar->hw, TX_AMPDU_SETUP_IN_HW);
|
||||
ieee80211_hw_set(ar->hw, SUPPORTS_REORDERING_BUFFER);
|
||||
ieee80211_hw_set(ar->hw, SUPPORTS_AMSDU_IN_AMPDU);
|
||||
@@ -756,7 +756,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
}
|
||||
|
||||
ar->hw->wiphy->features |= NL80211_FEATURE_STATIC_SMPS;
|
||||
@@ -10264,6 +10373,9 @@ static int __ath11k_mac_register(struct
|
||||
@@ -10276,6 +10385,9 @@ static int __ath11k_mac_register(struct
|
||||
ab->hw_params.bios_sar_capa)
|
||||
ar->hw->wiphy->sar_capa = ab->hw_params.bios_sar_capa;
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
|
||||
[WMI_TAG_11D_NEW_COUNTRY_EVENT] = {
|
||||
.min_len = sizeof(struct wmi_11d_new_cc_ev) },
|
||||
[WMI_TAG_PER_CHAIN_RSSI_STATS] = {
|
||||
@@ -8805,6 +8807,74 @@ out:
|
||||
@@ -8807,6 +8809,74 @@ out:
|
||||
kfree(tb);
|
||||
}
|
||||
|
||||
@@ -115,7 +115,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
|
||||
static void ath11k_wmi_tlv_op_rx(struct ath11k_base *ab, struct sk_buff *skb)
|
||||
{
|
||||
struct wmi_cmd_hdr *cmd_hdr;
|
||||
@@ -8923,6 +8993,9 @@ static void ath11k_wmi_tlv_op_rx(struct
|
||||
@@ -8925,6 +8995,9 @@ static void ath11k_wmi_tlv_op_rx(struct
|
||||
case WMI_11D_NEW_COUNTRY_EVENTID:
|
||||
ath11k_reg_11d_new_cc_event(ab, skb);
|
||||
break;
|
||||
|
||||
@@ -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
|
||||
@@ -10390,6 +10390,9 @@ static int __ath11k_mac_register(struct
|
||||
@@ -10402,6 +10402,9 @@ static int __ath11k_mac_register(struct
|
||||
*/
|
||||
ar->hw->wiphy->interface_modes &= ~BIT(NL80211_IFTYPE_MONITOR);
|
||||
|
||||
|
||||
@@ -152,7 +152,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
|
||||
|
||||
#define SM(_v, _f) (((_v) << _f##_LSB) & _f##_MASK)
|
||||
|
||||
@@ -928,6 +928,11 @@ struct ath11k_msi_config {
|
||||
@@ -929,6 +929,11 @@ struct ath11k_msi_config {
|
||||
u16 hw_rev;
|
||||
};
|
||||
|
||||
@@ -164,7 +164,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
|
||||
/* Master structure to hold the hw data which may be used in core module */
|
||||
struct ath11k_base {
|
||||
enum ath11k_hw_rev hw_rev;
|
||||
@@ -1085,6 +1090,8 @@ struct ath11k_base {
|
||||
@@ -1086,6 +1091,8 @@ struct ath11k_base {
|
||||
DECLARE_BITMAP(fw_features, ATH11K_FW_FEATURE_COUNT);
|
||||
} fw;
|
||||
|
||||
|
||||
@@ -652,7 +652,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
|
||||
-static inline int ath11k_nss_peer_delete(struct ath11k_base *ab, const u8 *addr)
|
||||
+static inline int ath11k_nss_peer_delete(struct ath11k_base *ab, u32 vdev_id,
|
||||
+ const u8 *addr)
|
||||
+ const u8 *addr)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath11k/core.h
|
||||
+++ b/drivers/net/wireless/ath/ath11k/core.h
|
||||
@@ -682,6 +682,7 @@ struct ath11k {
|
||||
@@ -683,6 +683,7 @@ struct ath11k {
|
||||
struct ath11k_pdev_wmi *wmi;
|
||||
#ifdef CPTCFG_ATH11K_NSS_SUPPORT
|
||||
struct ath11k_nss nss;
|
||||
@@ -34,7 +34,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
#endif
|
||||
struct ath11k_pdev_dp dp;
|
||||
u8 mac_addr[ETH_ALEN];
|
||||
@@ -1100,6 +1101,9 @@ struct ath11k_base {
|
||||
@@ -1101,6 +1102,9 @@ struct ath11k_base {
|
||||
} testmode;
|
||||
#endif
|
||||
|
||||
@@ -378,7 +378,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
+}
|
||||
+
|
||||
+void ath11k_peer_ast_cleanup(struct ath11k *ar, struct ath11k_peer *peer,
|
||||
+ bool is_wds, u32 free_wds_count)
|
||||
+ bool is_wds, u32 free_wds_count)
|
||||
+{
|
||||
+ struct ath11k_ast_entry *ast_entry, *tmp;
|
||||
+ u32 ast_deleted_count = 0;
|
||||
@@ -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:
|
||||
@@ -8875,6 +8953,22 @@ exit:
|
||||
@@ -8877,6 +8955,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;
|
||||
@@ -9008,6 +9102,9 @@ static void ath11k_wmi_tlv_op_rx(struct
|
||||
@@ -9010,6 +9104,9 @@ static void ath11k_wmi_tlv_op_rx(struct
|
||||
case WMI_P2P_NOA_EVENTID:
|
||||
ath11k_wmi_p2p_noa_event(ab, skb);
|
||||
break;
|
||||
|
||||
@@ -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);
|
||||
@@ -7836,10 +7894,11 @@ exit:
|
||||
@@ -7838,10 +7896,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;
|
||||
}
|
||||
@@ -7852,7 +7911,7 @@ static void ath11k_mgmt_tx_compl_event(s
|
||||
@@ -7854,7 +7913,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",
|
||||
@@ -7863,6 +7922,36 @@ exit:
|
||||
@@ -7865,6 +7924,36 @@ exit:
|
||||
rcu_read_unlock();
|
||||
}
|
||||
|
||||
@@ -275,7 +275,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
|
||||
static struct ath11k *ath11k_get_ar_on_scan_state(struct ath11k_base *ab,
|
||||
u32 vdev_id,
|
||||
enum ath11k_scan_state state)
|
||||
@@ -9105,6 +9194,10 @@ static void ath11k_wmi_tlv_op_rx(struct
|
||||
@@ -9107,6 +9196,10 @@ static void ath11k_wmi_tlv_op_rx(struct
|
||||
case WMI_WDS_PEER_EVENTID:
|
||||
ath11k_wmi_wds_peer_event(ab, skb);
|
||||
break;
|
||||
|
||||
@@ -215,8 +215,8 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
ath11k_dbg(ar->ab, ATH11K_DBG_NSS, "nss vdev up tx msg success\n");
|
||||
+
|
||||
+ if (arvif->vif->type == NL80211_IFTYPE_AP)
|
||||
+ list_for_each_entry_safe(ap_vlan_arvif, tmp, &arvif->ap_vlan_arvifs,
|
||||
+ list)
|
||||
+ list_for_each_entry_safe(ap_vlan_arvif, tmp,
|
||||
+ &arvif->ap_vlan_arvifs, list)
|
||||
+ if (ap_vlan_arvif->nss.added)
|
||||
+ ath11k_nss_ext_vdev_up(ap_vlan_arvif);
|
||||
free:
|
||||
@@ -236,8 +236,8 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
ath11k_dbg(ar->ab, ATH11K_DBG_NSS, "nss vdev down tx msg success\n");
|
||||
+
|
||||
+ if (arvif->vif->type == NL80211_IFTYPE_AP)
|
||||
+ list_for_each_entry_safe(ap_vlan_arvif, tmp, &arvif->ap_vlan_arvifs,
|
||||
+ list)
|
||||
+ list_for_each_entry_safe(ap_vlan_arvif, tmp,
|
||||
+ &arvif->ap_vlan_arvifs, list)
|
||||
+ ath11k_nss_ext_vdev_down(ap_vlan_arvif);
|
||||
free:
|
||||
kfree(vdev_msg);
|
||||
|
||||
@@ -69,7 +69,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
struct ath11k_vif {
|
||||
u32 vdev_id;
|
||||
enum wmi_vdev_type vdev_type;
|
||||
@@ -431,6 +450,11 @@ struct ath11k_vif {
|
||||
@@ -432,6 +451,11 @@ struct ath11k_vif {
|
||||
struct arvif_nss nss;
|
||||
#endif
|
||||
struct list_head ap_vlan_arvifs;
|
||||
@@ -346,7 +346,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
+ } else if (!peer) {
|
||||
/* impossible unless FW goes crazy */
|
||||
ath11k_warn(ab, "peer %pM disappeared!\n", peer_addr);
|
||||
+ }
|
||||
+ }
|
||||
|
||||
- if (sta) {
|
||||
- arsta = ath11k_sta_to_arsta(sta);
|
||||
@@ -354,7 +354,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
|
||||
switch (key->cipher) {
|
||||
case WLAN_CIPHER_SUITE_TKIP:
|
||||
@@ -6889,7 +7063,7 @@ static int ath11k_mac_op_add_interface(s
|
||||
@@ -6899,7 +7073,7 @@ static int ath11k_mac_op_add_interface(s
|
||||
if ((vif->type == NL80211_IFTYPE_AP_VLAN ||
|
||||
vif->type == NL80211_IFTYPE_STATION) && ab->nss.enabled) {
|
||||
if (ath11k_frame_mode == ATH11K_HW_TXRX_ETHERNET &&
|
||||
@@ -363,7 +363,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
vif->offload_flags |= IEEE80211_OFFLOAD_ENCAP_4ADDR;
|
||||
arvif->nss.encap = ATH11K_HW_TXRX_ETHERNET;
|
||||
arvif->nss.decap = ATH11K_HW_TXRX_ETHERNET;
|
||||
@@ -6902,6 +7076,7 @@ static int ath11k_mac_op_add_interface(s
|
||||
@@ -6912,6 +7086,7 @@ static int ath11k_mac_op_add_interface(s
|
||||
vif->addr, ret);
|
||||
goto err;
|
||||
}
|
||||
@@ -371,7 +371,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
mutex_unlock(&ar->conf_mutex);
|
||||
return ret;
|
||||
}
|
||||
@@ -6926,6 +7101,20 @@ static int ath11k_mac_op_add_interface(s
|
||||
@@ -6937,6 +7112,20 @@ static int ath11k_mac_op_add_interface(s
|
||||
arvif->vdev_id = bit;
|
||||
arvif->vdev_subtype = WMI_VDEV_SUBTYPE_NONE;
|
||||
|
||||
@@ -392,7 +392,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
switch (vif->type) {
|
||||
case NL80211_IFTYPE_UNSPECIFIED:
|
||||
case NL80211_IFTYPE_STATION:
|
||||
@@ -6975,7 +7164,7 @@ static int ath11k_mac_op_add_interface(s
|
||||
@@ -6986,7 +7175,7 @@ static int ath11k_mac_op_add_interface(s
|
||||
if (ret) {
|
||||
ath11k_warn(ab, "failed to create WMI vdev %d: %d\n",
|
||||
arvif->vdev_id, ret);
|
||||
@@ -401,7 +401,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
}
|
||||
|
||||
ar->num_created_vdevs++;
|
||||
@@ -7140,7 +7329,7 @@ err_peer_del:
|
||||
@@ -7151,7 +7340,7 @@ err_peer_del:
|
||||
if (fbret) {
|
||||
ath11k_warn(ar->ab, "fallback fail to delete peer addr %pM vdev_id %d ret %d\n",
|
||||
vif->addr, arvif->vdev_id, fbret);
|
||||
@@ -410,7 +410,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7151,6 +7340,8 @@ err_vdev_del:
|
||||
@@ -7162,6 +7351,8 @@ err_vdev_del:
|
||||
list_del(&arvif->list);
|
||||
spin_unlock_bh(&ar->data_lock);
|
||||
|
||||
@@ -419,7 +419,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
err:
|
||||
mutex_unlock(&ar->conf_mutex);
|
||||
|
||||
@@ -7248,6 +7439,7 @@ err_vdev_del:
|
||||
@@ -7260,6 +7451,7 @@ err_vdev_del:
|
||||
list_del(&arvif->list);
|
||||
spin_unlock_bh(&ar->data_lock);
|
||||
|
||||
@@ -427,7 +427,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
ath11k_peer_cleanup(ar, arvif->vdev_id);
|
||||
|
||||
idr_for_each(&ar->txmgmt_idr,
|
||||
@@ -9872,6 +10064,33 @@ static int ath11k_mac_station_remove(str
|
||||
@@ -9884,6 +10076,33 @@ static int ath11k_mac_station_remove(str
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -461,7 +461,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
static int ath11k_mac_op_sta_state(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif,
|
||||
struct ieee80211_sta *sta,
|
||||
@@ -9961,6 +10180,34 @@ static int ath11k_mac_op_sta_state(struc
|
||||
@@ -9973,6 +10192,34 @@ static int ath11k_mac_op_sta_state(struc
|
||||
if (ret)
|
||||
ath11k_warn(ar->ab, "Unable to authorize peer %pM vdev %d: %d\n",
|
||||
sta->addr, arvif->vdev_id, ret);
|
||||
@@ -496,7 +496,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
}
|
||||
|
||||
if (!ret &&
|
||||
@@ -10575,8 +10822,11 @@ static int __ath11k_mac_register(struct
|
||||
@@ -10587,8 +10834,11 @@ static int __ath11k_mac_register(struct
|
||||
ab->hw_params.bios_sar_capa)
|
||||
ar->hw->wiphy->sar_capa = ab->hw_params.bios_sar_capa;
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
|
||||
};
|
||||
|
||||
enum ath11k_hw_rev {
|
||||
@@ -1129,6 +1130,7 @@ struct ath11k_base {
|
||||
@@ -1130,6 +1131,7 @@ struct ath11k_base {
|
||||
u32 max_ast_index;
|
||||
u32 num_ast_entries;
|
||||
|
||||
@@ -124,7 +124,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
|
||||
goto out;
|
||||
}
|
||||
+ debugfs_create_file("stats_disable", 0600, ab->debugfs_soc, ab,
|
||||
+ &fops_soc_stats_disable);
|
||||
+ &fops_soc_stats_disable);
|
||||
|
||||
ret = 0;
|
||||
|
||||
@@ -425,7 +425,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
|
||||
@@ -10234,6 +10234,14 @@ static int ath11k_mac_op_sta_state(struc
|
||||
@@ -10246,6 +10246,14 @@ static int ath11k_mac_op_sta_state(struc
|
||||
}
|
||||
} else if (old_state == IEEE80211_STA_AUTHORIZED &&
|
||||
new_state == IEEE80211_STA_ASSOC) {
|
||||
|
||||
@@ -34,7 +34,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
|
||||
};
|
||||
|
||||
struct ath11k_skb_cb {
|
||||
@@ -924,10 +925,13 @@ struct ath11k_dp_ring_bp_stats {
|
||||
@@ -925,10 +926,13 @@ struct ath11k_dp_ring_bp_stats {
|
||||
struct ath11k_soc_dp_tx_err_stats {
|
||||
/* TCL Ring Descriptor unavailable */
|
||||
u32 desc_na[DP_TCL_NUM_RING_MAX];
|
||||
@@ -454,7 +454,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
|
||||
ieee80211_free_txskb(ar->hw, skb);
|
||||
return;
|
||||
}
|
||||
@@ -7445,7 +7455,7 @@ err_vdev_del:
|
||||
@@ -7457,7 +7467,7 @@ err_vdev_del:
|
||||
idr_for_each(&ar->txmgmt_idr,
|
||||
ath11k_mac_vif_txmgmt_idr_remove, vif);
|
||||
|
||||
|
||||
@@ -1257,7 +1257,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
|
||||
mutex_unlock(&ar->conf_mutex);
|
||||
}
|
||||
|
||||
@@ -10274,6 +10286,28 @@ static int ath11k_mac_op_sta_state(struc
|
||||
@@ -10286,6 +10298,28 @@ static int ath11k_mac_op_sta_state(struc
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -1286,7 +1286,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
|
||||
static const struct ieee80211_ops ath11k_ops = {
|
||||
.tx = ath11k_mac_op_tx,
|
||||
.wake_tx_queue = ieee80211_handle_wake_tx_queue,
|
||||
@@ -10332,6 +10366,9 @@ static const struct ieee80211_ops ath11k
|
||||
@@ -10344,6 +10378,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,
|
||||
@@ -10844,6 +10881,8 @@ static int __ath11k_mac_register(struct
|
||||
@@ -10856,6 +10893,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);
|
||||
@@ -3272,7 +3272,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
|
||||
+ enum ieee80211_mesh_path_offld_cmd cmd,
|
||||
+ struct ieee80211_mesh_path_offld *path)
|
||||
+{
|
||||
+ return 0;
|
||||
+ return 0;
|
||||
+}
|
||||
+#endif
|
||||
+int ath11k_nss_mesh_config_update(struct ieee80211_vif *vif, int changed);
|
||||
|
||||
@@ -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
|
||||
@@ -7464,8 +7464,10 @@ err_vdev_del:
|
||||
@@ -7476,8 +7476,10 @@ err_vdev_del:
|
||||
kfree(arvif->vlan_keyid_map);
|
||||
ath11k_peer_cleanup(ar, arvif->vdev_id);
|
||||
|
||||
|
||||
@@ -83,7 +83,7 @@ Signed-off-by: Rameshkumar Sundaram <ramess@codeaurora.org>
|
||||
#include "fw.h"
|
||||
|
||||
#define SM(_v, _f) (((_v) << _f##_LSB) & _f##_MASK)
|
||||
@@ -1133,6 +1134,9 @@ struct ath11k_base {
|
||||
@@ -1134,6 +1135,9 @@ struct ath11k_base {
|
||||
|
||||
u32 max_ast_index;
|
||||
u32 num_ast_entries;
|
||||
@@ -358,7 +358,7 @@ Signed-off-by: Rameshkumar Sundaram <ramess@codeaurora.org>
|
||||
return 0;
|
||||
|
||||
+ if (peer && peer->delete_in_progress)
|
||||
+ return -EINVAL;
|
||||
+ return -EINVAL;
|
||||
+
|
||||
ast_entry->vdev_id = peer->vdev_id;
|
||||
ast_entry->pdev_idx = peer->pdev_idx;
|
||||
|
||||
@@ -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
|
||||
@@ -10767,6 +10767,8 @@ static int __ath11k_mac_register(struct
|
||||
@@ -10779,6 +10779,8 @@ static int __ath11k_mac_register(struct
|
||||
ieee80211_hw_set(ar->hw, USES_RSS);
|
||||
}
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ Signed-off-by: Karthikeyan Kathirvel <quic_kathirve@quicinc.com>
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -10186,6 +10180,17 @@ static int ath11k_mac_op_sta_state(struc
|
||||
@@ -10198,6 +10192,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);
|
||||
|
||||
@@ -41,7 +41,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath11k/core.h
|
||||
+++ b/drivers/net/wireless/ath/ath11k/core.h
|
||||
@@ -943,6 +943,9 @@ struct ath11k_soc_dp_stats {
|
||||
@@ -944,6 +944,9 @@ struct ath11k_soc_dp_stats {
|
||||
u32 rxdma_error[HAL_REO_ENTR_RING_RXDMA_ECODE_MAX];
|
||||
u32 reo_error[HAL_REO_DEST_RING_ERROR_CODE_MAX];
|
||||
u32 hal_reo_error[DP_REO_DST_RING_MAX];
|
||||
|
||||
@@ -27,7 +27,7 @@ Signed-off-by: Hari Chandrakanthan <quic_haric@quicinc.com>
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
||||
@@ -8688,6 +8688,8 @@ static int ath11k_mac_flush_tx_complete(
|
||||
@@ -8700,6 +8700,8 @@ static int ath11k_mac_flush_tx_complete(
|
||||
ret = -ETIMEDOUT;
|
||||
}
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
||||
@@ -10758,6 +10758,7 @@ static int __ath11k_mac_register(struct
|
||||
@@ -10770,6 +10770,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);
|
||||
|
||||
@@ -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
|
||||
@@ -10364,7 +10364,7 @@ static const struct ieee80211_ops ath11k
|
||||
@@ -10376,7 +10376,7 @@ static const struct ieee80211_ops ath11k
|
||||
.set_wakeup = ath11k_wow_op_set_wakeup,
|
||||
#endif
|
||||
|
||||
|
||||
@@ -688,13 +688,13 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
|
||||
+static bool ath11k_hw_qcn9074_rx_desc_mac_addr2_valid(struct hal_rx_desc *desc)
|
||||
{
|
||||
- return &desc->u.ipq8074.msdu_payload[0];
|
||||
+ return __le32_to_cpu(desc->u.qcn9074.mpdu_start.info11) &
|
||||
+ return __le32_to_cpu(desc->u.qcn9074.mpdu_start.info11) &
|
||||
+ RX_MPDU_START_INFO11_MAC_ADDR2_VALID;
|
||||
+}
|
||||
+
|
||||
+static u8* ath11k_hw_qcn9074_rx_desc_mpdu_start_addr2(struct hal_rx_desc *desc)
|
||||
+{
|
||||
+ return desc->u.qcn9074.mpdu_start.addr2;
|
||||
+ return desc->u.qcn9074.mpdu_start.addr2;
|
||||
}
|
||||
|
||||
static bool ath11k_hw_qcn9074_rx_desc_get_first_msdu(struct hal_rx_desc *desc)
|
||||
@@ -943,7 +943,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
|
||||
ret = ath11k_dp_tx_htt_rx_filter_setup(ar->ab, ring_id,
|
||||
--- a/drivers/net/wireless/ath/ath11k/rx_desc.h
|
||||
+++ b/drivers/net/wireless/ath/ath11k/rx_desc.h
|
||||
@@ -1508,4 +1508,17 @@ struct hal_rx_desc {
|
||||
@@ -1508,4 +1508,16 @@ struct hal_rx_desc {
|
||||
#define RU_484 18
|
||||
#define RU_996 37
|
||||
|
||||
@@ -958,7 +958,6 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
|
||||
+
|
||||
+#define HAL_RX_MPDU_INFO_PN_GET_BYTE4(__val) \
|
||||
+ FIELD_GET(GENMASK(31, 24), __le32_to_cpu(__val))
|
||||
+
|
||||
+
|
||||
#endif /* ATH11K_RX_DESC_H */
|
||||
--- a/drivers/net/wireless/ath/ath11k/nss.c
|
||||
|
||||
@@ -18,7 +18,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath11k/core.h
|
||||
+++ b/drivers/net/wireless/ath/ath11k/core.h
|
||||
@@ -703,6 +703,11 @@ struct ath11k_per_peer_tx_stats {
|
||||
@@ -704,6 +704,11 @@ struct ath11k_per_peer_tx_stats {
|
||||
#define ATH11K_FLUSH_TIMEOUT (5 * HZ)
|
||||
#define ATH11K_VDEV_DELETE_TIMEOUT_HZ (5 * HZ)
|
||||
|
||||
@@ -30,7 +30,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
|
||||
struct ath11k {
|
||||
struct ath11k_base *ab;
|
||||
struct ath11k_pdev *pdev;
|
||||
@@ -852,6 +857,7 @@ struct ath11k {
|
||||
@@ -853,6 +858,7 @@ struct ath11k {
|
||||
bool ps_state_enable;
|
||||
bool ps_timekeeper_enable;
|
||||
s8 max_allowed_tx_power;
|
||||
|
||||
@@ -137,7 +137,7 @@
|
||||
#define ATH11K_HWMON_NAME_LEN 15
|
||||
--- a/drivers/net/wireless/ath/ath11k/wmi.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/wmi.c
|
||||
@@ -3237,6 +3237,7 @@ ath11k_wmi_send_thermal_mitigation_param
|
||||
@@ -3236,6 +3236,7 @@ ath11k_wmi_send_thermal_mitigation_param
|
||||
lvl_conf->temp_hwm = param->levelconf[i].tmphwm;
|
||||
lvl_conf->dc_off_percent = param->levelconf[i].dcoffpercent;
|
||||
lvl_conf->prio = param->levelconf[i].priority;
|
||||
@@ -168,11 +168,11 @@
|
||||
};
|
||||
|
||||
+typedef enum {
|
||||
+ WMI_THERMAL_CLIENT_UNSPECIFIED = 0,
|
||||
+ WMI_THERMAL_CLIENT_APPS = 1,
|
||||
+ WMI_THERMAL_CLIENT_WPSS = 2,
|
||||
+ WMI_THERMAL_CLIENT_FW = 3,
|
||||
+ WMI_THERMAL_CLIENT_MAX
|
||||
+ WMI_THERMAL_CLIENT_UNSPECIFIED = 0,
|
||||
+ WMI_THERMAL_CLIENT_APPS = 1,
|
||||
+ WMI_THERMAL_CLIENT_WPSS = 2,
|
||||
+ WMI_THERMAL_CLIENT_FW = 3,
|
||||
+ WMI_THERMAL_CLIENT_MAX
|
||||
+} WMI_THERMAL_MITIGATION_CLIENTS;
|
||||
+
|
||||
struct wmi_therm_throt_config_request_cmd {
|
||||
@@ -229,7 +229,7 @@
|
||||
struct wmi_delba_send_cmd {
|
||||
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
||||
@@ -6683,6 +6683,9 @@ static int ath11k_mac_op_start(struct ie
|
||||
@@ -6704,6 +6704,9 @@ static int ath11k_mac_op_start(struct ie
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
INIT_WORK(&ab->restart_work, ath11k_core_restart);
|
||||
--- a/drivers/net/wireless/ath/ath11k/core.h
|
||||
+++ b/drivers/net/wireless/ath/ath11k/core.h
|
||||
@@ -740,9 +740,22 @@ struct ath11k {
|
||||
@@ -741,9 +741,22 @@ struct ath11k {
|
||||
iftype[NUM_NL80211_BANDS][NUM_NL80211_IFTYPES];
|
||||
} mac;
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
u32 min_tx_power;
|
||||
u32 max_tx_power;
|
||||
u32 txpower_limit_2g;
|
||||
@@ -820,6 +833,9 @@ struct ath11k {
|
||||
@@ -821,6 +834,9 @@ struct ath11k {
|
||||
struct work_struct wmi_mgmt_tx_work;
|
||||
struct sk_buff_head wmi_mgmt_tx_queue;
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
struct ath11k_wow wow;
|
||||
struct completion target_suspend;
|
||||
bool target_suspend_ack;
|
||||
@@ -1023,19 +1039,7 @@ struct ath11k_base {
|
||||
@@ -1024,19 +1040,7 @@ struct ath11k_base {
|
||||
struct ath11k_hal_reg_capabilities_ext hal_reg_cap[MAX_RADIOS];
|
||||
unsigned long long free_vdev_map;
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
u8 mac_addr[ETH_ALEN];
|
||||
int userpd_id;
|
||||
int irq_num[ATH11K_IRQ_NUM_MAX];
|
||||
@@ -1412,4 +1416,36 @@ static inline const char *ath11k_bus_str
|
||||
@@ -1413,4 +1417,36 @@ static inline const char *ath11k_bus_str
|
||||
return "unknown";
|
||||
}
|
||||
|
||||
@@ -784,7 +784,7 @@
|
||||
|
||||
ar->num_peers = 0;
|
||||
ar->num_stations = 0;
|
||||
@@ -3187,7 +3187,7 @@ static void ath11k_bss_assoc(struct ieee
|
||||
@@ -3208,7 +3208,7 @@ static void ath11k_bss_assoc(struct ieee
|
||||
|
||||
spin_lock_bh(&ar->ab->base_lock);
|
||||
|
||||
@@ -793,7 +793,7 @@
|
||||
if (peer && peer->is_authorized)
|
||||
is_auth = true;
|
||||
|
||||
@@ -4349,7 +4349,7 @@ static int ath11k_clear_peer_keys(struct
|
||||
@@ -4370,7 +4370,7 @@ static int ath11k_clear_peer_keys(struct
|
||||
lockdep_assert_held(&ar->conf_mutex);
|
||||
|
||||
spin_lock_bh(&ab->base_lock);
|
||||
@@ -802,7 +802,7 @@
|
||||
if (!peer) {
|
||||
spin_unlock_bh(&ab->base_lock);
|
||||
return -ENOENT;
|
||||
@@ -4465,7 +4465,7 @@ static int ath11k_mac_op_set_key(struct
|
||||
@@ -4486,7 +4486,7 @@ static int ath11k_mac_op_set_key(struct
|
||||
* we already hold conf_mutex. we just make sure its there now.
|
||||
*/
|
||||
spin_lock_bh(&ab->base_lock);
|
||||
@@ -811,7 +811,7 @@
|
||||
|
||||
/* flush the fragments cache during key (re)install to
|
||||
* ensure all frags in the new frag list belong to the same key.
|
||||
@@ -4574,7 +4574,7 @@ static int ath11k_mac_op_set_key(struct
|
||||
@@ -4595,7 +4595,7 @@ static int ath11k_mac_op_set_key(struct
|
||||
}
|
||||
|
||||
spin_lock_bh(&ab->base_lock);
|
||||
@@ -820,7 +820,7 @@
|
||||
|
||||
/* TODO: Check if vdev specific security cfg is mandatory */
|
||||
ret = ath11k_nss_vdev_set_cmd(arvif, ATH11K_NSS_WIFI_VDEV_SECURITY_TYPE_CMD, key->cipher);
|
||||
@@ -4605,7 +4605,7 @@ static int ath11k_mac_op_set_key(struct
|
||||
@@ -4626,7 +4626,7 @@ static int ath11k_mac_op_set_key(struct
|
||||
list_for_each_entry_safe(dyn_vlan_cfg, tmp, &ap_vlan_arvif->dyn_vlan_cfg, cfg_list) {
|
||||
struct ieee80211_sta *vlan_sta = dyn_vlan_cfg->sta;
|
||||
|
||||
@@ -829,7 +829,7 @@
|
||||
if (ret)
|
||||
ath11k_warn(ar->ab, "failed to cfg dyn vlan for peer %pM: %d\n",
|
||||
vlan_sta->addr, ret);
|
||||
@@ -5215,7 +5215,7 @@ static void ath11k_sta_set_4addr_wk(stru
|
||||
@@ -5236,7 +5236,7 @@ static void ath11k_sta_set_4addr_wk(stru
|
||||
vif = ap_vlan_arvif->vif;
|
||||
|
||||
spin_lock_bh(&ab->base_lock);
|
||||
@@ -838,7 +838,7 @@
|
||||
if (!wds_peer) {
|
||||
spin_unlock_bh(&ab->base_lock);
|
||||
ath11k_warn(ab, "mac sta use 4addr failed to find peer %pM\n",
|
||||
@@ -5438,7 +5438,7 @@ static void ath11k_mac_op_sta_rc_update(
|
||||
@@ -5459,7 +5459,7 @@ static void ath11k_mac_op_sta_rc_update(
|
||||
|
||||
spin_lock_bh(&ar->ab->base_lock);
|
||||
|
||||
@@ -847,7 +847,7 @@
|
||||
if (!peer) {
|
||||
spin_unlock_bh(&ar->ab->base_lock);
|
||||
ath11k_warn(ar->ab, "mac sta rc update failed to find peer %pM on vdev %i\n",
|
||||
@@ -8463,7 +8463,7 @@ ath11k_mac_op_assign_vif_chanctx(struct
|
||||
@@ -8496,7 +8496,7 @@ ath11k_mac_op_assign_vif_chanctx(struct
|
||||
if (ab->hw_params.vdev_start_delay &&
|
||||
arvif->vdev_type != WMI_VDEV_TYPE_AP &&
|
||||
arvif->vdev_type != WMI_VDEV_TYPE_MONITOR &&
|
||||
@@ -856,7 +856,7 @@
|
||||
memcpy(&arvif->chanctx, ctx, sizeof(*ctx));
|
||||
ret = 0;
|
||||
goto out;
|
||||
@@ -8539,7 +8539,7 @@ ath11k_mac_op_unassign_vif_chanctx(struc
|
||||
@@ -8572,7 +8572,7 @@ ath11k_mac_op_unassign_vif_chanctx(struc
|
||||
if (ab->hw_params.vdev_start_delay &&
|
||||
arvif->vdev_type == WMI_VDEV_TYPE_MONITOR) {
|
||||
spin_lock_bh(&ab->base_lock);
|
||||
@@ -865,7 +865,7 @@
|
||||
spin_unlock_bh(&ab->base_lock);
|
||||
if (peer)
|
||||
ath11k_peer_delete(ar, arvif->vdev_id, ar->mac_addr);
|
||||
@@ -9113,7 +9113,7 @@ ath11k_mac_validate_vht_he_fixed_rate_se
|
||||
@@ -9146,7 +9146,7 @@ ath11k_mac_validate_vht_he_fixed_rate_se
|
||||
|
||||
rcu_read_lock();
|
||||
spin_lock_bh(&ar->ab->base_lock);
|
||||
@@ -874,7 +874,7 @@
|
||||
if (peer->sta) {
|
||||
deflink = &peer->sta->deflink;
|
||||
|
||||
@@ -10069,26 +10069,26 @@ static int ath11k_mac_station_remove(str
|
||||
@@ -10102,26 +10102,26 @@ static int ath11k_mac_station_remove(str
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -908,7 +908,7 @@
|
||||
sta->addr, ret);
|
||||
return ret;
|
||||
}
|
||||
@@ -10138,20 +10138,20 @@ static int ath11k_mac_op_sta_state(struc
|
||||
@@ -10171,20 +10171,20 @@ static int ath11k_mac_op_sta_state(struc
|
||||
ath11k_warn(ar->ab, "Failed to remove station: %pM for VDEV: %d\n",
|
||||
sta->addr, arvif->vdev_id);
|
||||
|
||||
@@ -933,7 +933,7 @@
|
||||
} else if (old_state == IEEE80211_STA_AUTH &&
|
||||
new_state == IEEE80211_STA_ASSOC &&
|
||||
(vif->type == NL80211_IFTYPE_AP ||
|
||||
@@ -10182,7 +10182,7 @@ static int ath11k_mac_op_sta_state(struc
|
||||
@@ -10215,7 +10215,7 @@ static int ath11k_mac_op_sta_state(struc
|
||||
new_state == IEEE80211_STA_AUTHORIZED) {
|
||||
spin_lock_bh(&ar->ab->base_lock);
|
||||
|
||||
@@ -942,7 +942,7 @@
|
||||
if (peer)
|
||||
peer->is_authorized = true;
|
||||
|
||||
@@ -10219,7 +10219,7 @@ static int ath11k_mac_op_sta_state(struc
|
||||
@@ -10252,7 +10252,7 @@ static int ath11k_mac_op_sta_state(struc
|
||||
list_add_tail(&ar_dyn_vlan_cfg->cfg_list, &arvif->dyn_vlan_cfg);
|
||||
}
|
||||
} else {
|
||||
@@ -951,7 +951,7 @@
|
||||
if (ret)
|
||||
ath11k_warn(ar->ab, "failed to cfg dyn vlan for peer %pM: %d\n",
|
||||
sta->addr, ret);
|
||||
@@ -10252,7 +10252,7 @@ static int ath11k_mac_op_sta_state(struc
|
||||
@@ -10285,7 +10285,7 @@ static int ath11k_mac_op_sta_state(struc
|
||||
new_state == IEEE80211_STA_ASSOC) {
|
||||
|
||||
spin_lock_bh(&ar->ab->base_lock);
|
||||
@@ -960,7 +960,7 @@
|
||||
if (peer)
|
||||
peer->is_authorized = false;
|
||||
spin_unlock_bh(&ar->ab->base_lock);
|
||||
@@ -10260,7 +10260,7 @@ static int ath11k_mac_op_sta_state(struc
|
||||
@@ -10293,7 +10293,7 @@ static int ath11k_mac_op_sta_state(struc
|
||||
new_state == IEEE80211_STA_ASSOC) {
|
||||
spin_lock_bh(&ar->ab->base_lock);
|
||||
|
||||
@@ -969,7 +969,7 @@
|
||||
if (peer)
|
||||
peer->is_authorized = false;
|
||||
|
||||
@@ -10668,9 +10668,9 @@ void ath11k_mac_unregister(struct ath11k
|
||||
@@ -10701,9 +10701,9 @@ void ath11k_mac_unregister(struct ath11k
|
||||
continue;
|
||||
|
||||
__ath11k_mac_unregister(ar);
|
||||
@@ -980,7 +980,7 @@
|
||||
}
|
||||
|
||||
static int __ath11k_mac_register(struct ath11k *ar)
|
||||
@@ -10954,15 +10954,15 @@ int ath11k_mac_register(struct ath11k_ba
|
||||
@@ -10987,15 +10987,15 @@ int ath11k_mac_register(struct ath11k_ba
|
||||
ab->cc_freq_hz = IPQ8074_CC_FREQ_HERTZ;
|
||||
ab->free_vdev_map = (1LL << (ab->num_radios * TARGET_NUM_VDEVS(ab))) - 1;
|
||||
|
||||
@@ -999,7 +999,7 @@
|
||||
if (ab->pdevs_macaddr_valid) {
|
||||
ether_addr_copy(ar->mac_addr, pdev->mac_addr);
|
||||
} else {
|
||||
@@ -10990,9 +10990,9 @@ err_cleanup:
|
||||
@@ -11023,9 +11023,9 @@ err_cleanup:
|
||||
pdev = &ab->pdevs[i];
|
||||
ar = pdev->ar;
|
||||
__ath11k_mac_unregister(ar);
|
||||
@@ -1010,7 +1010,7 @@
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -11036,9 +11036,12 @@ int ath11k_mac_allocate(struct ath11k_ba
|
||||
@@ -11069,9 +11069,12 @@ int ath11k_mac_allocate(struct ath11k_ba
|
||||
ar->num_rx_chains = get_num_chains(pdev->cap.rx_chain_mask);
|
||||
|
||||
pdev->ar = ar;
|
||||
@@ -1062,8 +1062,8 @@
|
||||
- if (!peer) {
|
||||
- spin_unlock_bh(&ab->base_lock);
|
||||
- if(ab->nss.debug_mode)
|
||||
- ath11k_warn(ab, "ath11k_nss: unable to free peer mem, peer_id:%d\n",
|
||||
- peer_id);
|
||||
- ath11k_warn(ab, "ath11k_nss: unable to free peer mem, peer_id:%d\n",
|
||||
- peer_id);
|
||||
- return;
|
||||
- }
|
||||
+ for (i = 0; i < ab->num_radios; i++) {
|
||||
@@ -1141,20 +1141,20 @@
|
||||
-static void ath11k_nss_wds_type_rx(struct ath11k *ar, struct net_device *dev,
|
||||
+static bool vdev_check_local_dev(u8 *wds_src_mac)
|
||||
+{
|
||||
+ struct net_device *dev = NULL;
|
||||
+ struct net_device *dev = NULL;
|
||||
+
|
||||
+ rcu_read_lock();
|
||||
+ for_each_netdev_rcu(&init_net, dev) {
|
||||
+ if (!dev) {
|
||||
+ continue;
|
||||
+ }
|
||||
+ if (!memcmp(dev->dev_addr, wds_src_mac, 6)) {
|
||||
+ rcu_read_unlock();
|
||||
+ return true;
|
||||
+ }
|
||||
+ }
|
||||
+ rcu_read_unlock();
|
||||
+ return false;
|
||||
+ rcu_read_lock();
|
||||
+ for_each_netdev_rcu(&init_net, dev) {
|
||||
+ if (!dev) {
|
||||
+ continue;
|
||||
+ }
|
||||
+ if (!memcmp(dev->dev_addr, wds_src_mac, 6)) {
|
||||
+ rcu_read_unlock();
|
||||
+ return true;
|
||||
+ }
|
||||
+ }
|
||||
+ rcu_read_unlock();
|
||||
+ return false;
|
||||
+}
|
||||
+
|
||||
+static void ath11k_nss_wds_type_rx(struct ath11k_vif *arvif, struct net_device *dev,
|
||||
@@ -1399,7 +1399,7 @@
|
||||
|
||||
-static inline int ath11k_nss_peer_delete(struct ath11k_base *ab, u32 vdev_id,
|
||||
+static inline int ath11k_nss_peer_delete(struct ath11k *ar, u32 vdev_id,
|
||||
const u8 *addr)
|
||||
const u8 *addr)
|
||||
{
|
||||
return 0;
|
||||
--- a/drivers/net/wireless/ath/ath11k/peer.c
|
||||
@@ -1593,7 +1593,7 @@
|
||||
if (ast_entry) {
|
||||
ast_entry->ast_idx = hw_peer_id;
|
||||
@@ -418,6 +386,7 @@ void ath11k_peer_ast_cleanup(struct ath1
|
||||
bool is_wds, u32 free_wds_count)
|
||||
bool is_wds, u32 free_wds_count)
|
||||
{
|
||||
struct ath11k_ast_entry *ast_entry, *tmp;
|
||||
+ struct ath11k_base *ab = ar->ab;
|
||||
@@ -2429,7 +2429,7 @@
|
||||
{
|
||||
--- a/drivers/net/wireless/ath/ath11k/wmi.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/wmi.c
|
||||
@@ -7624,10 +7624,12 @@ static void ath11k_wmi_event_peer_sta_ps
|
||||
@@ -7626,10 +7626,12 @@ static void ath11k_wmi_event_peer_sta_ps
|
||||
struct ieee80211_sta *sta;
|
||||
struct ath11k_peer *peer;
|
||||
struct ath11k *ar;
|
||||
@@ -2442,7 +2442,7 @@
|
||||
|
||||
tb = ath11k_wmi_tlv_parse_alloc(ab, skb, GFP_ATOMIC);
|
||||
if (IS_ERR(tb)) {
|
||||
@@ -7651,64 +7653,60 @@ static void ath11k_wmi_event_peer_sta_ps
|
||||
@@ -7653,64 +7655,60 @@ static void ath11k_wmi_event_peer_sta_ps
|
||||
|
||||
rcu_read_lock();
|
||||
|
||||
@@ -2549,7 +2549,7 @@
|
||||
}
|
||||
|
||||
out:
|
||||
@@ -7828,9 +7826,9 @@ static void ath11k_mgmt_rx_event(struct
|
||||
@@ -7830,9 +7828,9 @@ static void ath11k_mgmt_rx_event(struct
|
||||
|
||||
spin_lock_bh(&ab->base_lock);
|
||||
|
||||
@@ -2561,7 +2561,7 @@
|
||||
if (!peer) {
|
||||
spin_unlock_bh(&ab->base_lock);
|
||||
goto skip_mgmt_stats;
|
||||
@@ -8058,9 +8056,8 @@ static void ath11k_peer_sta_kickout_even
|
||||
@@ -8060,9 +8058,8 @@ static void ath11k_peer_sta_kickout_even
|
||||
{
|
||||
struct wmi_peer_sta_kickout_arg arg = {};
|
||||
struct ieee80211_sta *sta;
|
||||
@@ -2572,7 +2572,7 @@
|
||||
|
||||
if (ath11k_pull_peer_sta_kickout_ev(ab, skb, &arg) != 0) {
|
||||
ath11k_warn(ab, "failed to extract peer sta kickout event");
|
||||
@@ -8069,42 +8066,22 @@ static void ath11k_peer_sta_kickout_even
|
||||
@@ -8071,42 +8068,22 @@ static void ath11k_peer_sta_kickout_even
|
||||
|
||||
rcu_read_lock();
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
||||
@@ -5274,14 +5274,19 @@ skip_nss_ext:
|
||||
@@ -5295,14 +5295,19 @@ skip_nss_ext:
|
||||
* AP vif of the AP_VLAN vif
|
||||
*/
|
||||
ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id,
|
||||
@@ -23,7 +23,7 @@
|
||||
return;
|
||||
|
||||
ext_vdev_down:
|
||||
@@ -7207,6 +7212,23 @@ static int ath11k_mac_op_add_interface(s
|
||||
@@ -7239,6 +7244,23 @@ static int ath11k_mac_op_add_interface(s
|
||||
goto err_vdev_del;
|
||||
}
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -1484,7 +1500,7 @@ ieee80211_tx_info_clear_status(struct ie
|
||||
@@ -1485,7 +1501,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
|
||||
@@ -73,7 +73,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
* - DATA3_DATA_MCS
|
||||
* - DATA3_DATA_DCM
|
||||
* - DATA3_CODING
|
||||
@@ -1492,7 +1508,7 @@ ieee80211_tx_info_clear_status(struct ie
|
||||
@@ -1493,7 +1509,7 @@ ieee80211_tx_info_clear_status(struct ie
|
||||
* - DATA5_DATA_BW_RU_ALLOC
|
||||
* - DATA6_NSTS
|
||||
* - DATA3_STBC
|
||||
@@ -82,7 +82,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
* from the RX info data, so leave those zeroed when building this data)
|
||||
* @RX_FLAG_RADIOTAP_HE_MU: HE MU radiotap data is present
|
||||
* (&struct ieee80211_radiotap_he_mu)
|
||||
@@ -2127,6 +2143,16 @@ static inline bool lockdep_vif_wiphy_mut
|
||||
@@ -2128,6 +2144,16 @@ static inline bool lockdep_vif_wiphy_mut
|
||||
lockdep_vif_wiphy_mutex_held(vif))
|
||||
|
||||
/**
|
||||
@@ -99,7 +99,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
* enum ieee80211_key_flags - key flags
|
||||
*
|
||||
* These flags are used for communication about keys between the driver
|
||||
@@ -2825,6 +2851,8 @@ struct ieee80211_txq {
|
||||
@@ -2826,6 +2852,8 @@ struct ieee80211_txq {
|
||||
* implements MLO, so operation can continue on other links when one
|
||||
* link is switching.
|
||||
*
|
||||
@@ -108,7 +108,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 {
|
||||
@@ -2884,6 +2912,7 @@ enum ieee80211_hw_flags {
|
||||
@@ -2885,6 +2913,7 @@ enum ieee80211_hw_flags {
|
||||
IEEE80211_HW_DISALLOW_PUNCTURING,
|
||||
IEEE80211_HW_DISALLOW_PUNCTURING_5GHZ,
|
||||
IEEE80211_HW_HANDLES_QUIET_CSA,
|
||||
@@ -116,7 +116,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
|
||||
/* keep last, obviously */
|
||||
NUM_IEEE80211_HW_FLAGS
|
||||
@@ -3899,6 +3928,10 @@ struct ieee80211_prep_tx_info {
|
||||
@@ -3900,6 +3929,10 @@ struct ieee80211_prep_tx_info {
|
||||
* non-MLO connections.
|
||||
* The callback can sleep.
|
||||
*
|
||||
@@ -127,7 +127,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
* @prepare_multicast: Prepare for multicast filter configuration.
|
||||
* This callback is optional, and its return value is passed
|
||||
* to configure_filter(). This callback must be atomic.
|
||||
@@ -4461,7 +4494,9 @@ struct ieee80211_ops {
|
||||
@@ -4462,7 +4495,9 @@ struct ieee80211_ops {
|
||||
struct ieee80211_vif *vif,
|
||||
struct ieee80211_bss_conf *info,
|
||||
u64 changed);
|
||||
@@ -138,7 +138,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
int (*start_ap)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
|
||||
struct ieee80211_bss_conf *link_conf);
|
||||
void (*stop_ap)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
|
||||
@@ -4771,7 +4806,7 @@ struct ieee80211_ops {
|
||||
@@ -4772,7 +4807,7 @@ struct ieee80211_ops {
|
||||
int (*reset_tid_config)(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif,
|
||||
struct ieee80211_sta *sta, u8 tids);
|
||||
@@ -189,14 +189,14 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
}
|
||||
|
||||
+void ieee80211_nss_bss_info_change_notify(struct ieee80211_sub_if_data *sdata,
|
||||
+ u64 changed)
|
||||
+ u64 changed)
|
||||
+{
|
||||
+ struct ieee80211_local *local = sdata->local;
|
||||
+ struct ieee80211_local *local = sdata->local;
|
||||
+
|
||||
+ if (!changed || sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
|
||||
+ return;
|
||||
+ if (!changed || sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
|
||||
+ return;
|
||||
+
|
||||
+ drv_nss_bss_info_changed(local, sdata, &sdata->vif.bss_conf, changed);
|
||||
+ drv_nss_bss_info_changed(local, sdata, &sdata->vif.bss_conf, changed);
|
||||
+}
|
||||
+
|
||||
u64 ieee80211_reset_erp_info(struct ieee80211_sub_if_data *sdata)
|
||||
@@ -308,7 +308,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
|
||||
--- a/net/wireless/util.c
|
||||
+++ b/net/wireless/util.c
|
||||
@@ -2629,6 +2629,9 @@ bool cfg80211_does_bw_fit_range(const st
|
||||
@@ -2631,6 +2631,9 @@ bool cfg80211_does_bw_fit_range(const st
|
||||
|
||||
int cfg80211_sinfo_alloc_tid_stats(struct station_info *sinfo, gfp_t gfp)
|
||||
{
|
||||
@@ -375,7 +375,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
{
|
||||
--- a/net/mac80211/ieee80211_i.h
|
||||
+++ b/net/mac80211/ieee80211_i.h
|
||||
@@ -1859,6 +1859,8 @@ void ieee80211_vif_cfg_change_notify(str
|
||||
@@ -1860,6 +1860,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);
|
||||
@@ -427,7 +427,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
TP_PROTO(struct ieee80211_local *local,
|
||||
--- a/net/mac80211/iface.c
|
||||
+++ b/net/mac80211/iface.c
|
||||
@@ -969,7 +969,8 @@ static bool ieee80211_set_sdata_offload_
|
||||
@@ -984,7 +984,8 @@ static bool ieee80211_set_sdata_offload_
|
||||
local->hw.wiphy->frag_threshold != (u32)-1)
|
||||
flags &= ~IEEE80211_OFFLOAD_ENCAP_ENABLED;
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
|
||||
|
||||
--- a/include/net/cfg80211.h
|
||||
+++ b/include/net/cfg80211.h
|
||||
@@ -9698,4 +9698,15 @@ ssize_t wiphy_locked_debugfs_write(struc
|
||||
@@ -9701,4 +9701,15 @@ ssize_t wiphy_locked_debugfs_write(struc
|
||||
void *data);
|
||||
#endif
|
||||
|
||||
@@ -49,7 +49,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
|
||||
#endif /* __NET_CFG80211_H */
|
||||
--- a/include/net/mac80211.h
|
||||
+++ b/include/net/mac80211.h
|
||||
@@ -7557,6 +7557,20 @@ u32 ieee80211_calc_rx_airtime(struct iee
|
||||
@@ -7561,6 +7561,20 @@ u32 ieee80211_calc_rx_airtime(struct iee
|
||||
int len);
|
||||
|
||||
/**
|
||||
@@ -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
|
||||
@@ -9336,3 +9336,15 @@ void ieee80211_disable_rssi_reports(stru
|
||||
@@ -9341,3 +9341,15 @@ void ieee80211_disable_rssi_reports(stru
|
||||
_ieee80211_enable_rssi_reports(sdata, 0, 0);
|
||||
}
|
||||
EXPORT_SYMBOL(ieee80211_disable_rssi_reports);
|
||||
@@ -166,7 +166,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
|
||||
[NL80211_ATTR_BSS_DUMP_INCLUDE_USE_DATA] = { .type = NLA_FLAG },
|
||||
[NL80211_ATTR_MLO_TTLM_DLINK] = NLA_POLICY_EXACT_LEN(sizeof(u16) * 8),
|
||||
[NL80211_ATTR_MLO_TTLM_ULINK] = NLA_POLICY_EXACT_LEN(sizeof(u16) * 8),
|
||||
@@ -20367,6 +20368,42 @@ void cfg80211_schedule_channels_check(st
|
||||
@@ -20396,6 +20397,42 @@ void cfg80211_schedule_channels_check(st
|
||||
}
|
||||
EXPORT_SYMBOL(cfg80211_schedule_channels_check);
|
||||
|
||||
@@ -211,7 +211,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
|
||||
int __init nl80211_init(void)
|
||||
--- a/net/wireless/trace.h
|
||||
+++ b/net/wireless/trace.h
|
||||
@@ -3957,6 +3957,46 @@ TRACE_EVENT(cfg80211_update_owe_info_eve
|
||||
@@ -3975,6 +3975,46 @@ TRACE_EVENT(cfg80211_update_owe_info_eve
|
||||
__entry->assoc_link_id, __entry->peer_mld_addr)
|
||||
);
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
|
||||
|
||||
extern const struct cfg80211_ops mac80211_config_ops;
|
||||
|
||||
@@ -1184,6 +1187,9 @@ struct ieee80211_sub_if_data {
|
||||
@@ -1185,6 +1188,9 @@ struct ieee80211_sub_if_data {
|
||||
struct dentry *default_beacon_key;
|
||||
} debugfs;
|
||||
#endif
|
||||
@@ -65,7 +65,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
|
||||
/**
|
||||
* DOC: Interface list locking
|
||||
*
|
||||
@@ -759,6 +765,13 @@ static int ieee80211_stop(struct net_dev
|
||||
@@ -774,6 +780,13 @@ static int ieee80211_stop(struct net_dev
|
||||
ieee80211_stop_mbssid(sdata);
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
|
||||
wiphy_lock(sdata->local->hw.wiphy);
|
||||
wiphy_work_cancel(sdata->local->hw.wiphy, &sdata->activate_links_work);
|
||||
|
||||
@@ -1204,6 +1217,34 @@ void ieee80211_del_virtual_monitor(struc
|
||||
@@ -1219,6 +1232,34 @@ void ieee80211_del_virtual_monitor(struc
|
||||
kfree(sdata);
|
||||
}
|
||||
|
||||
@@ -114,7 +114,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
|
||||
/*
|
||||
* NOTE: Be very careful when changing this function, it must NOT return
|
||||
* an error on interface type changes that have been pre-checked, so most
|
||||
@@ -1431,6 +1472,21 @@ int ieee80211_do_open(struct wireless_de
|
||||
@@ -1446,6 +1487,21 @@ int ieee80211_do_open(struct wireless_de
|
||||
|
||||
ieee80211_recalc_ps(local);
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
|
||||
--- a/include/net/mac80211.h
|
||||
+++ b/include/net/mac80211.h
|
||||
@@ -5270,6 +5270,17 @@ void ieee80211_sta_pspoll(struct ieee802
|
||||
@@ -5271,6 +5271,17 @@ void ieee80211_sta_pspoll(struct ieee802
|
||||
*/
|
||||
void ieee80211_sta_uapsd_trigger(struct ieee80211_sta *sta, u8 tid);
|
||||
|
||||
@@ -73,7 +73,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
trace_drv_add_interface(local, sdata);
|
||||
--- a/net/mac80211/iface.c
|
||||
+++ b/net/mac80211/iface.c
|
||||
@@ -682,6 +682,9 @@ static void ieee80211_do_stop(struct iee
|
||||
@@ -697,6 +697,9 @@ static void ieee80211_do_stop(struct iee
|
||||
|
||||
switch (sdata->vif.type) {
|
||||
case NL80211_IFTYPE_AP_VLAN:
|
||||
@@ -83,7 +83,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
break;
|
||||
case NL80211_IFTYPE_MONITOR:
|
||||
if (local->monitors == 0)
|
||||
@@ -960,6 +963,7 @@ static bool ieee80211_iftype_supports_hd
|
||||
@@ -975,6 +978,7 @@ static bool ieee80211_iftype_supports_hd
|
||||
switch (iftype) {
|
||||
/* P2P GO and client are mapped to AP/STATION types */
|
||||
case NL80211_IFTYPE_AP:
|
||||
@@ -91,7 +91,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
case NL80211_IFTYPE_STATION:
|
||||
return true;
|
||||
default:
|
||||
@@ -1014,7 +1018,8 @@ static void ieee80211_set_vif_encap_ops(
|
||||
@@ -1029,7 +1033,8 @@ static void ieee80211_set_vif_encap_ops(
|
||||
struct ieee80211_sub_if_data *bss = sdata;
|
||||
bool enabled;
|
||||
|
||||
@@ -101,7 +101,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
if (!sdata->bss)
|
||||
return;
|
||||
|
||||
@@ -1340,10 +1345,17 @@ int ieee80211_do_open(struct wireless_de
|
||||
@@ -1355,10 +1360,17 @@ int ieee80211_do_open(struct wireless_de
|
||||
|
||||
switch (sdata->vif.type) {
|
||||
case NL80211_IFTYPE_AP_VLAN:
|
||||
@@ -195,7 +195,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
drv_remove_interface(local, sdata);
|
||||
--- a/net/mac80211/mlme.c
|
||||
+++ b/net/mac80211/mlme.c
|
||||
@@ -5696,7 +5696,8 @@ static bool ieee80211_assoc_success(stru
|
||||
@@ -5700,7 +5700,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
|
||||
*/
|
||||
|
||||
@@ -24,7 +24,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
|
||||
--- a/include/net/mac80211.h
|
||||
+++ b/include/net/mac80211.h
|
||||
@@ -2227,6 +2227,8 @@ enum ieee80211_key_flags {
|
||||
@@ -2228,6 +2228,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)
|
||||
@@ -2246,6 +2248,7 @@ struct ieee80211_key_conf {
|
||||
@@ -2247,6 +2249,7 @@ struct ieee80211_key_conf {
|
||||
u8 hw_key_idx;
|
||||
s8 keyidx;
|
||||
u16 flags;
|
||||
|
||||
@@ -78,7 +78,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
bool eht_mu_beamformer;
|
||||
bool eht_80mhz_full_bw_ul_mumimo;
|
||||
bool nss_ap_isolate;
|
||||
@@ -1341,6 +1355,8 @@ struct ieee80211_rate_status {
|
||||
@@ -1342,6 +1356,8 @@ struct ieee80211_rate_status {
|
||||
* @ack_hwtstamp: Hardware timestamp of the received ack in nanoseconds
|
||||
* Only needed for Timing measurement and Fine timing measurement action
|
||||
* frames. Only reported by devices that have timestamping enabled.
|
||||
@@ -87,7 +87,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
*/
|
||||
struct ieee80211_tx_status {
|
||||
struct ieee80211_sta *sta;
|
||||
@@ -1351,6 +1367,8 @@ struct ieee80211_tx_status {
|
||||
@@ -1352,6 +1368,8 @@ struct ieee80211_tx_status {
|
||||
u8 n_rates;
|
||||
|
||||
struct list_head *free_list;
|
||||
@@ -96,7 +96,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -1859,6 +1877,7 @@ struct ieee80211_channel_switch {
|
||||
@@ -1860,6 +1878,7 @@ struct ieee80211_channel_switch {
|
||||
* operation on this interface and request a channel context without
|
||||
* the AP definition. Use this e.g. because the device is able to
|
||||
* handle OFDMA (downlink and trigger for uplink) on a per-AP basis.
|
||||
@@ -104,7 +104,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
*/
|
||||
enum ieee80211_vif_flags {
|
||||
IEEE80211_VIF_BEACON_FILTER = BIT(0),
|
||||
@@ -1867,6 +1886,7 @@ enum ieee80211_vif_flags {
|
||||
@@ -1868,6 +1887,7 @@ enum ieee80211_vif_flags {
|
||||
IEEE80211_VIF_GET_NOA_UPDATE = BIT(3),
|
||||
IEEE80211_VIF_EML_ACTIVE = BIT(4),
|
||||
IEEE80211_VIF_IGNORE_OFDMA_WIDER_BW = BIT(5),
|
||||
@@ -112,7 +112,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
};
|
||||
|
||||
|
||||
@@ -2916,6 +2936,7 @@ enum ieee80211_hw_flags {
|
||||
@@ -2917,6 +2937,7 @@ enum ieee80211_hw_flags {
|
||||
IEEE80211_HW_DISALLOW_PUNCTURING_5GHZ,
|
||||
IEEE80211_HW_HANDLES_QUIET_CSA,
|
||||
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
|
||||
@@ -4424,6 +4445,8 @@ struct ieee80211_prep_tx_info {
|
||||
@@ -4425,6 +4446,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.
|
||||
@@ -4818,6 +4841,12 @@ struct ieee80211_ops {
|
||||
@@ -4819,6 +4842,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);
|
||||
@@ -7722,4 +7751,100 @@ int ieee80211_emulate_switch_vif_chanctx
|
||||
@@ -7726,4 +7755,100 @@ int ieee80211_emulate_switch_vif_chanctx
|
||||
int n_vifs,
|
||||
enum ieee80211_chanctx_switch_mode mode);
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
|
||||
--- a/include/net/mac80211.h
|
||||
+++ b/include/net/mac80211.h
|
||||
@@ -2876,6 +2876,8 @@ struct ieee80211_txq {
|
||||
@@ -2877,6 +2877,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 {
|
||||
@@ -2937,6 +2939,7 @@ enum ieee80211_hw_flags {
|
||||
@@ -2938,6 +2940,7 @@ enum ieee80211_hw_flags {
|
||||
IEEE80211_HW_HANDLES_QUIET_CSA,
|
||||
IEEE80211_HW_SUPPORTS_NSS_OFFLOAD,
|
||||
IEEE80211_HW_SUPPORTS_MESH_NSS_OFFLOAD,
|
||||
|
||||
@@ -21,7 +21,7 @@ Signed-off-by: Nagarajan Maran <quic_nmaran@quicinc.com>
|
||||
|
||||
--- a/net/mac80211/iface.c
|
||||
+++ b/net/mac80211/iface.c
|
||||
@@ -998,7 +998,8 @@ static bool ieee80211_set_sdata_offload_
|
||||
@@ -1013,7 +1013,8 @@ static bool ieee80211_set_sdata_offload_
|
||||
flags |= IEEE80211_OFFLOAD_DECAP_ENABLED;
|
||||
|
||||
if (local->monitors &&
|
||||
|
||||
@@ -14,7 +14,7 @@ Signed-off-by: P Praneesh <quic_ppranees@quicinc.com>
|
||||
|
||||
--- a/include/net/mac80211.h
|
||||
+++ b/include/net/mac80211.h
|
||||
@@ -1481,8 +1481,6 @@ ieee80211_tx_info_clear_status(struct ie
|
||||
@@ -1482,8 +1482,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
|
||||
@@ -1539,39 +1537,38 @@ ieee80211_tx_info_clear_status(struct ie
|
||||
@@ -1540,39 +1538,38 @@ ieee80211_tx_info_clear_status(struct ie
|
||||
* hardware or driver)
|
||||
*/
|
||||
enum mac80211_rx_flags {
|
||||
|
||||
@@ -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
|
||||
@@ -2080,6 +2080,11 @@ netdev_tx_t ieee80211_subif_start_xmit(s
|
||||
@@ -2081,6 +2081,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);
|
||||
|
||||
@@ -78,7 +78,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
|
||||
|
||||
--- a/net/mac80211/iface.c
|
||||
+++ b/net/mac80211/iface.c
|
||||
@@ -2246,6 +2246,10 @@ int ieee80211_if_add(struct ieee80211_lo
|
||||
@@ -2259,6 +2259,10 @@ int ieee80211_if_add(struct ieee80211_lo
|
||||
|
||||
ndev->features |= local->hw.netdev_features;
|
||||
ndev->priv_flags |= IFF_LIVE_ADDR_CHANGE;
|
||||
|
||||
@@ -23,7 +23,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
|
||||
|
||||
--- a/include/net/mac80211.h
|
||||
+++ b/include/net/mac80211.h
|
||||
@@ -2875,6 +2875,9 @@ struct ieee80211_txq {
|
||||
@@ -2876,6 +2876,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 {
|
||||
@@ -2937,6 +2940,7 @@ enum ieee80211_hw_flags {
|
||||
@@ -2938,6 +2941,7 @@ enum ieee80211_hw_flags {
|
||||
IEEE80211_HW_SUPPORTS_NSS_OFFLOAD,
|
||||
IEEE80211_HW_SUPPORTS_MESH_NSS_OFFLOAD,
|
||||
IEEE80211_HW_SUPPORTS_TID_CLASS_OFFLOAD,
|
||||
@@ -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
|
||||
@@ -4576,6 +4576,9 @@ static int ieee80211_get_txq_stats(struc
|
||||
@@ -4584,6 +4584,9 @@ static int ieee80211_get_txq_stats(struc
|
||||
struct ieee80211_sub_if_data *sdata;
|
||||
int ret = 0;
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ Signed-off-by: Balamurugan Ramar <quic_bramar@quicinc.com>
|
||||
|
||||
--- a/net/mac80211/mlme.c
|
||||
+++ b/net/mac80211/mlme.c
|
||||
@@ -7752,7 +7752,7 @@ void ieee80211_sta_work(struct ieee80211
|
||||
@@ -7757,7 +7757,7 @@ void ieee80211_sta_work(struct ieee80211
|
||||
*/
|
||||
if (status_acked) {
|
||||
ifmgd->assoc_data->timeout =
|
||||
|
||||
@@ -17,7 +17,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
|
||||
|
||||
--- a/include/net/cfg80211.h
|
||||
+++ b/include/net/cfg80211.h
|
||||
@@ -8803,6 +8803,7 @@ bool cfg80211_rx_spurious_frame(struct n
|
||||
@@ -8806,6 +8806,7 @@ bool cfg80211_rx_spurious_frame(struct n
|
||||
* @dev: The device the frame matched to
|
||||
* @addr: the transmitter address
|
||||
* @gfp: context flags
|
||||
@@ -25,7 +25,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
|
||||
*
|
||||
* This function is used in AP mode (only!) to inform userspace that
|
||||
* an associated station sent a 4addr frame but that wasn't expected.
|
||||
@@ -8812,7 +8813,8 @@ bool cfg80211_rx_spurious_frame(struct n
|
||||
@@ -8815,7 +8816,8 @@ bool cfg80211_rx_spurious_frame(struct n
|
||||
* for a reason other than not having a subscription.)
|
||||
*/
|
||||
bool cfg80211_rx_unexpected_4addr_frame(struct net_device *dev,
|
||||
@@ -127,7 +127,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
|
||||
|
||||
--- a/net/wireless/nl80211.c
|
||||
+++ b/net/wireless/nl80211.c
|
||||
@@ -18916,7 +18916,8 @@ void cfg80211_conn_failed(struct net_dev
|
||||
@@ -18945,7 +18945,8 @@ void cfg80211_conn_failed(struct net_dev
|
||||
EXPORT_SYMBOL(cfg80211_conn_failed);
|
||||
|
||||
static bool __nl80211_unexpected_frame(struct net_device *dev, u8 cmd,
|
||||
@@ -137,7 +137,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
|
||||
{
|
||||
struct wireless_dev *wdev = dev->ieee80211_ptr;
|
||||
struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy);
|
||||
@@ -18942,6 +18943,9 @@ static bool __nl80211_unexpected_frame(s
|
||||
@@ -18971,6 +18972,9 @@ static bool __nl80211_unexpected_frame(s
|
||||
nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, addr))
|
||||
goto nla_put_failure;
|
||||
|
||||
@@ -147,7 +147,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
|
||||
genlmsg_end(msg, hdr);
|
||||
genlmsg_unicast(wiphy_net(&rdev->wiphy), msg, nlportid);
|
||||
return true;
|
||||
@@ -18965,14 +18969,15 @@ bool cfg80211_rx_spurious_frame(struct n
|
||||
@@ -18994,14 +18998,15 @@ bool cfg80211_rx_spurious_frame(struct n
|
||||
return false;
|
||||
}
|
||||
ret = __nl80211_unexpected_frame(dev, NL80211_CMD_UNEXPECTED_FRAME,
|
||||
@@ -165,7 +165,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
|
||||
{
|
||||
struct wireless_dev *wdev = dev->ieee80211_ptr;
|
||||
bool ret;
|
||||
@@ -18987,7 +18992,7 @@ bool cfg80211_rx_unexpected_4addr_frame(
|
||||
@@ -19016,7 +19021,7 @@ bool cfg80211_rx_unexpected_4addr_frame(
|
||||
}
|
||||
ret = __nl80211_unexpected_frame(dev,
|
||||
NL80211_CMD_UNEXPECTED_4ADDR_FRAME,
|
||||
@@ -176,7 +176,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
|
||||
}
|
||||
--- a/net/mac80211/chan.c
|
||||
+++ b/net/mac80211/chan.c
|
||||
@@ -1035,6 +1035,8 @@ __ieee80211_link_copy_chanctx_to_vlans(s
|
||||
@@ -1036,6 +1036,8 @@ __ieee80211_link_copy_chanctx_to_vlans(s
|
||||
list_for_each_entry(vlan, &sdata->u.ap.vlans, u.vlan.list) {
|
||||
struct ieee80211_bss_conf *vlan_conf;
|
||||
|
||||
@@ -185,7 +185,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
|
||||
vlan_conf = wiphy_dereference(local->hw.wiphy,
|
||||
vlan->vif.link_conf[link_id]);
|
||||
if (WARN_ON(!vlan_conf))
|
||||
@@ -1276,6 +1278,8 @@ ieee80211_link_update_chanreq(struct iee
|
||||
@@ -1277,6 +1279,8 @@ ieee80211_link_update_chanreq(struct iee
|
||||
list_for_each_entry(vlan, &sdata->u.ap.vlans, u.vlan.list) {
|
||||
struct ieee80211_bss_conf *vlan_conf;
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ Signed-off-by: Monika Korada <quic_koramoni@quicinc.com>
|
||||
|
||||
--- a/net/mac80211/iface.c
|
||||
+++ b/net/mac80211/iface.c
|
||||
@@ -1348,7 +1348,8 @@ int ieee80211_do_open(struct wireless_de
|
||||
@@ -1363,7 +1363,8 @@ int ieee80211_do_open(struct wireless_de
|
||||
case NL80211_IFTYPE_AP_VLAN:
|
||||
if (sdata->bss->active) {
|
||||
ieee80211_link_vlan_copy_chanctx(&sdata->deflink);
|
||||
@@ -30,7 +30,7 @@ Signed-off-by: Monika Korada <quic_koramoni@quicinc.com>
|
||||
|
||||
if (ieee80211_hw_check(&local->hw, SUPPORTS_NSS_OFFLOAD)) {
|
||||
ieee80211_set_sdata_offload_flags(sdata);
|
||||
@@ -1359,7 +1360,8 @@ int ieee80211_do_open(struct wireless_de
|
||||
@@ -1374,7 +1375,8 @@ int ieee80211_do_open(struct wireless_de
|
||||
|
||||
ieee80211_set_vif_encap_ops(sdata);
|
||||
} else {
|
||||
@@ -40,7 +40,7 @@ Signed-off-by: Monika Korada <quic_koramoni@quicinc.com>
|
||||
}
|
||||
break;
|
||||
case NL80211_IFTYPE_MONITOR:
|
||||
@@ -1390,7 +1392,8 @@ int ieee80211_do_open(struct wireless_de
|
||||
@@ -1405,7 +1407,8 @@ int ieee80211_do_open(struct wireless_de
|
||||
ieee80211_recalc_offload(local);
|
||||
ieee80211_recalc_idle(local);
|
||||
|
||||
@@ -50,7 +50,7 @@ Signed-off-by: Monika Korada <quic_koramoni@quicinc.com>
|
||||
break;
|
||||
default:
|
||||
if (coming_up) {
|
||||
@@ -1434,7 +1437,8 @@ int ieee80211_do_open(struct wireless_de
|
||||
@@ -1449,7 +1452,8 @@ int ieee80211_do_open(struct wireless_de
|
||||
case NL80211_IFTYPE_AP:
|
||||
case NL80211_IFTYPE_MESH_POINT:
|
||||
case NL80211_IFTYPE_OCB:
|
||||
|
||||
Reference in New Issue
Block a user