Skip to content

Commit

Permalink
Merge branch 'rebase-qualcommax-6.x-nss-wifi' into qualcommax-6.x-nss…
Browse files Browse the repository at this point in the history
…-wifi
  • Loading branch information
qosmio committed May 6, 2024
2 parents 1fc586a + 053618a commit a0ba5c9
Show file tree
Hide file tree
Showing 40 changed files with 208 additions and 179 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -4180,22 +4180,28 @@ static int ath11k_clear_peer_keys(struct
@@ -4178,22 +4178,28 @@ static int ath11k_clear_peer_keys(struct
int ret;
int i;
u32 flags = 0;
Expand Down Expand Up @@ -35,7 +35,7 @@
DISABLE_KEY, addr, flags);
if (ret < 0 && first_errno == 0)
first_errno = ret;
@@ -4203,10 +4209,6 @@ static int ath11k_clear_peer_keys(struct
@@ -4201,10 +4207,6 @@ static int ath11k_clear_peer_keys(struct
if (ret < 0)
ath11k_warn(ab, "failed to remove peer key %d: %d\n",
i, ret);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@
debugfs_create_file("dfs_simulate_radar", 0200,
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -6150,9 +6150,9 @@ static int ath11k_mac_mgmt_tx(struct ath
@@ -6148,9 +6148,9 @@ static int ath11k_mac_mgmt_tx(struct ath
*/
if (is_prb_rsp &&
atomic_read(&ar->num_pending_mgmt_tx) > ATH11K_PRB_RSP_DROP_THRESHOLD) {
Expand All @@ -140,7 +140,7 @@
}

if (skb_queue_len_lockless(q) >= ATH11K_TX_MGMT_NUM_PENDING_MAX) {
@@ -6178,9 +6178,11 @@ static void ath11k_mac_op_tx(struct ieee
@@ -6176,9 +6176,11 @@ static void ath11k_mac_op_tx(struct ieee
struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif);
struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
struct ieee80211_key_conf *key = info->control.hw_key;
Expand All @@ -152,7 +152,7 @@
int ret;

memset(skb_cb, 0, sizeof(*skb_cb));
@@ -6194,12 +6196,21 @@ static void ath11k_mac_op_tx(struct ieee
@@ -6192,12 +6194,21 @@ static void ath11k_mac_op_tx(struct ieee
if (info_flags & IEEE80211_TX_CTL_HW_80211_ENCAP) {
skb_cb->flags |= ATH11K_SKB_HW_80211_ENCAP;
} else if (ieee80211_is_mgmt(hdr->frame_control)) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -9573,6 +9573,8 @@ static int __ath11k_mac_register(struct
@@ -9580,6 +9580,8 @@ static int __ath11k_mac_register(struct
wiphy_ext_feature_set(ar->hw->wiphy,
NL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2995,7 +2995,7 @@ Signed-off-by: Sriram R <[email protected]>
int ath11k_dp_pdev_reo_setup(struct ath11k_base *ab);
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -6369,6 +6369,16 @@ static int ath11k_mac_op_start(struct ie
@@ -6367,6 +6367,16 @@ static int ath11k_mac_op_start(struct ie
goto err;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -585,7 +585,7 @@ Signed-off-by: Sriram R <[email protected]>
static void ath11k_mac_op_bss_info_changed(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
struct ieee80211_bss_conf *info,
@@ -4297,6 +4341,26 @@ static int ath11k_mac_op_set_key(struct
@@ -4295,6 +4339,26 @@ static int ath11k_mac_op_set_key(struct

spin_lock_bh(&ab->base_lock);
peer = ath11k_peer_find(ab, arvif->vdev_id, peer_addr);
Expand All @@ -612,7 +612,7 @@ Signed-off-by: Sriram R <[email protected]>
if (peer && cmd == SET_KEY) {
peer->keys[key->keyidx] = key;
if (key->flags & IEEE80211_KEY_FLAG_PAIRWISE) {
@@ -4335,9 +4399,8 @@ static int ath11k_mac_op_set_key(struct
@@ -4333,9 +4397,8 @@ static int ath11k_mac_op_set_key(struct
break;
}
}
Expand All @@ -623,7 +623,7 @@ Signed-off-by: Sriram R <[email protected]>
exit:
mutex_unlock(&ar->conf_mutex);
return ret;
@@ -6218,10 +6281,14 @@ static void ath11k_mac_op_tx(struct ieee
@@ -6216,10 +6279,14 @@ static void ath11k_mac_op_tx(struct ieee
if (control->sta)
arsta = ath11k_sta_to_arsta(control->sta);

Expand All @@ -639,7 +639,7 @@ Signed-off-by: Sriram R <[email protected]>
}
}

@@ -6243,6 +6310,8 @@ static int ath11k_mac_config_mon_status_
@@ -6241,6 +6308,8 @@ static int ath11k_mac_config_mon_status_

if (enable) {
tlv_filter = ath11k_mac_mon_status_filter_default;
Expand All @@ -648,7 +648,7 @@ Signed-off-by: Sriram R <[email protected]>
if (ath11k_debugfs_rx_filter(ar))
tlv_filter.rx_filter = ath11k_debugfs_rx_filter(ar);
}
@@ -6541,7 +6610,7 @@ static int ath11k_mac_setup_vdev_create_
@@ -6539,7 +6608,7 @@ static int ath11k_mac_setup_vdev_create_
return 0;
}

Expand All @@ -657,7 +657,7 @@ Signed-off-by: Sriram R <[email protected]>
struct ieee80211_vif *vif)
{
struct ath11k *ar = hw->priv;
@@ -6587,6 +6656,8 @@ static void ath11k_mac_op_update_vif_off
@@ -6585,6 +6654,8 @@ static void ath11k_mac_op_update_vif_off
arvif->vdev_id, ret);
vif->offload_flags &= ~IEEE80211_OFFLOAD_DECAP_ENABLED;
}
Expand All @@ -666,7 +666,7 @@ Signed-off-by: Sriram R <[email protected]>
}

static bool ath11k_mac_vif_ap_active_any(struct ath11k_base *ab)
@@ -6717,6 +6788,8 @@ static int ath11k_mac_vdev_delete(struct
@@ -6715,6 +6786,8 @@ static int ath11k_mac_vdev_delete(struct

reinit_completion(&ar->vdev_delete_done);

Expand All @@ -675,7 +675,7 @@ Signed-off-by: Sriram R <[email protected]>
ret = ath11k_wmi_vdev_delete(ar, arvif->vdev_id);
if (ret) {
ath11k_warn(ar->ab, "failed to delete WMI vdev %d: %d\n",
@@ -6857,7 +6930,34 @@ static int ath11k_mac_op_add_interface(s
@@ -6855,7 +6928,34 @@ static int ath11k_mac_op_add_interface(s
list_add(&arvif->list, &ar->arvifs);
spin_unlock_bh(&ar->data_lock);

Expand Down Expand Up @@ -711,15 +711,15 @@ Signed-off-by: Sriram R <[email protected]>

nss = get_num_chains(ar->cfg_tx_chainmask) ? : 1;
ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id,
@@ -6981,6 +7081,7 @@ err_peer_del:
@@ -6979,6 +7079,7 @@ err_peer_del:
}

err_vdev_del:
+ ath11k_nss_vdev_delete(arvif);
ath11k_mac_vdev_delete(ar, arvif);
spin_lock_bh(&ar->data_lock);
list_del(&arvif->list);
@@ -7491,6 +7592,10 @@ ath11k_mac_update_vif_chan(struct ath11k
@@ -7489,6 +7590,10 @@ ath11k_mac_update_vif_chan(struct ath11k
arvif->vdev_id, ret);
continue;
}
Expand All @@ -730,7 +730,7 @@ Signed-off-by: Sriram R <[email protected]>
}

/* Restart the internal monitor vdev on new channel */
@@ -8719,6 +8824,8 @@ static void ath11k_mac_op_sta_statistics
@@ -8717,6 +8822,8 @@ static void ath11k_mac_op_sta_statistics
sinfo->signal_avg = ewma_avg_rssi_read(&arsta->avg_rssi) +
ATH11K_DEFAULT_NOISE_FLOOR;
sinfo->filled |= BIT_ULL(NL80211_STA_INFO_SIGNAL_AVG);
Expand All @@ -739,15 +739,15 @@ Signed-off-by: Sriram R <[email protected]>
}

#if IS_ENABLED(CONFIG_IPV6)
@@ -9138,6 +9245,7 @@ static const struct ieee80211_ops ath11k
@@ -9144,6 +9251,7 @@ static const struct ieee80211_ops ath11k
.update_vif_offload = ath11k_mac_op_update_vif_offload,
.config = ath11k_mac_op_config,
.bss_info_changed = ath11k_mac_op_bss_info_changed,
+ .nss_bss_info_changed = ath11k_mac_op_nss_bss_info_changed,
.configure_filter = ath11k_mac_op_configure_filter,
.hw_scan = ath11k_mac_op_hw_scan,
.cancel_hw_scan = ath11k_mac_op_cancel_hw_scan,
@@ -9523,7 +9631,8 @@ static int __ath11k_mac_register(struct
@@ -9530,7 +9638,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);
Expand All @@ -757,7 +757,7 @@ Signed-off-by: Sriram R <[email protected]>
}

ar->hw->wiphy->features |= NL80211_FEATURE_STATIC_SMPS;
@@ -9638,6 +9747,9 @@ static int __ath11k_mac_register(struct
@@ -9645,6 +9754,9 @@ static int __ath11k_mac_register(struct
ab->hw_params.bios_sar_capa)
ar->hw->wiphy->sar_capa = ab->hw_params.bios_sar_capa;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -369,7 +369,7 @@ Signed-off-by: Seevalamuthu Mariappan <[email protected]>
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
@@ -9764,6 +9764,9 @@ static int __ath11k_mac_register(struct
@@ -9771,6 +9771,9 @@ static int __ath11k_mac_register(struct
*/
ar->hw->wiphy->interface_modes &= ~BIT(NL80211_IFTYPE_MONITOR);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <[email protected]>

--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -6131,6 +6131,16 @@ static int ath11k_mac_mgmt_tx_wmi(struct
@@ -6129,6 +6129,16 @@ static int ath11k_mac_mgmt_tx_wmi(struct

ATH11K_SKB_CB(skb)->paddr = paddr;

Expand All @@ -39,7 +39,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <[email protected]>
ret = ath11k_wmi_mgmt_send(ar, arvif->vdev_id, buf_id, skb);
if (ret) {
ath11k_warn(ar->ab, "failed to send mgmt frame: %d\n", ret);
@@ -6198,8 +6208,8 @@ static void ath11k_mgmt_over_wmi_tx_work
@@ -6196,8 +6206,8 @@ static void ath11k_mgmt_over_wmi_tx_work
}
}

Expand All @@ -50,7 +50,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <[email protected]>
{
struct sk_buff_head *q = &ar->wmi_mgmt_tx_queue;

@@ -6261,7 +6271,7 @@ static void ath11k_mac_op_tx(struct ieee
@@ -6259,7 +6269,7 @@ static void ath11k_mac_op_tx(struct ieee
} else if (ieee80211_is_mgmt(hdr->frame_control)) {
frm_type = FIELD_GET(IEEE80211_FCTL_STYPE, hdr->frame_control);
is_prb_rsp = ieee80211_is_probe_resp(hdr->frame_control);
Expand All @@ -59,7 +59,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <[email protected]>
if (ret) {
if (ret != -EBUSY)
ath11k_warn(ar->ab, "failed to queue management frame %d\n",
@@ -6276,6 +6286,20 @@ static void ath11k_mac_op_tx(struct ieee
@@ -6274,6 +6284,20 @@ static void ath11k_mac_op_tx(struct ieee
spin_unlock_bh(&ar->data_lock);
}
return;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ Signed-off-by: Sathishkumar Muruganandam <[email protected]>
struct ath11k_vif_iter {
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -4741,6 +4741,11 @@ static void ath11k_sta_rc_update_wk(stru
@@ -4739,6 +4739,11 @@ static void ath11k_sta_rc_update_wk(stru
arvif = arsta->arvif;
ar = arvif->ar;

Expand All @@ -55,7 +55,7 @@ Signed-off-by: Sathishkumar Muruganandam <[email protected]>
if (WARN_ON(ath11k_mac_vif_chan(arvif->vif, &def)))
return;

@@ -4912,17 +4917,28 @@ err_rc_bw_changed:
@@ -4910,17 +4915,28 @@ err_rc_bw_changed:
static void ath11k_sta_set_4addr_wk(struct work_struct *wk)
{
struct ath11k *ar;
Expand Down Expand Up @@ -86,7 +86,7 @@ Signed-off-by: Sathishkumar Muruganandam <[email protected]>
"setting USE_4ADDR for peer %pM\n", sta->addr);

ret = ath11k_wmi_set_peer_param(ar, sta->addr,
@@ -4930,8 +4946,93 @@ static void ath11k_sta_set_4addr_wk(stru
@@ -4928,8 +4944,93 @@ static void ath11k_sta_set_4addr_wk(stru
WMI_PEER_USE_4ADDR, 1);

if (ret)
Expand Down Expand Up @@ -181,7 +181,7 @@ Signed-off-by: Sathishkumar Muruganandam <[email protected]>
}

static int ath11k_mac_inc_num_stations(struct ath11k_vif *arvif,
@@ -5261,9 +5362,32 @@ static void ath11k_mac_op_sta_set_4addr(
@@ -5259,9 +5360,32 @@ static void ath11k_mac_op_sta_set_4addr(
struct ieee80211_sta *sta, bool enabled)
{
struct ath11k *ar = hw->priv;
Expand Down Expand Up @@ -214,7 +214,7 @@ Signed-off-by: Sathishkumar Muruganandam <[email protected]>
ieee80211_queue_work(ar->hw, &arsta->set_4addr_wk);
arsta->use_4addr_set = true;
}
@@ -6643,6 +6767,9 @@ static int ath11k_mac_op_update_vif_offl
@@ -6641,6 +6765,9 @@ static int ath11k_mac_op_update_vif_offl
u32 param_id, param_value;
int ret;

Expand All @@ -224,7 +224,7 @@ Signed-off-by: Sathishkumar Muruganandam <[email protected]>
param_id = WMI_VDEV_PARAM_TX_ENCAP_TYPE;
if (ath11k_frame_mode != ATH11K_HW_TXRX_ETHERNET ||
(vif->type != NL80211_IFTYPE_STATION &&
@@ -6863,7 +6990,8 @@ static int ath11k_mac_op_add_interface(s
@@ -6861,7 +6988,8 @@ static int ath11k_mac_op_add_interface(s
goto err;
}

Expand All @@ -234,7 +234,7 @@ Signed-off-by: Sathishkumar Muruganandam <[email protected]>
ath11k_warn(ab, "failed to create vdev %u, reached max vdev limit %d\n",
ar->num_created_vdevs, TARGET_NUM_VDEVS(ab));
ret = -EBUSY;
@@ -6883,6 +7011,28 @@ static int ath11k_mac_op_add_interface(s
@@ -6881,6 +7009,28 @@ static int ath11k_mac_op_add_interface(s
arvif->vif = vif;

INIT_LIST_HEAD(&arvif->list);
Expand Down Expand Up @@ -263,15 +263,15 @@ Signed-off-by: Sathishkumar Muruganandam <[email protected]>
INIT_DELAYED_WORK(&arvif->connection_loss_work,
ath11k_mac_vif_sta_connection_loss_work);

@@ -6912,6 +7062,7 @@ static int ath11k_mac_op_add_interface(s
@@ -6910,6 +7060,7 @@ static int ath11k_mac_op_add_interface(s
fallthrough;
case NL80211_IFTYPE_AP:
arvif->vdev_type = WMI_VDEV_TYPE_AP;
+ INIT_LIST_HEAD(&arvif->ap_vlan_arvifs);
break;
case NL80211_IFTYPE_MONITOR:
arvif->vdev_type = WMI_VDEV_TYPE_MONITOR;
@@ -7134,13 +7285,30 @@ static void ath11k_mac_op_remove_interfa
@@ -7132,13 +7283,30 @@ static void ath11k_mac_op_remove_interfa
struct ath11k *ar = hw->priv;
struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif);
struct ath11k_base *ab = ar->ab;
Expand Down Expand Up @@ -304,7 +304,7 @@ Signed-off-by: Sathishkumar Muruganandam <[email protected]>
ath11k_dbg(ab, ATH11K_DBG_MAC, "remove interface (vdev %d)\n",
arvif->vdev_id);

@@ -7157,6 +7325,14 @@ static void ath11k_mac_op_remove_interfa
@@ -7155,6 +7323,14 @@ static void ath11k_mac_op_remove_interfa
if (ret)
ath11k_warn(ab, "failed to submit AP self-peer removal on vdev %d: %d\n",
arvif->vdev_id, ret);
Expand All @@ -319,7 +319,7 @@ Signed-off-by: Sathishkumar Muruganandam <[email protected]>
}

ret = ath11k_mac_vdev_delete(ar, arvif);
@@ -7200,8 +7376,7 @@ err_vdev_del:
@@ -7198,8 +7374,7 @@ err_vdev_del:

ath11k_debugfs_remove_interface(arvif);

Expand All @@ -329,7 +329,7 @@ Signed-off-by: Sathishkumar Muruganandam <[email protected]>
mutex_unlock(&ar->conf_mutex);
}

@@ -7261,16 +7436,17 @@ static int ath11k_mac_op_ampdu_action(st
@@ -7259,16 +7434,17 @@ static int ath11k_mac_op_ampdu_action(st
struct ieee80211_ampdu_params *params)
{
struct ath11k *ar = hw->priv;
Expand All @@ -349,15 +349,15 @@ Signed-off-by: Sathishkumar Muruganandam <[email protected]>
break;
case IEEE80211_AMPDU_TX_START:
case IEEE80211_AMPDU_TX_STOP_CONT:
@@ -8793,6 +8969,7 @@ static void ath11k_mac_op_sta_statistics
@@ -8791,6 +8967,7 @@ static void ath11k_mac_op_sta_statistics
{
struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta);
struct ath11k *ar = arsta->arvif->ar;
+ struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif);
s8 signal;
bool db2dbm = test_bit(WMI_TLV_SERVICE_HW_DB2DBM_CONVERSION_SUPPORT,
ar->ab->wmi_ab.svc_map);
@@ -8849,7 +9026,8 @@ static void ath11k_mac_op_sta_statistics
@@ -8847,7 +9024,8 @@ static void ath11k_mac_op_sta_statistics
ATH11K_DEFAULT_NOISE_FLOOR;
sinfo->filled |= BIT_ULL(NL80211_STA_INFO_SIGNAL_AVG);

Expand Down
Loading

0 comments on commit a0ba5c9

Please sign in to comment.