From f78a7d6e3582963cc313a78a03f91a3e2b64abaf Mon Sep 17 00:00:00 2001 From: Sean Khan Date: Mon, 30 Sep 2024 23:33:21 -0400 Subject: [PATCH] ath11k_nss: Refresh patches for backports 6.11.2 Signed-off-by: Sean Khan --- .../068-ath11k-add-rx-histogram-stats.patch | 6 +- ...69-ath11k-add-HE-stats-in-peer-stats.patch | 6 +- ...-adding-support-for-mgmt-frame-stats.patch | 6 +- ...91-ath11k-add-mgmt-and-data-ack-rssi.patch | 2 +- ...-ath11k_nss-add-nss-driver-interface.patch | 14 +-- .../199-003-ath11k-add-nss-support.patch | 24 ++--- ...03-mac80211-ath11k-fw-dynamic-muedca.patch | 4 +- ...-ath11k-Add-support-for-dynamic-vlan.patch | 2 +- ...207-ath11k-Enable-256_512MB-profiles.patch | 4 +- ...load-changes-to-NSS-driver-interface.patch | 2 +- ...-support-on-NSS-offload-for-STA-mode.patch | 10 +- ...14-ath11k-qos-null-frame-tx-over-wmi.patch | 8 +- ...vdev-in-NSS-for-AP_VLAN-vif-handling.patch | 8 +- ...-dynamic-VLAN-support-in-NSS-offload.patch | 24 ++--- ...ow-fast-rx-by-bypassing-stats-update.patch | 6 +- .../nss/ath11k/244-ath11k-dp-tx-perf.patch | 4 +- .../300-ath11k-nss-mesh-offload-support.patch | 8 +- ...lookup-failure-in-mgmt-tx-completion.patch | 2 +- ...30-ath11k-sync-wds_ast_entry-updates.patch | 4 +- ...TCL_DATA_CMD_INFO2_TID_OVERWRITE-con.patch | 2 +- ...-fix-clear-peer-keys-during-disassoc.patch | 2 +- ...Add-retry-mechanism-for-update_rx_qu.patch | 2 +- ...agement-frames-to-firmware-before-wa.patch | 2 +- ...th11k-Advertise-TX_QUEUE-mac-hw-flag.patch | 2 +- ...k-make-debugfs-sta-htt-stats-modular.patch | 2 +- ...11k-Disable-rx_header-tlv-for-2K-SKB.patch | 7 +- .../999-336-0002-ath11k-Use-idr_replace.patch | 4 +- ...99-802-ath11k-fixup-thermal-throttle.patch | 14 +-- .../999-900-bss-transition-handling.patch | 92 +++++++++---------- ...902-ath11k-fix-WDS-by-disabling-nwds.patch | 4 +- .../199-001-mac80211-add-nss-support.patch | 32 +++---- ...03-mac80211-ath11k-fw-dynamic-muedca.patch | 10 +- ...07-mac80211-add-nss-redirect-support.patch | 8 +- ...N-iftype-support-on-NSS-offload-case.patch | 12 +-- ...-dynamic-VLAN-support-on-NSS-offload.patch | 4 +- .../300-ath11k-nss-mesh-offload-support.patch | 16 ++-- ...TCL_DATA_CMD_INFO2_TID_OVERWRITE-con.patch | 4 +- ...rning-with-monitor-interface-restart.patch | 2 +- ...unused-RX_FLAGS-from-mac80211_rx_fla.patch | 4 +- ...ncapsulation-of-EAPOL-frames-if-OFFL.patch | 2 +- ...se-HW-checksum-offload-only-for-ethm.patch | 2 +- ...1-Add-mac-hw-flag-to-avoid-queue-skb.patch | 6 +- ...R-for-association-failure-issue-with.patch | 2 +- ...75-wifi-mac80211-Changes-for-WDS-MLD.patch | 16 ++-- ...x-NULL-pointer-access-Klocwork-issue.patch | 8 +- 45 files changed, 202 insertions(+), 203 deletions(-) diff --git a/package/kernel/mac80211/patches/nss/ath11k/068-ath11k-add-rx-histogram-stats.patch b/package/kernel/mac80211/patches/nss/ath11k/068-ath11k-add-rx-histogram-stats.patch index 068511ab0e..3b21ce04e7 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/068-ath11k-add-rx-histogram-stats.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/068-ath11k-add-rx-histogram-stats.patch @@ -29,7 +29,7 @@ Signed-off-by: Manikanta Pubbisetty /* 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 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 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]; diff --git a/package/kernel/mac80211/patches/nss/ath11k/069-ath11k-add-HE-stats-in-peer-stats.patch b/package/kernel/mac80211/patches/nss/ath11k/069-ath11k-add-HE-stats-in-peer-stats.patch index e121c48a18..d177349951 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/069-ath11k-add-HE-stats-in-peer-stats.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/069-ath11k-add-HE-stats-in-peer-stats.patch @@ -23,7 +23,7 @@ Signed-off-by: Miles Hu #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 }; 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 }; 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; diff --git a/package/kernel/mac80211/patches/nss/ath11k/142-ath11k-adding-support-for-mgmt-frame-stats.patch b/package/kernel/mac80211/patches/nss/ath11k/142-ath11k-adding-support-for-mgmt-frame-stats.patch index 78556e5f15..7d33113a09 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/142-ath11k-adding-support-for-mgmt-frame-stats.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/142-ath11k-adding-support-for-mgmt-frame-stats.patch @@ -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); diff --git a/package/kernel/mac80211/patches/nss/ath11k/191-ath11k-add-mgmt-and-data-ack-rssi.patch b/package/kernel/mac80211/patches/nss/ath11k/191-ath11k-add-mgmt-and-data-ack-rssi.patch index 2261d86b2f..0d1de3b2f4 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/191-ath11k-add-mgmt-and-data-ack-rssi.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/191-ath11k-add-mgmt-and-data-ack-rssi.patch @@ -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); diff --git a/package/kernel/mac80211/patches/nss/ath11k/199-002-ath11k_nss-add-nss-driver-interface.patch b/package/kernel/mac80211/patches/nss/ath11k/199-002-ath11k_nss-add-nss-driver-interface.patch index 35f5af2e4e..4bb181536a 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/199-002-ath11k_nss-add-nss-driver-interface.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/199-002-ath11k_nss-add-nss-driver-interface.patch @@ -260,8 +260,8 @@ Signed-off-by: Sriram R + 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 + 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 /* 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 }; 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]; diff --git a/package/kernel/mac80211/patches/nss/ath11k/199-003-ath11k-add-nss-support.patch b/package/kernel/mac80211/patches/nss/ath11k/199-003-ath11k-add-nss-support.patch index 040db3c68f..63148a4a92 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/199-003-ath11k-add-nss-support.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/199-003-ath11k-add-nss-support.patch @@ -164,7 +164,7 @@ Signed-off-by: Sriram R #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 }; 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 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 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 } +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 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 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 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 } /* 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 } #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 .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 } 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; diff --git a/package/kernel/mac80211/patches/nss/ath11k/203-mac80211-ath11k-fw-dynamic-muedca.patch b/package/kernel/mac80211/patches/nss/ath11k/203-mac80211-ath11k-fw-dynamic-muedca.patch index 0bdc221f6b..7c3b2cc605 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/203-mac80211-ath11k-fw-dynamic-muedca.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/203-mac80211-ath11k-fw-dynamic-muedca.patch @@ -40,7 +40,7 @@ Signed-off-by: Muna Sinada [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 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; diff --git a/package/kernel/mac80211/patches/nss/ath11k/207-ath11k-Add-support-for-dynamic-vlan.patch b/package/kernel/mac80211/patches/nss/ath11k/207-ath11k-Add-support-for-dynamic-vlan.patch index f82f457760..1b9cae352a 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/207-ath11k-Add-support-for-dynamic-vlan.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/207-ath11k-Add-support-for-dynamic-vlan.patch @@ -369,7 +369,7 @@ Signed-off-by: Seevalamuthu Mariappan 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); diff --git a/package/kernel/mac80211/patches/nss/ath11k/207-ath11k-Enable-256_512MB-profiles.patch b/package/kernel/mac80211/patches/nss/ath11k/207-ath11k-Enable-256_512MB-profiles.patch index 5c7a9423bd..37ef93a557 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/207-ath11k-Enable-256_512MB-profiles.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/207-ath11k-Enable-256_512MB-profiles.patch @@ -152,7 +152,7 @@ Signed-off-by: Ramya Gnanasekar #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 /* 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; diff --git a/package/kernel/mac80211/patches/nss/ath11k/211-001-ath11k-add-WDS-offload-changes-to-NSS-driver-interface.patch b/package/kernel/mac80211/patches/nss/ath11k/211-001-ath11k-add-WDS-offload-changes-to-NSS-driver-interface.patch index 687bbd1f6a..4d06a032a7 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/211-001-ath11k-add-WDS-offload-changes-to-NSS-driver-interface.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/211-001-ath11k-add-WDS-offload-changes-to-NSS-driver-interface.patch @@ -652,7 +652,7 @@ Signed-off-by: Sathishkumar Muruganandam -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; } diff --git a/package/kernel/mac80211/patches/nss/ath11k/211-002-ath11k-add-WDS-offload-support-on-NSS-offload-for-STA-mode.patch b/package/kernel/mac80211/patches/nss/ath11k/211-002-ath11k-add-WDS-offload-support-on-NSS-offload-for-STA-mode.patch index 99250b6931..70d217b8c7 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/211-002-ath11k-add-WDS-offload-support-on-NSS-offload-for-STA-mode.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/211-002-ath11k-add-WDS-offload-support-on-NSS-offload-for-STA-mode.patch @@ -26,7 +26,7 @@ Signed-off-by: Sathishkumar Muruganandam --- 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 #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 +} + +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 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 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; diff --git a/package/kernel/mac80211/patches/nss/ath11k/214-ath11k-qos-null-frame-tx-over-wmi.patch b/package/kernel/mac80211/patches/nss/ath11k/214-ath11k-qos-null-frame-tx-over-wmi.patch index d176a926c2..80bbf23a58 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/214-ath11k-qos-null-frame-tx-over-wmi.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/214-ath11k-qos-null-frame-tx-over-wmi.patch @@ -215,7 +215,7 @@ Signed-off-by: Sowmiya Sree Elavalagan 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 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 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 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; diff --git a/package/kernel/mac80211/patches/nss/ath11k/235-002-ath11k-add-support-for-ext-vdev-in-NSS-for-AP_VLAN-vif-handling.patch b/package/kernel/mac80211/patches/nss/ath11k/235-002-ath11k-add-support-for-ext-vdev-in-NSS-for-AP_VLAN-vif-handling.patch index 07f341cd04..8eed908cfc 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/235-002-ath11k-add-support-for-ext-vdev-in-NSS-for-AP_VLAN-vif-handling.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/235-002-ath11k-add-support-for-ext-vdev-in-NSS-for-AP_VLAN-vif-handling.patch @@ -215,8 +215,8 @@ Signed-off-by: Sathishkumar Muruganandam 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 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); diff --git a/package/kernel/mac80211/patches/nss/ath11k/236-003-ath11k-add-dynamic-VLAN-support-in-NSS-offload.patch b/package/kernel/mac80211/patches/nss/ath11k/236-003-ath11k-add-dynamic-VLAN-support-in-NSS-offload.patch index 50f78eca0d..360ff22127 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/236-003-ath11k-add-dynamic-VLAN-support-in-NSS-offload.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/236-003-ath11k-add-dynamic-VLAN-support-in-NSS-offload.patch @@ -69,7 +69,7 @@ Signed-off-by: Sathishkumar Muruganandam 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 + } 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 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 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 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 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 } 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 } } -@@ -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 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 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 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 } 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; diff --git a/package/kernel/mac80211/patches/nss/ath11k/237-006-ath11k-Allow-fast-rx-by-bypassing-stats-update.patch b/package/kernel/mac80211/patches/nss/ath11k/237-006-ath11k-Allow-fast-rx-by-bypassing-stats-update.patch index 80f4f3d5cb..b73f78772b 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/237-006-ath11k-Allow-fast-rx-by-bypassing-stats-update.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/237-006-ath11k-Allow-fast-rx-by-bypassing-stats-update.patch @@ -29,7 +29,7 @@ Signed-off-by: P Praneesh }; 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 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 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) { diff --git a/package/kernel/mac80211/patches/nss/ath11k/244-ath11k-dp-tx-perf.patch b/package/kernel/mac80211/patches/nss/ath11k/244-ath11k-dp-tx-perf.patch index dc8d17f95b..11c07f2f5d 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/244-ath11k-dp-tx-perf.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/244-ath11k-dp-tx-perf.patch @@ -34,7 +34,7 @@ Signed-off-by: P Praneesh }; 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 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); diff --git a/package/kernel/mac80211/patches/nss/ath11k/300-ath11k-nss-mesh-offload-support.patch b/package/kernel/mac80211/patches/nss/ath11k/300-ath11k-nss-mesh-offload-support.patch index c1e3d63e59..32ad0a5b54 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/300-ath11k-nss-mesh-offload-support.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/300-ath11k-nss-mesh-offload-support.patch @@ -1257,7 +1257,7 @@ Signed-off-by: Vasanthakumar Thiagarajan 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 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 }; 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 + 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); diff --git a/package/kernel/mac80211/patches/nss/ath11k/314-ath11k-Fix-peer-lookup-failure-in-mgmt-tx-completion.patch b/package/kernel/mac80211/patches/nss/ath11k/314-ath11k-Fix-peer-lookup-failure-in-mgmt-tx-completion.patch index 7a97e10ddc..5a3497c1ee 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/314-ath11k-Fix-peer-lookup-failure-in-mgmt-tx-completion.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/314-ath11k-Fix-peer-lookup-failure-in-mgmt-tx-completion.patch @@ -23,7 +23,7 @@ Signed-off-by: Rameshkumar Sundaram --- 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); diff --git a/package/kernel/mac80211/patches/nss/ath11k/330-ath11k-sync-wds_ast_entry-updates.patch b/package/kernel/mac80211/patches/nss/ath11k/330-ath11k-sync-wds_ast_entry-updates.patch index 4434bd0add..504d3b959b 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/330-ath11k-sync-wds_ast_entry-updates.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/330-ath11k-sync-wds_ast_entry-updates.patch @@ -83,7 +83,7 @@ Signed-off-by: Rameshkumar Sundaram #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 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; diff --git a/package/kernel/mac80211/patches/nss/ath11k/335-0003-ath11k-skip-HAL_TCL_DATA_CMD_INFO2_TID_OVERWRITE-con.patch b/package/kernel/mac80211/patches/nss/ath11k/335-0003-ath11k-skip-HAL_TCL_DATA_CMD_INFO2_TID_OVERWRITE-con.patch index 0bf4fccf82..ddce2ead1b 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/335-0003-ath11k-skip-HAL_TCL_DATA_CMD_INFO2_TID_OVERWRITE-con.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/335-0003-ath11k-skip-HAL_TCL_DATA_CMD_INFO2_TID_OVERWRITE-con.patch @@ -58,7 +58,7 @@ Signed-off-by: Venkateswara Naralasetty 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); } diff --git a/package/kernel/mac80211/patches/nss/ath11k/357-ath11k-fix-clear-peer-keys-during-disassoc.patch b/package/kernel/mac80211/patches/nss/ath11k/357-ath11k-fix-clear-peer-keys-during-disassoc.patch index ce615da68a..7bf1eadb94 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/357-ath11k-fix-clear-peer-keys-during-disassoc.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/357-ath11k-fix-clear-peer-keys-during-disassoc.patch @@ -30,7 +30,7 @@ Signed-off-by: Karthikeyan Kathirvel 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); diff --git a/package/kernel/mac80211/patches/nss/ath11k/373-ath11k-Add-retry-mechanism-for-update_rx_qu.patch b/package/kernel/mac80211/patches/nss/ath11k/373-ath11k-Add-retry-mechanism-for-update_rx_qu.patch index 487ec5513f..dcc20f8809 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/373-ath11k-Add-retry-mechanism-for-update_rx_qu.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/373-ath11k-Add-retry-mechanism-for-update_rx_qu.patch @@ -41,7 +41,7 @@ Signed-off-by: Tamizh Chelvam Raja --- 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]; diff --git a/package/kernel/mac80211/patches/nss/ath11k/453-ath11k-flush-management-frames-to-firmware-before-wa.patch b/package/kernel/mac80211/patches/nss/ath11k/453-ath11k-flush-management-frames-to-firmware-before-wa.patch index 4501664c81..9321d845c6 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/453-ath11k-flush-management-frames-to-firmware-before-wa.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/453-ath11k-flush-management-frames-to-firmware-before-wa.patch @@ -27,7 +27,7 @@ Signed-off-by: Hari Chandrakanthan --- 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; } diff --git a/package/kernel/mac80211/patches/nss/ath11k/456-wifi-ath11k-Advertise-TX_QUEUE-mac-hw-flag.patch b/package/kernel/mac80211/patches/nss/ath11k/456-wifi-ath11k-Advertise-TX_QUEUE-mac-hw-flag.patch index 27e1e9506e..124f62f924 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/456-wifi-ath11k-Advertise-TX_QUEUE-mac-hw-flag.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/456-wifi-ath11k-Advertise-TX_QUEUE-mac-hw-flag.patch @@ -13,7 +13,7 @@ Signed-off-by: Yuvasree Sivasankaran --- 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); diff --git a/package/kernel/mac80211/patches/nss/ath11k/908-ath11k-make-debugfs-sta-htt-stats-modular.patch b/package/kernel/mac80211/patches/nss/ath11k/908-ath11k-make-debugfs-sta-htt-stats-modular.patch index 21cd546db8..a7968c4e10 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/908-ath11k-make-debugfs-sta-htt-stats-modular.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/908-ath11k-make-debugfs-sta-htt-stats-modular.patch @@ -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 diff --git a/package/kernel/mac80211/patches/nss/ath11k/999-233-ath11k-Disable-rx_header-tlv-for-2K-SKB.patch b/package/kernel/mac80211/patches/nss/ath11k/999-233-ath11k-Disable-rx_header-tlv-for-2K-SKB.patch index ed4dc540b1..3de8497a32 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/999-233-ath11k-Disable-rx_header-tlv-for-2K-SKB.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/999-233-ath11k-Disable-rx_header-tlv-for-2K-SKB.patch @@ -688,13 +688,13 @@ Signed-off-by: Ramya Gnanasekar +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 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 + +#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 diff --git a/package/kernel/mac80211/patches/nss/ath11k/999-336-0002-ath11k-Use-idr_replace.patch b/package/kernel/mac80211/patches/nss/ath11k/999-336-0002-ath11k-Use-idr_replace.patch index 0cccb5e5bc..aa0f1f80af 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/999-336-0002-ath11k-Use-idr_replace.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/999-336-0002-ath11k-Use-idr_replace.patch @@ -18,7 +18,7 @@ Signed-off-by: Tamizh Chelvam --- 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 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; diff --git a/package/kernel/mac80211/patches/nss/ath11k/999-802-ath11k-fixup-thermal-throttle.patch b/package/kernel/mac80211/patches/nss/ath11k/999-802-ath11k-fixup-thermal-throttle.patch index b40066e24d..6b9626b423 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/999-802-ath11k-fixup-thermal-throttle.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/999-802-ath11k-fixup-thermal-throttle.patch @@ -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 } } diff --git a/package/kernel/mac80211/patches/nss/ath11k/999-900-bss-transition-handling.patch b/package/kernel/mac80211/patches/nss/ath11k/999-900-bss-transition-handling.patch index 6b85483b2e..ab66b9306b 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/999-900-bss-transition-handling.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/999-900-bss-transition-handling.patch @@ -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(); diff --git a/package/kernel/mac80211/patches/nss/ath11k/999-902-ath11k-fix-WDS-by-disabling-nwds.patch b/package/kernel/mac80211/patches/nss/ath11k/999-902-ath11k-fix-WDS-by-disabling-nwds.patch index 73a471aaa4..2fa2b082db 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/999-902-ath11k-fix-WDS-by-disabling-nwds.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/999-902-ath11k-fix-WDS-by-disabling-nwds.patch @@ -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; } diff --git a/package/kernel/mac80211/patches/nss/subsys/199-001-mac80211-add-nss-support.patch b/package/kernel/mac80211/patches/nss/subsys/199-001-mac80211-add-nss-support.patch index 48dab8e186..a1a39556d3 100644 --- a/package/kernel/mac80211/patches/nss/subsys/199-001-mac80211-add-nss-support.patch +++ b/package/kernel/mac80211/patches/nss/subsys/199-001-mac80211-add-nss-support.patch @@ -64,7 +64,7 @@ Signed-off-by: Sriram R }; /** -@@ -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 * - 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 * 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 * 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 * @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 /* 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 * @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 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 } +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 --- 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 { --- 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 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; diff --git a/package/kernel/mac80211/patches/nss/subsys/203-mac80211-ath11k-fw-dynamic-muedca.patch b/package/kernel/mac80211/patches/nss/subsys/203-mac80211-ath11k-fw-dynamic-muedca.patch index 512d10633e..c5e8e27048 100644 --- a/package/kernel/mac80211/patches/nss/subsys/203-mac80211-ath11k-fw-dynamic-muedca.patch +++ b/package/kernel/mac80211/patches/nss/subsys/203-mac80211-ath11k-fw-dynamic-muedca.patch @@ -31,7 +31,7 @@ Signed-off-by: Muna Sinada --- 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 #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 __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 [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 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) ); diff --git a/package/kernel/mac80211/patches/nss/subsys/207-mac80211-add-nss-redirect-support.patch b/package/kernel/mac80211/patches/nss/subsys/207-mac80211-add-nss-redirect-support.patch index 11cd184584..63b2f9e954 100644 --- a/package/kernel/mac80211/patches/nss/subsys/207-mac80211-add-nss-redirect-support.patch +++ b/package/kernel/mac80211/patches/nss/subsys/207-mac80211-add-nss-redirect-support.patch @@ -40,7 +40,7 @@ Signed-off-by: Sowmiya Sree Elavalagan 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 /** * 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 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 /* * 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); diff --git a/package/kernel/mac80211/patches/nss/subsys/235-001-mac80211-add-AP_VLAN-iftype-support-on-NSS-offload-case.patch b/package/kernel/mac80211/patches/nss/subsys/235-001-mac80211-add-AP_VLAN-iftype-support-on-NSS-offload-case.patch index 941a0c8785..92f6c120a6 100644 --- a/package/kernel/mac80211/patches/nss/subsys/235-001-mac80211-add-AP_VLAN-iftype-support-on-NSS-offload-case.patch +++ b/package/kernel/mac80211/patches/nss/subsys/235-001-mac80211-add-AP_VLAN-iftype-support-on-NSS-offload-case.patch @@ -21,7 +21,7 @@ Signed-off-by: Sathishkumar Muruganandam --- 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 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 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 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 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 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 */ diff --git a/package/kernel/mac80211/patches/nss/subsys/236-001-mac80211-add-dynamic-VLAN-support-on-NSS-offload.patch b/package/kernel/mac80211/patches/nss/subsys/236-001-mac80211-add-dynamic-VLAN-support-on-NSS-offload.patch index 84424056bb..3795dcf9ac 100644 --- a/package/kernel/mac80211/patches/nss/subsys/236-001-mac80211-add-dynamic-VLAN-support-on-NSS-offload.patch +++ b/package/kernel/mac80211/patches/nss/subsys/236-001-mac80211-add-dynamic-VLAN-support-on-NSS-offload.patch @@ -24,7 +24,7 @@ Signed-off-by: Sathishkumar Muruganandam --- 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 * @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; diff --git a/package/kernel/mac80211/patches/nss/subsys/300-ath11k-nss-mesh-offload-support.patch b/package/kernel/mac80211/patches/nss/subsys/300-ath11k-nss-mesh-offload-support.patch index 6b5b2e6f77..d114019315 100644 --- a/package/kernel/mac80211/patches/nss/subsys/300-ath11k-nss-mesh-offload-support.patch +++ b/package/kernel/mac80211/patches/nss/subsys/300-ath11k-nss-mesh-offload-support.patch @@ -78,7 +78,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran 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 */ 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 }; /** -@@ -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 */ 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 }; -@@ -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 /* 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 * @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 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); diff --git a/package/kernel/mac80211/patches/nss/subsys/335-0003-ath11k-skip-HAL_TCL_DATA_CMD_INFO2_TID_OVERWRITE-con.patch b/package/kernel/mac80211/patches/nss/subsys/335-0003-ath11k-skip-HAL_TCL_DATA_CMD_INFO2_TID_OVERWRITE-con.patch index 481087fd11..1adf62f35f 100644 --- a/package/kernel/mac80211/patches/nss/subsys/335-0003-ath11k-skip-HAL_TCL_DATA_CMD_INFO2_TID_OVERWRITE-con.patch +++ b/package/kernel/mac80211/patches/nss/subsys/335-0003-ath11k-skip-HAL_TCL_DATA_CMD_INFO2_TID_OVERWRITE-con.patch @@ -16,7 +16,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran --- 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 * @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, diff --git a/package/kernel/mac80211/patches/nss/subsys/353-mac80211-fix-dynamic-vlan-warning-with-monitor-interface-restart.patch b/package/kernel/mac80211/patches/nss/subsys/353-mac80211-fix-dynamic-vlan-warning-with-monitor-interface-restart.patch index ba80b62d0a..15905c1090 100644 --- a/package/kernel/mac80211/patches/nss/subsys/353-mac80211-fix-dynamic-vlan-warning-with-monitor-interface-restart.patch +++ b/package/kernel/mac80211/patches/nss/subsys/353-mac80211-fix-dynamic-vlan-warning-with-monitor-interface-restart.patch @@ -21,7 +21,7 @@ Signed-off-by: Nagarajan Maran --- 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 && diff --git a/package/kernel/mac80211/patches/nss/subsys/640-006-01-mac80211-Remove-unused-RX_FLAGS-from-mac80211_rx_fla.patch b/package/kernel/mac80211/patches/nss/subsys/640-006-01-mac80211-Remove-unused-RX_FLAGS-from-mac80211_rx_fla.patch index d28628ab10..c1b285366d 100644 --- a/package/kernel/mac80211/patches/nss/subsys/640-006-01-mac80211-Remove-unused-RX_FLAGS-from-mac80211_rx_fla.patch +++ b/package/kernel/mac80211/patches/nss/subsys/640-006-01-mac80211-Remove-unused-RX_FLAGS-from-mac80211_rx_fla.patch @@ -14,7 +14,7 @@ Signed-off-by: P Praneesh --- 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 * @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 { diff --git a/package/kernel/mac80211/patches/nss/subsys/657-mac80211-Avoid-encapsulation-of-EAPOL-frames-if-OFFL.patch b/package/kernel/mac80211/patches/nss/subsys/657-mac80211-Avoid-encapsulation-of-EAPOL-frames-if-OFFL.patch index ee509ae0cb..3a034ac1c0 100644 --- a/package/kernel/mac80211/patches/nss/subsys/657-mac80211-Avoid-encapsulation-of-EAPOL-frames-if-OFFL.patch +++ b/package/kernel/mac80211/patches/nss/subsys/657-mac80211-Avoid-encapsulation-of-EAPOL-frames-if-OFFL.patch @@ -20,7 +20,7 @@ Signed-off-by: Aaradhana Sahu --- 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); diff --git a/package/kernel/mac80211/patches/nss/subsys/780-mac80211-Advertise-HW-checksum-offload-only-for-ethm.patch b/package/kernel/mac80211/patches/nss/subsys/780-mac80211-Advertise-HW-checksum-offload-only-for-ethm.patch index 843f8d8032..9243aff80d 100644 --- a/package/kernel/mac80211/patches/nss/subsys/780-mac80211-Advertise-HW-checksum-offload-only-for-ethm.patch +++ b/package/kernel/mac80211/patches/nss/subsys/780-mac80211-Advertise-HW-checksum-offload-only-for-ethm.patch @@ -78,7 +78,7 @@ Signed-off-by: Tamizh Chelvam Raja --- 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; diff --git a/package/kernel/mac80211/patches/nss/subsys/785-wifi-mac80211-Add-mac-hw-flag-to-avoid-queue-skb.patch b/package/kernel/mac80211/patches/nss/subsys/785-wifi-mac80211-Add-mac-hw-flag-to-avoid-queue-skb.patch index 1369dc2b60..338a9d2dd1 100644 --- a/package/kernel/mac80211/patches/nss/subsys/785-wifi-mac80211-Add-mac-hw-flag-to-avoid-queue-skb.patch +++ b/package/kernel/mac80211/patches/nss/subsys/785-wifi-mac80211-Add-mac-hw-flag-to-avoid-queue-skb.patch @@ -23,7 +23,7 @@ Signed-off-by: Yuvasree Sivasankaran --- 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 * @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 * 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; diff --git a/package/kernel/mac80211/patches/nss/subsys/917-QSDK-mac80211-WAR-for-association-failure-issue-with.patch b/package/kernel/mac80211/patches/nss/subsys/917-QSDK-mac80211-WAR-for-association-failure-issue-with.patch index dc3719a7eb..c0e43a73c3 100644 --- a/package/kernel/mac80211/patches/nss/subsys/917-QSDK-mac80211-WAR-for-association-failure-issue-with.patch +++ b/package/kernel/mac80211/patches/nss/subsys/917-QSDK-mac80211-WAR-for-association-failure-issue-with.patch @@ -27,7 +27,7 @@ Signed-off-by: Balamurugan Ramar --- 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 = diff --git a/package/kernel/mac80211/patches/nss/subsys/999-775-wifi-mac80211-Changes-for-WDS-MLD.patch b/package/kernel/mac80211/patches/nss/subsys/999-775-wifi-mac80211-Changes-for-WDS-MLD.patch index 961b549e0c..3246b1f930 100644 --- a/package/kernel/mac80211/patches/nss/subsys/999-775-wifi-mac80211-Changes-for-WDS-MLD.patch +++ b/package/kernel/mac80211/patches/nss/subsys/999-775-wifi-mac80211-Changes-for-WDS-MLD.patch @@ -17,7 +17,7 @@ Signed-off-by: Ramasamy Kaliappan --- 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 * * 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 --- 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 { 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 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 { 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 } --- 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 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; diff --git a/package/kernel/mac80211/patches/nss/subsys/999-918-mac80211-fix-NULL-pointer-access-Klocwork-issue.patch b/package/kernel/mac80211/patches/nss/subsys/999-918-mac80211-fix-NULL-pointer-access-Klocwork-issue.patch index 4da3528952..633b70fb14 100644 --- a/package/kernel/mac80211/patches/nss/subsys/999-918-mac80211-fix-NULL-pointer-access-Klocwork-issue.patch +++ b/package/kernel/mac80211/patches/nss/subsys/999-918-mac80211-fix-NULL-pointer-access-Klocwork-issue.patch @@ -20,7 +20,7 @@ Signed-off-by: Monika Korada --- 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 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 } 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 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: