Skip to content

Commit a27359a

Browse files
committed
Merge tag 'wireless-next-2023-12-22' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next
Kalle Valo says: ==================== wireless-next patches for v6.8 The third "new features" pull request for v6.8. This is a smaller one to clear up our tree before the break and nothing really noteworthy this time. Major changes: stack * cfg80211: introduce cfg80211_ssid_eq() for SSID matching * cfg80211: support P2P operation on DFS channels * mac80211: allow 64-bit radiotap timestamps iwlwifi * AX210: allow concurrent P2P operation on DFS channels ==================== Signed-off-by: David S. Miller <[email protected]>
2 parents 8146c3f + 9685091 commit a27359a

Some content is hidden

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

67 files changed

+2785
-471
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1295,7 +1295,7 @@ static void ath10k_htt_rx_h_ppdu(struct ath10k *ar,
12951295
status->encoding = RX_ENC_LEGACY;
12961296
status->bw = RATE_INFO_BW_20;
12971297

1298-
status->flag &= ~RX_FLAG_MACTIME_END;
1298+
status->flag &= ~RX_FLAG_MACTIME;
12991299
status->flag |= RX_FLAG_NO_SIGNAL_VAL;
13001300

13011301
status->flag &= ~(RX_FLAG_AMPDU_IS_LAST);

drivers/net/wireless/intel/iwlwifi/fw/api/debug.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,12 @@ enum iwl_debug_cmds {
5959
* &struct iwl_dbg_dump_complete_cmd
6060
*/
6161
FW_DUMP_COMPLETE_CMD = 0xB,
62+
/**
63+
* @FW_CLEAR_BUFFER:
64+
* clears the firmware's internal buffer
65+
* no payload
66+
*/
67+
FW_CLEAR_BUFFER = 0xD,
6268
/**
6369
* @MFU_ASSERT_DUMP_NTF:
6470
* &struct iwl_mfu_assert_dump_notif

drivers/net/wireless/intel/iwlwifi/fw/api/nvm-reg.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,9 @@ struct iwl_nvm_access_complete_cmd {
269269
__le32 reserved;
270270
} __packed; /* NVM_ACCESS_COMPLETE_CMD_API_S_VER_1 */
271271

272+
#define IWL_MCC_US 0x5553
273+
#define IWL_MCC_CANADA 0x4341
274+
272275
/**
273276
* struct iwl_mcc_update_cmd - Request the device to update geographic
274277
* regulatory profile according to the given MCC (Mobile Country Code).

drivers/net/wireless/intel/iwlwifi/fw/dbg.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3401,6 +3401,15 @@ void iwl_fw_dbg_clear_monitor_buf(struct iwl_fw_runtime *fwrt)
34013401
struct iwl_fw_dbg_params params = {0};
34023402

34033403
iwl_fw_dbg_stop_sync(fwrt);
3404+
3405+
if (fw_has_api(&fwrt->fw->ucode_capa,
3406+
IWL_UCODE_TLV_API_INT_DBG_BUF_CLEAR)) {
3407+
struct iwl_host_cmd hcmd = {
3408+
.id = WIDE_ID(DEBUG_GROUP, FW_CLEAR_BUFFER),
3409+
};
3410+
iwl_trans_send_cmd(fwrt->trans, &hcmd);
3411+
}
3412+
34043413
iwl_dbg_tlv_init_cfg(fwrt);
34053414
iwl_fw_dbg_stop_restart_recording(fwrt, &params, false);
34063415
}

drivers/net/wireless/intel/iwlwifi/fw/file.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,8 @@ typedef unsigned int __bitwise iwl_ucode_tlv_api_t;
245245
* SCAN_CONFIG_DB_CMD_API_S.
246246
* @IWL_UCODE_TLV_API_NO_HOST_DISABLE_TX: Firmware offloaded the station disable tx
247247
* logic.
248+
* @IWL_UCODE_TLV_API_INT_DBG_BUF_CLEAR: Firmware supports clearing the debug
249+
* internal buffer
248250
*
249251
* @NUM_IWL_UCODE_TLV_API: number of bits used
250252
*/
@@ -282,7 +284,9 @@ enum iwl_ucode_tlv_api {
282284
IWL_UCODE_TLV_API_ADWELL_HB_DEF_N_AP = (__force iwl_ucode_tlv_api_t)57,
283285
IWL_UCODE_TLV_API_SCAN_EXT_CHAN_VER = (__force iwl_ucode_tlv_api_t)58,
284286
IWL_UCODE_TLV_API_BAND_IN_RX_DATA = (__force iwl_ucode_tlv_api_t)59,
287+
/* API Set 2 */
285288
IWL_UCODE_TLV_API_NO_HOST_DISABLE_TX = (__force iwl_ucode_tlv_api_t)66,
289+
IWL_UCODE_TLV_API_INT_DBG_BUF_CLEAR = (__force iwl_ucode_tlv_api_t)67,
286290

287291
NUM_IWL_UCODE_TLV_API
288292
/*

drivers/net/wireless/intel/iwlwifi/iwl-config.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -377,7 +377,6 @@ struct iwl_cfg {
377377
u16 nvm_calib_ver;
378378
u32 rx_with_siso_diversity:1,
379379
tx_with_siso_diversity:1,
380-
bt_shared_single_ant:1,
381380
internal_wimax_coex:1,
382381
host_interrupt_operation_mode:1,
383382
high_temp:1,

drivers/net/wireless/intel/iwlwifi/iwl-csr.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -354,6 +354,8 @@ enum {
354354
#define CSR_HW_RF_ID_TYPE_GF (0x0010D000)
355355
#define CSR_HW_RF_ID_TYPE_GF4 (0x0010E000)
356356
#define CSR_HW_RF_ID_TYPE_MS (0x00111000)
357+
#define CSR_HW_RF_ID_TYPE_FM (0x00112000)
358+
#define CSR_HW_RF_ID_TYPE_WP (0x00113000)
357359

358360
/* HW_RF CHIP STEP */
359361
#define CSR_HW_RF_STEP(_val) (((_val) >> 8) & 0xF)

drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1609,10 +1609,17 @@ static u32 iwl_nvm_get_regdom_bw_flags(const u16 *nvm_chan,
16091609
/* Set the GO concurrent flag only in case that NO_IR is set.
16101610
* Otherwise it is meaningless
16111611
*/
1612-
if ((nvm_flags & NVM_CHANNEL_GO_CONCURRENT) &&
1613-
(flags & NL80211_RRF_NO_IR))
1614-
flags |= NL80211_RRF_GO_CONCURRENT;
1615-
1612+
if ((nvm_flags & NVM_CHANNEL_GO_CONCURRENT)) {
1613+
if (flags & NL80211_RRF_NO_IR)
1614+
flags |= NL80211_RRF_GO_CONCURRENT;
1615+
if (flags & NL80211_RRF_DFS) {
1616+
flags |= NL80211_RRF_DFS_CONCURRENT;
1617+
/* Our device doesn't set active bit for DFS channels
1618+
* however, once marked as DFS no-ir is not needed.
1619+
*/
1620+
flags &= ~NL80211_RRF_NO_IR;
1621+
}
1622+
}
16161623
/*
16171624
* reg_capa is per regulatory domain so apply it for every channel
16181625
*/

drivers/net/wireless/intel/iwlwifi/iwl-trans.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1316,7 +1316,7 @@ iwl_trans_get_rxq_dma_data(struct iwl_trans *trans, int queue,
13161316
struct iwl_trans_rxq_dma_data *data)
13171317
{
13181318
if (WARN_ON_ONCE(!trans->ops->rxq_dma_data))
1319-
return -ENOTSUPP;
1319+
return -EOPNOTSUPP;
13201320

13211321
return trans->ops->rxq_dma_data(trans, queue, data);
13221322
}
@@ -1338,7 +1338,7 @@ iwl_trans_txq_alloc(struct iwl_trans *trans,
13381338
might_sleep();
13391339

13401340
if (WARN_ON_ONCE(!trans->ops->txq_alloc))
1341-
return -ENOTSUPP;
1341+
return -EOPNOTSUPP;
13421342

13431343
if (WARN_ON_ONCE(trans->state != IWL_TRANS_FW_ALIVE)) {
13441344
IWL_ERR(trans, "%s bad state = %d\n", __func__, trans->state);
@@ -1404,7 +1404,7 @@ static inline int iwl_trans_wait_tx_queues_empty(struct iwl_trans *trans,
14041404
u32 txqs)
14051405
{
14061406
if (WARN_ON_ONCE(!trans->ops->wait_tx_queues_empty))
1407-
return -ENOTSUPP;
1407+
return -EOPNOTSUPP;
14081408

14091409
/* No need to wait if the firmware is not alive */
14101410
if (trans->state != IWL_TRANS_FW_ALIVE) {
@@ -1418,7 +1418,7 @@ static inline int iwl_trans_wait_tx_queues_empty(struct iwl_trans *trans,
14181418
static inline int iwl_trans_wait_txq_empty(struct iwl_trans *trans, int queue)
14191419
{
14201420
if (WARN_ON_ONCE(!trans->ops->wait_txq_empty))
1421-
return -ENOTSUPP;
1421+
return -EOPNOTSUPP;
14221422

14231423
if (WARN_ON_ONCE(trans->state != IWL_TRANS_FW_ALIVE)) {
14241424
IWL_ERR(trans, "%s bad state = %d\n", __func__, trans->state);

drivers/net/wireless/intel/iwlwifi/mvm/coex.c

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
22
/*
3-
* Copyright (C) 2013-2014, 2018-2020, 2022 Intel Corporation
3+
* Copyright (C) 2013-2014, 2018-2020, 2022-2023 Intel Corporation
44
* Copyright (C) 2013-2015 Intel Mobile Communications GmbH
55
*/
66
#include <linux/ieee80211.h>
@@ -116,11 +116,6 @@ iwl_get_coex_type(struct iwl_mvm *mvm, const struct ieee80211_vif *vif)
116116

117117
ret = BT_COEX_TX_DIS_LUT;
118118

119-
if (mvm->cfg->bt_shared_single_ant) {
120-
rcu_read_unlock();
121-
return ret;
122-
}
123-
124119
phy_ctx_id = *((u16 *)chanctx_conf->drv_priv);
125120
primary_ch_phy_id = le32_to_cpu(mvm->last_bt_ci_cmd.primary_ch_phy_id);
126121
secondary_ch_phy_id =
@@ -383,13 +378,12 @@ static void iwl_mvm_bt_notif_per_link(struct iwl_mvm *mvm,
383378
/*
384379
* don't reduce the Tx power if one of these is true:
385380
* we are in LOOSE
386-
* single share antenna product
387381
* BT is inactive
388382
* we are not associated
389383
*/
390384
if (iwl_get_coex_type(mvm, vif) == BT_COEX_LOOSE_LUT ||
391-
mvm->cfg->bt_shared_single_ant || !vif->cfg.assoc ||
392-
le32_to_cpu(mvm->last_bt_notif.bt_activity_grading) == BT_OFF) {
385+
le32_to_cpu(mvm->last_bt_notif.bt_activity_grading) == BT_OFF ||
386+
!vif->cfg.assoc) {
393387
iwl_mvm_bt_coex_reduced_txp(mvm, link_info->ap_sta_id, false);
394388
/* FIXME: should this be per link? */
395389
iwl_mvm_bt_coex_enable_rssi_event(mvm, vif, false, 0);
@@ -570,7 +564,7 @@ void iwl_mvm_bt_rssi_event(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
570564
* Check if rssi is good enough for reduced Tx power, but not in loose
571565
* scheme.
572566
*/
573-
if (rssi_event == RSSI_EVENT_LOW || mvm->cfg->bt_shared_single_ant ||
567+
if (rssi_event == RSSI_EVENT_LOW ||
574568
iwl_get_coex_type(mvm, vif) == BT_COEX_LOOSE_LUT)
575569
ret = iwl_mvm_bt_coex_reduced_txp(mvm,
576570
mvmvif->deflink.ap_sta_id,
@@ -639,10 +633,6 @@ bool iwl_mvm_bt_coex_is_mimo_allowed(struct iwl_mvm *mvm,
639633

640634
bool iwl_mvm_bt_coex_is_ant_avail(struct iwl_mvm *mvm, u8 ant)
641635
{
642-
/* there is no other antenna, shared antenna is always available */
643-
if (mvm->cfg->bt_shared_single_ant)
644-
return true;
645-
646636
if (ant & mvm->cfg->non_shared_ant)
647637
return true;
648638

@@ -652,10 +642,6 @@ bool iwl_mvm_bt_coex_is_ant_avail(struct iwl_mvm *mvm, u8 ant)
652642

653643
bool iwl_mvm_bt_coex_is_shared_ant_avail(struct iwl_mvm *mvm)
654644
{
655-
/* there is no other antenna, shared antenna is always available */
656-
if (mvm->cfg->bt_shared_single_ant)
657-
return true;
658-
659645
return le32_to_cpu(mvm->last_bt_notif.bt_activity_grading) < BT_HIGH_TRAFFIC;
660646
}
661647

0 commit comments

Comments
 (0)