Skip to content

Commit c5a3f56

Browse files
author
Kalle Valo
committed
Merge tag 'ath-next-20231215' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath
ath.git patches for v6.8. We have new features only for ath12k but lots of small cleanup for ath10k, ath11k and ath12k. And of course smaller fixes to several drivers. Major changes: ath12k * support one MSI vector * WCN7850: support AP mode
2 parents 40d51f7 + fd6ed17 commit c5a3f56

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

128 files changed

+630
-465
lines changed

drivers/net/wireless/ath/ath10k/bmi.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
/*
33
* Copyright (c) 2005-2011 Atheros Communications Inc.
44
* Copyright (c) 2011-2014,2016-2017 Qualcomm Atheros, Inc.
5+
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
56
*/
67

78
#include "bmi.h"

drivers/net/wireless/ath/ath10k/ce.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
* Copyright (c) 2005-2011 Atheros Communications Inc.
44
* Copyright (c) 2011-2017 Qualcomm Atheros, Inc.
55
* Copyright (c) 2018 The Linux Foundation. All rights reserved.
6+
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
67
*/
78

89
#include "hif.h"

drivers/net/wireless/ath/ath10k/core.c

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
* Copyright (c) 2005-2011 Atheros Communications Inc.
44
* Copyright (c) 2011-2017 Qualcomm Atheros, Inc.
55
* Copyright (c) 2018-2019, The Linux Foundation. All rights reserved.
6+
* Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
67
*/
78

89
#include <linux/module.h>
@@ -100,6 +101,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
100101
.hw_restart_disconnect = false,
101102
.use_fw_tx_credits = true,
102103
.delay_unmap_buffer = false,
104+
.mcast_frame_registration = false,
103105
},
104106
{
105107
.id = QCA988X_HW_2_0_VERSION,
@@ -140,6 +142,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
140142
.hw_restart_disconnect = false,
141143
.use_fw_tx_credits = true,
142144
.delay_unmap_buffer = false,
145+
.mcast_frame_registration = false,
143146
},
144147
{
145148
.id = QCA9887_HW_1_0_VERSION,
@@ -181,6 +184,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
181184
.hw_restart_disconnect = false,
182185
.use_fw_tx_credits = true,
183186
.delay_unmap_buffer = false,
187+
.mcast_frame_registration = false,
184188
},
185189
{
186190
.id = QCA6174_HW_3_2_VERSION,
@@ -217,6 +221,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
217221
.hw_restart_disconnect = false,
218222
.use_fw_tx_credits = true,
219223
.delay_unmap_buffer = false,
224+
.mcast_frame_registration = false,
220225
},
221226
{
222227
.id = QCA6174_HW_2_1_VERSION,
@@ -257,6 +262,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
257262
.hw_restart_disconnect = false,
258263
.use_fw_tx_credits = true,
259264
.delay_unmap_buffer = false,
265+
.mcast_frame_registration = false,
260266
},
261267
{
262268
.id = QCA6174_HW_2_1_VERSION,
@@ -297,6 +303,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
297303
.hw_restart_disconnect = false,
298304
.use_fw_tx_credits = true,
299305
.delay_unmap_buffer = false,
306+
.mcast_frame_registration = false,
300307
},
301308
{
302309
.id = QCA6174_HW_3_0_VERSION,
@@ -337,6 +344,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
337344
.hw_restart_disconnect = false,
338345
.use_fw_tx_credits = true,
339346
.delay_unmap_buffer = false,
347+
.mcast_frame_registration = false,
340348
},
341349
{
342350
.id = QCA6174_HW_3_2_VERSION,
@@ -381,6 +389,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
381389
.hw_restart_disconnect = false,
382390
.use_fw_tx_credits = true,
383391
.delay_unmap_buffer = false,
392+
.mcast_frame_registration = true,
384393
},
385394
{
386395
.id = QCA99X0_HW_2_0_DEV_VERSION,
@@ -427,6 +436,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
427436
.hw_restart_disconnect = false,
428437
.use_fw_tx_credits = true,
429438
.delay_unmap_buffer = false,
439+
.mcast_frame_registration = false,
430440
},
431441
{
432442
.id = QCA9984_HW_1_0_DEV_VERSION,
@@ -480,6 +490,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
480490
.hw_restart_disconnect = false,
481491
.use_fw_tx_credits = true,
482492
.delay_unmap_buffer = false,
493+
.mcast_frame_registration = false,
483494
},
484495
{
485496
.id = QCA9888_HW_2_0_DEV_VERSION,
@@ -530,6 +541,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
530541
.hw_restart_disconnect = false,
531542
.use_fw_tx_credits = true,
532543
.delay_unmap_buffer = false,
544+
.mcast_frame_registration = false,
533545
},
534546
{
535547
.id = QCA9377_HW_1_0_DEV_VERSION,
@@ -570,6 +582,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
570582
.hw_restart_disconnect = false,
571583
.use_fw_tx_credits = true,
572584
.delay_unmap_buffer = false,
585+
.mcast_frame_registration = false,
573586
},
574587
{
575588
.id = QCA9377_HW_1_1_DEV_VERSION,
@@ -612,6 +625,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
612625
.hw_restart_disconnect = false,
613626
.use_fw_tx_credits = true,
614627
.delay_unmap_buffer = false,
628+
.mcast_frame_registration = false,
615629
},
616630
{
617631
.id = QCA9377_HW_1_1_DEV_VERSION,
@@ -645,6 +659,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
645659
.hw_restart_disconnect = false,
646660
.use_fw_tx_credits = true,
647661
.delay_unmap_buffer = false,
662+
.mcast_frame_registration = false,
648663
},
649664
{
650665
.id = QCA4019_HW_1_0_DEV_VERSION,
@@ -692,6 +707,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
692707
.hw_restart_disconnect = false,
693708
.use_fw_tx_credits = true,
694709
.delay_unmap_buffer = false,
710+
.mcast_frame_registration = false,
695711
},
696712
{
697713
.id = WCN3990_HW_1_0_DEV_VERSION,
@@ -725,6 +741,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
725741
.hw_restart_disconnect = true,
726742
.use_fw_tx_credits = false,
727743
.delay_unmap_buffer = true,
744+
.mcast_frame_registration = false,
728745
},
729746
};
730747

drivers/net/wireless/ath/ath10k/core.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
* Copyright (c) 2005-2011 Atheros Communications Inc.
44
* Copyright (c) 2011-2017 Qualcomm Atheros, Inc.
55
* Copyright (c) 2018-2019, The Linux Foundation. All rights reserved.
6+
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
67
*/
78

89
#ifndef _CORE_H_
@@ -607,7 +608,7 @@ struct ath10k_vif {
607608
u8 tim_bitmap[64];
608609
u8 tim_len;
609610
u32 ssid_len;
610-
u8 ssid[IEEE80211_MAX_SSID_LEN];
611+
u8 ssid[IEEE80211_MAX_SSID_LEN] __nonstring;
611612
bool hidden_ssid;
612613
/* P2P_IE with NoA attribute for P2P_GO case */
613614
u32 noa_len;

drivers/net/wireless/ath/ath10k/coredump.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
/*
33
* Copyright (c) 2011-2017 Qualcomm Atheros, Inc.
44
* Copyright (c) 2018, The Linux Foundation. All rights reserved.
5+
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
56
*/
67

78
#include "coredump.h"

drivers/net/wireless/ath/ath10k/coredump.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
/* SPDX-License-Identifier: ISC */
22
/*
33
* Copyright (c) 2011-2017 Qualcomm Atheros, Inc.
4+
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
45
*/
56

67
#ifndef _COREDUMP_H_

drivers/net/wireless/ath/ath10k/debug.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
* Copyright (c) 2005-2011 Atheros Communications Inc.
44
* Copyright (c) 2011-2017 Qualcomm Atheros, Inc.
55
* Copyright (c) 2018, The Linux Foundation. All rights reserved.
6+
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
67
*/
78

89
#include <linux/module.h>

drivers/net/wireless/ath/ath10k/debugfs_sta.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
/*
33
* Copyright (c) 2014-2017 Qualcomm Atheros, Inc.
44
* Copyright (c) 2018, The Linux Foundation. All rights reserved.
5+
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
56
*/
67

78
#include "core.h"

drivers/net/wireless/ath/ath10k/htc.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
/*
33
* Copyright (c) 2005-2011 Atheros Communications Inc.
44
* Copyright (c) 2011-2017 Qualcomm Atheros, Inc.
5+
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
56
*/
67

78
#include "core.h"

drivers/net/wireless/ath/ath10k/htc.h

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -246,26 +246,12 @@ struct ath10k_htc_lookahead_bundle {
246246
struct ath10k_htc_record {
247247
struct ath10k_ath10k_htc_record_hdr hdr;
248248
union {
249-
struct ath10k_htc_credit_report credit_report[0];
250-
struct ath10k_htc_lookahead_report lookahead_report[0];
251-
struct ath10k_htc_lookahead_bundle lookahead_bundle[0];
252-
u8 pauload[0];
249+
DECLARE_FLEX_ARRAY(struct ath10k_htc_credit_report, credit_report);
250+
DECLARE_FLEX_ARRAY(struct ath10k_htc_lookahead_report, lookahead_report);
251+
DECLARE_FLEX_ARRAY(struct ath10k_htc_lookahead_bundle, lookahead_bundle);
253252
};
254253
} __packed __aligned(4);
255254

256-
/*
257-
* note: the trailer offset is dynamic depending
258-
* on payload length. this is only a struct layout draft
259-
*/
260-
struct ath10k_htc_frame {
261-
struct ath10k_htc_hdr hdr;
262-
union {
263-
struct ath10k_htc_msg msg;
264-
u8 payload[0];
265-
};
266-
struct ath10k_htc_record trailer[0];
267-
} __packed __aligned(4);
268-
269255
/*******************/
270256
/* Host-side stuff */
271257
/*******************/

drivers/net/wireless/ath/ath10k/htt.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
* Copyright (c) 2005-2011 Atheros Communications Inc.
44
* Copyright (c) 2011-2017 Qualcomm Atheros, Inc.
55
* Copyright (c) 2018, The Linux Foundation. All rights reserved.
6+
* Copyright (c) 2021, 2023 Qualcomm Innovation Center, Inc. All rights reserved.
67
*/
78

89
#ifndef _HTT_H_

drivers/net/wireless/ath/ath10k/htt_rx.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
* Copyright (c) 2005-2011 Atheros Communications Inc.
44
* Copyright (c) 2011-2017 Qualcomm Atheros, Inc.
55
* Copyright (c) 2018, The Linux Foundation. All rights reserved.
6+
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
67
*/
78

89
#include "core.h"

drivers/net/wireless/ath/ath10k/htt_tx.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
/*
33
* Copyright (c) 2005-2011 Atheros Communications Inc.
44
* Copyright (c) 2011-2017 Qualcomm Atheros, Inc.
5+
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
56
*/
67

78
#include <linux/etherdevice.h>
@@ -40,7 +41,6 @@ static void __ath10k_htt_tx_txq_recalc(struct ieee80211_hw *hw,
4041
struct ath10k *ar = hw->priv;
4142
struct ath10k_sta *arsta;
4243
struct ath10k_vif *arvif = (void *)txq->vif->drv_priv;
43-
unsigned long frame_cnt;
4444
unsigned long byte_cnt;
4545
int idx;
4646
u32 bit;
@@ -67,7 +67,7 @@ static void __ath10k_htt_tx_txq_recalc(struct ieee80211_hw *hw,
6767
bit = BIT(peer_id % 32);
6868
idx = peer_id / 32;
6969

70-
ieee80211_txq_get_depth(txq, &frame_cnt, &byte_cnt);
70+
ieee80211_txq_get_depth(txq, NULL, &byte_cnt);
7171
count = ath10k_htt_tx_txq_calc_size(byte_cnt);
7272

7373
if (unlikely(peer_id >= ar->htt.tx_q_state.num_peers) ||

drivers/net/wireless/ath/ath10k/hw.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// SPDX-License-Identifier: ISC
22
/*
33
* Copyright (c) 2014-2017 Qualcomm Atheros, Inc.
4+
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
45
*/
56

67
#include <linux/types.h>

drivers/net/wireless/ath/ath10k/hw.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
* Copyright (c) 2005-2011 Atheros Communications Inc.
44
* Copyright (c) 2011-2017 Qualcomm Atheros, Inc.
55
* Copyright (c) 2018 The Linux Foundation. All rights reserved.
6+
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
67
*/
78

89
#ifndef _HW_H_
@@ -639,6 +640,9 @@ struct ath10k_hw_params {
639640
bool use_fw_tx_credits;
640641

641642
bool delay_unmap_buffer;
643+
644+
/* The hardware support multicast frame registrations */
645+
bool mcast_frame_registration;
642646
};
643647

644648
struct htt_resp;

drivers/net/wireless/ath/ath10k/mac.c

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
* Copyright (c) 2005-2011 Atheros Communications Inc.
44
* Copyright (c) 2011-2017 Qualcomm Atheros, Inc.
55
* Copyright (c) 2018-2019, The Linux Foundation. All rights reserved.
6+
* Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
67
*/
78

89
#include "mac.h"
@@ -1242,7 +1243,7 @@ static bool ath10k_mac_monitor_vdev_is_needed(struct ath10k *ar)
12421243
return ar->monitor ||
12431244
(!test_bit(ATH10K_FW_FEATURE_ALLOWS_MESH_BCAST,
12441245
ar->running_fw->fw_file.fw_features) &&
1245-
(ar->filter_flags & FIF_OTHER_BSS)) ||
1246+
(ar->filter_flags & (FIF_OTHER_BSS | FIF_MCAST_ACTION))) ||
12461247
test_bit(ATH10K_CAC_RUNNING, &ar->dev_flags);
12471248
}
12481249

@@ -6025,10 +6026,15 @@ static void ath10k_configure_filter(struct ieee80211_hw *hw,
60256026
{
60266027
struct ath10k *ar = hw->priv;
60276028
int ret;
6029+
unsigned int supported = SUPPORTED_FILTERS;
60286030

60296031
mutex_lock(&ar->conf_mutex);
60306032

6031-
*total_flags &= SUPPORTED_FILTERS;
6033+
if (ar->hw_params.mcast_frame_registration)
6034+
supported |= FIF_MCAST_ACTION;
6035+
6036+
*total_flags &= supported;
6037+
60326038
ar->filter_flags = *total_flags;
60336039

60346040
ret = ath10k_monitor_recalc(ar);
@@ -6121,9 +6127,8 @@ static void ath10k_bss_info_changed(struct ieee80211_hw *hw,
61216127

61226128
if (ieee80211_vif_is_mesh(vif)) {
61236129
/* mesh doesn't use SSID but firmware needs it */
6124-
strncpy(arvif->u.ap.ssid, "mesh",
6125-
sizeof(arvif->u.ap.ssid));
61266130
arvif->u.ap.ssid_len = 4;
6131+
memcpy(arvif->u.ap.ssid, "mesh", arvif->u.ap.ssid_len);
61276132
}
61286133
}
61296134

@@ -10118,6 +10123,10 @@ int ath10k_mac_register(struct ath10k *ar)
1011810123
NL80211_EXT_FEATURE_SET_SCAN_DWELL);
1011910124
wiphy_ext_feature_set(ar->hw->wiphy, NL80211_EXT_FEATURE_AQL);
1012010125

10126+
if (ar->hw_params.mcast_frame_registration)
10127+
wiphy_ext_feature_set(ar->hw->wiphy,
10128+
NL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS);
10129+
1012110130
if (test_bit(WMI_SERVICE_TX_DATA_ACK_RSSI, ar->wmi.svc_map) ||
1012210131
test_bit(WMI_SERVICE_HTT_MGMT_TX_COMP_VALID_FLAGS, ar->wmi.svc_map))
1012310132
wiphy_ext_feature_set(ar->hw->wiphy,

drivers/net/wireless/ath/ath10k/pci.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
/*
33
* Copyright (c) 2005-2011 Atheros Communications Inc.
44
* Copyright (c) 2011-2017 Qualcomm Atheros, Inc.
5+
* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
56
*/
67

78
#include <linux/pci.h>

drivers/net/wireless/ath/ath10k/pci.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
/*
33
* Copyright (c) 2005-2011 Atheros Communications Inc.
44
* Copyright (c) 2011-2017 Qualcomm Atheros, Inc.
5+
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
56
*/
67

78
#ifndef _PCI_H_

drivers/net/wireless/ath/ath10k/qmi.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// SPDX-License-Identifier: ISC
22
/*
33
* Copyright (c) 2018 The Linux Foundation. All rights reserved.
4+
* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
45
*/
56

67
#include <linux/completion.h>

drivers/net/wireless/ath/ath10k/qmi_wlfw_v01.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// SPDX-License-Identifier: ISC
22
/*
33
* Copyright (c) 2018 The Linux Foundation. All rights reserved.
4+
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
45
*/
56

67
#include <linux/soc/qcom/qmi.h>

0 commit comments

Comments
 (0)