Skip to content

Commit 0303b3a

Browse files
committed
Merge tag 'wireless-drivers-2020-04-24' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers
Kalle Valo says: ==================== wireless-drivers fixes for v5.7 Second set of fixes for v5.7. Quite a few iwlwifi fixes and some maintainers file updates. iwlwifi * fix a bug with kmemdup() error handling * fix a DMA pool warning about unfreed memory * fix beacon statistics * fix a theoritical bug in device initialisation * fix queue limit handling and inactive TID removal * disable ACK Enabled Aggregation which was enabled by accident * fix transmit power setting reading from BIOS with certain versions ==================== Signed-off-by: David S. Miller <[email protected]>
2 parents a6d0b83 + 10e41f3 commit 0303b3a

File tree

10 files changed

+80
-55
lines changed

10 files changed

+80
-55
lines changed

MAINTAINERS

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ F: drivers/net/hamradio/6pack.c
189189
M: Johannes Berg <[email protected]>
190190
191191
S: Maintained
192-
W: http://wireless.kernel.org/
192+
W: https://wireless.wiki.kernel.org/
193193
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git
194194
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git
195195
F: Documentation/driver-api/80211/cfg80211.rst
@@ -505,7 +505,7 @@ F: drivers/hwmon/adm1029.c
505505
ADM8211 WIRELESS DRIVER
506506
507507
S: Orphan
508-
W: http://wireless.kernel.org/
508+
W: https://wireless.wiki.kernel.org/
509509
F: drivers/net/wireless/admtek/adm8211.*
510510

511511
ADP1653 FLASH CONTROLLER DRIVER
@@ -2847,14 +2847,14 @@ M: Nick Kossifidis <[email protected]>
28472847
M: Luis Chamberlain <[email protected]>
28482848
28492849
S: Maintained
2850-
W: http://wireless.kernel.org/en/users/Drivers/ath5k
2850+
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath5k
28512851
F: drivers/net/wireless/ath/ath5k/
28522852

28532853
ATHEROS ATH6KL WIRELESS DRIVER
28542854
M: Kalle Valo <[email protected]>
28552855
28562856
S: Supported
2857-
W: http://wireless.kernel.org/en/users/Drivers/ath6kl
2857+
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath6kl
28582858
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
28592859
F: drivers/net/wireless/ath/ath6kl/
28602860

@@ -3017,15 +3017,15 @@ B43 WIRELESS DRIVER
30173017
30183018
30193019
S: Odd Fixes
3020-
W: http://wireless.kernel.org/en/users/Drivers/b43
3020+
W: https://wireless.wiki.kernel.org/en/users/Drivers/b43
30213021
F: drivers/net/wireless/broadcom/b43/
30223022

30233023
B43LEGACY WIRELESS DRIVER
30243024
M: Larry Finger <[email protected]>
30253025
30263026
30273027
S: Maintained
3028-
W: http://wireless.kernel.org/en/users/Drivers/b43
3028+
W: https://wireless.wiki.kernel.org/en/users/Drivers/b43
30293029
F: drivers/net/wireless/broadcom/b43legacy/
30303030

30313031
BACKLIGHT CLASS/SUBSYSTEM
@@ -3840,7 +3840,7 @@ CARL9170 LINUX COMMUNITY WIRELESS DRIVER
38403840
M: Christian Lamparter <[email protected]>
38413841
38423842
S: Maintained
3843-
W: http://wireless.kernel.org/en/users/Drivers/carl9170
3843+
W: https://wireless.wiki.kernel.org/en/users/Drivers/carl9170
38443844
F: drivers/net/wireless/ath/carl9170/
38453845

38463846
CAVIUM I2C DRIVER
@@ -10065,7 +10065,7 @@ MAC80211
1006510065
M: Johannes Berg <[email protected]>
1006610066
1006710067
S: Maintained
10068-
W: http://wireless.kernel.org/
10068+
W: https://wireless.wiki.kernel.org/
1006910069
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git
1007010070
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git
1007110071
F: Documentation/networking/mac80211-injection.txt
@@ -10695,7 +10695,6 @@ MEDIATEK MT76 WIRELESS LAN DRIVER
1069510695
M: Felix Fietkau <[email protected]>
1069610696
M: Lorenzo Bianconi <[email protected]>
1069710697
R: Ryder Lee <[email protected]>
10698-
R: Roy Luo <[email protected]>
1069910698
1070010699
S: Maintained
1070110700
F: drivers/net/wireless/mediatek/mt76/
@@ -12646,7 +12645,7 @@ F: fs/orangefs/
1264612645
ORINOCO DRIVER
1264712646
1264812647
S: Orphan
12649-
W: http://wireless.kernel.org/en/users/Drivers/orinoco
12648+
W: https://wireless.wiki.kernel.org/en/users/Drivers/orinoco
1265012649
W: http://www.nongnu.org/orinoco/
1265112650
F: drivers/net/wireless/intersil/orinoco/
1265212651

@@ -12672,7 +12671,7 @@ P54 WIRELESS DRIVER
1267212671
M: Christian Lamparter <[email protected]>
1267312672
1267412673
S: Maintained
12675-
W: http://wireless.kernel.org/en/users/Drivers/p54
12674+
W: https://wireless.wiki.kernel.org/en/users/Drivers/p54
1267612675
F: drivers/net/wireless/intersil/p54/
1267712676

1267812677
PACKING
@@ -13593,7 +13592,7 @@ PRISM54 WIRELESS DRIVER
1359313592
M: Luis Chamberlain <[email protected]>
1359413593
1359513594
S: Obsolete
13596-
W: http://wireless.kernel.org/en/users/Drivers/p54
13595+
W: https://wireless.wiki.kernel.org/en/users/Drivers/p54
1359713596
F: drivers/net/wireless/intersil/prism54/
1359813597

1359913598
PROC FILESYSTEM
@@ -13933,7 +13932,7 @@ QUALCOMM ATHEROS ATH10K WIRELESS DRIVER
1393313932
M: Kalle Valo <[email protected]>
1393413933
1393513934
S: Supported
13936-
W: http://wireless.kernel.org/en/users/Drivers/ath10k
13935+
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath10k
1393713936
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
1393813937
F: drivers/net/wireless/ath/ath10k/
1393913938

@@ -13948,7 +13947,7 @@ QUALCOMM ATHEROS ATH9K WIRELESS DRIVER
1394813947
M: QCA ath9k Development <[email protected]>
1394913948
1395013949
S: Supported
13951-
W: http://wireless.kernel.org/en/users/Drivers/ath9k
13950+
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath9k
1395213951
F: drivers/net/wireless/ath/ath9k/
1395313952

1395413953
QUALCOMM CAMERA SUBSYSTEM DRIVER
@@ -14045,13 +14044,12 @@ QUALCOMM WCN36XX WIRELESS DRIVER
1404514044
M: Kalle Valo <[email protected]>
1404614045
1404714046
S: Supported
14048-
W: http://wireless.kernel.org/en/users/Drivers/wcn36xx
14047+
W: https://wireless.wiki.kernel.org/en/users/Drivers/wcn36xx
1404914048
T: git git://github.com/KrasnikovEugene/wcn36xx.git
1405014049
F: drivers/net/wireless/ath/wcn36xx/
1405114050

1405214051
QUANTENNA QTNFMAC WIRELESS DRIVER
1405314052
M: Igor Mitsyanko <[email protected]>
14054-
M: Avinash Patil <[email protected]>
1405514053
M: Sergey Matyukevich <[email protected]>
1405614054
1405714055
S: Maintained
@@ -14273,7 +14271,7 @@ REALTEK WIRELESS DRIVER (rtlwifi family)
1427314271
M: Ping-Ke Shih <[email protected]>
1427414272
1427514273
S: Maintained
14276-
W: http://wireless.kernel.org/
14274+
W: https://wireless.wiki.kernel.org/
1427714275
T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
1427814276
F: drivers/net/wireless/realtek/rtlwifi/
1427914277

@@ -14408,7 +14406,7 @@ RFKILL
1440814406
M: Johannes Berg <[email protected]>
1440914407
1441014408
S: Maintained
14411-
W: http://wireless.kernel.org/
14409+
W: https://wireless.wiki.kernel.org/
1441214410
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git
1441314411
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git
1441414412
F: Documentation/ABI/stable/sysfs-class-rfkill
@@ -14557,7 +14555,7 @@ F: drivers/media/dvb-frontends/rtl2832_sdr*
1455714555
RTL8180 WIRELESS DRIVER
1455814556
1455914557
S: Orphan
14560-
W: http://wireless.kernel.org/
14558+
W: https://wireless.wiki.kernel.org/
1456114559
T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
1456214560
F: drivers/net/wireless/realtek/rtl818x/rtl8180/
1456314561

@@ -14567,7 +14565,7 @@ M: Hin-Tak Leung <[email protected]>
1456714565
M: Larry Finger <[email protected]>
1456814566
1456914567
S: Maintained
14570-
W: http://wireless.kernel.org/
14568+
W: https://wireless.wiki.kernel.org/
1457114569
T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
1457214570
F: drivers/net/wireless/realtek/rtl818x/rtl8187/
1457314571

@@ -16922,8 +16920,8 @@ F: drivers/media/platform/ti-vpe/
1692216920
TI WILINK WIRELESS DRIVERS
1692316921
1692416922
S: Orphan
16925-
W: http://wireless.kernel.org/en/users/Drivers/wl12xx
16926-
W: http://wireless.kernel.org/en/users/Drivers/wl1251
16923+
W: https://wireless.wiki.kernel.org/en/users/Drivers/wl12xx
16924+
W: https://wireless.wiki.kernel.org/en/users/Drivers/wl1251
1692716925
T: git git://git.kernel.org/pub/scm/linux/kernel/git/luca/wl12xx.git
1692816926
F: drivers/net/wireless/ti/
1692916927
F: include/linux/wl12xx.h
@@ -18205,7 +18203,7 @@ M: Maya Erez <[email protected]>
1820518203
1820618204
1820718205
S: Supported
18208-
W: http://wireless.kernel.org/en/users/Drivers/wil6210
18206+
W: https://wireless.wiki.kernel.org/en/users/Drivers/wil6210
1820918207
F: drivers/net/wireless/ath/wil6210/
1821018208

1821118209
WIMAX STACK

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

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -296,9 +296,14 @@ int iwl_sar_select_profile(struct iwl_fw_runtime *fwrt,
296296
if (!prof->enabled) {
297297
IWL_DEBUG_RADIO(fwrt, "SAR profile %d is disabled.\n",
298298
profs[i]);
299-
/* if one of the profiles is disabled, we fail all */
300-
return -ENOENT;
299+
/*
300+
* if one of the profiles is disabled, we
301+
* ignore all of them and return 1 to
302+
* differentiate disabled from other failures.
303+
*/
304+
return 1;
301305
}
306+
302307
IWL_DEBUG_INFO(fwrt,
303308
"SAR EWRD: chain %d profile index %d\n",
304309
i, profs[i]);

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
* Copyright(c) 2007 - 2014 Intel Corporation. All rights reserved.
99
* Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
1010
* Copyright(c) 2016 - 2017 Intel Deutschland GmbH
11-
* Copyright(c) 2019 Intel Corporation
11+
* Copyright(c) 2019 - 2020 Intel Corporation
1212
*
1313
* This program is free software; you can redistribute it and/or modify
1414
* it under the terms of version 2 of the GNU General Public License as
@@ -31,7 +31,7 @@
3131
* Copyright(c) 2005 - 2014 Intel Corporation. All rights reserved.
3232
* Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
3333
* Copyright(c) 2016 - 2017 Intel Deutschland GmbH
34-
* Copyright(c) 2019 Intel Corporation
34+
* Copyright(c) 2019 - 2020 Intel Corporation
3535
* All rights reserved.
3636
*
3737
* Redistribution and use in source and binary forms, with or without
@@ -99,7 +99,7 @@ enum iwl_mvm_dqa_txq {
9999
IWL_MVM_DQA_MAX_MGMT_QUEUE = 8,
100100
IWL_MVM_DQA_AP_PROBE_RESP_QUEUE = 9,
101101
IWL_MVM_DQA_MIN_DATA_QUEUE = 10,
102-
IWL_MVM_DQA_MAX_DATA_QUEUE = 31,
102+
IWL_MVM_DQA_MAX_DATA_QUEUE = 30,
103103
};
104104

105105
enum iwl_mvm_tx_fifo {

drivers/net/wireless/intel/iwlwifi/iwl-drv.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1467,7 +1467,7 @@ static void iwl_req_fw_callback(const struct firmware *ucode_raw, void *context)
14671467
kmemdup(pieces->dbg_conf_tlv[i],
14681468
pieces->dbg_conf_tlv_len[i],
14691469
GFP_KERNEL);
1470-
if (!pieces->dbg_conf_tlv[i])
1470+
if (!drv->fw.dbg.conf_tlv[i])
14711471
goto out_free_fw;
14721472
}
14731473
}

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

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -532,8 +532,7 @@ static struct ieee80211_sband_iftype_data iwl_he_capa[] = {
532532
IEEE80211_HE_MAC_CAP1_TF_MAC_PAD_DUR_16US |
533533
IEEE80211_HE_MAC_CAP1_MULTI_TID_AGG_RX_QOS_8,
534534
.mac_cap_info[2] =
535-
IEEE80211_HE_MAC_CAP2_32BIT_BA_BITMAP |
536-
IEEE80211_HE_MAC_CAP2_ACK_EN,
535+
IEEE80211_HE_MAC_CAP2_32BIT_BA_BITMAP,
537536
.mac_cap_info[3] =
538537
IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
539538
IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_2,
@@ -617,8 +616,7 @@ static struct ieee80211_sband_iftype_data iwl_he_capa[] = {
617616
IEEE80211_HE_MAC_CAP1_TF_MAC_PAD_DUR_16US |
618617
IEEE80211_HE_MAC_CAP1_MULTI_TID_AGG_RX_QOS_8,
619618
.mac_cap_info[2] =
620-
IEEE80211_HE_MAC_CAP2_BSR |
621-
IEEE80211_HE_MAC_CAP2_ACK_EN,
619+
IEEE80211_HE_MAC_CAP2_BSR,
622620
.mac_cap_info[3] =
623621
IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
624622
IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_2,

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

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -727,6 +727,7 @@ int iwl_mvm_sar_select_profile(struct iwl_mvm *mvm, int prof_a, int prof_b)
727727
struct iwl_dev_tx_power_cmd_v4 v4;
728728
} cmd;
729729

730+
int ret;
730731
u16 len = 0;
731732

732733
cmd.v5.v3.set_mode = cpu_to_le32(IWL_TX_POWER_MODE_SET_CHAINS);
@@ -741,9 +742,14 @@ int iwl_mvm_sar_select_profile(struct iwl_mvm *mvm, int prof_a, int prof_b)
741742
len = sizeof(cmd.v4.v3);
742743

743744

744-
if (iwl_sar_select_profile(&mvm->fwrt, cmd.v5.v3.per_chain_restriction,
745-
prof_a, prof_b))
746-
return -ENOENT;
745+
ret = iwl_sar_select_profile(&mvm->fwrt,
746+
cmd.v5.v3.per_chain_restriction,
747+
prof_a, prof_b);
748+
749+
/* return on error or if the profile is disabled (positive number) */
750+
if (ret)
751+
return ret;
752+
747753
IWL_DEBUG_RADIO(mvm, "Sending REDUCE_TX_POWER_CMD per chain\n");
748754
return iwl_mvm_send_cmd_pdu(mvm, REDUCE_TX_POWER_CMD, 0, len, &cmd);
749755
}
@@ -1034,16 +1040,7 @@ static int iwl_mvm_sar_init(struct iwl_mvm *mvm)
10341040
"EWRD SAR BIOS table invalid or unavailable. (%d)\n",
10351041
ret);
10361042

1037-
ret = iwl_mvm_sar_select_profile(mvm, 1, 1);
1038-
/*
1039-
* If we don't have profile 0 from BIOS, just skip it. This
1040-
* means that SAR Geo will not be enabled either, even if we
1041-
* have other valid profiles.
1042-
*/
1043-
if (ret == -ENOENT)
1044-
return 1;
1045-
1046-
return ret;
1043+
return iwl_mvm_sar_select_profile(mvm, 1, 1);
10471044
}
10481045

10491046
static int iwl_mvm_load_rt_fw(struct iwl_mvm *mvm)
@@ -1272,7 +1269,7 @@ int iwl_mvm_up(struct iwl_mvm *mvm)
12721269
ret = iwl_mvm_sar_init(mvm);
12731270
if (ret == 0) {
12741271
ret = iwl_mvm_sar_geo_init(mvm);
1275-
} else if (ret > 0 && !iwl_sar_get_wgds_table(&mvm->fwrt)) {
1272+
} else if (ret == -ENOENT && !iwl_sar_get_wgds_table(&mvm->fwrt)) {
12761273
/*
12771274
* If basic SAR is not available, we check for WGDS,
12781275
* which should *not* be available either. If it is

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

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
* Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
99
* Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
1010
* Copyright(c) 2016 - 2017 Intel Deutschland GmbH
11-
* Copyright(c) 2018 - 2019 Intel Corporation
11+
* Copyright(c) 2018 - 2020 Intel Corporation
1212
*
1313
* This program is free software; you can redistribute it and/or modify
1414
* it under the terms of version 2 of the GNU General Public License as
@@ -31,7 +31,7 @@
3131
* Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
3232
* Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
3333
* Copyright(c) 2016 - 2017 Intel Deutschland GmbH
34-
* Copyright(c) 2018 - 2019 Intel Corporation
34+
* Copyright(c) 2018 - 2020 Intel Corporation
3535
* All rights reserved.
3636
*
3737
* Redistribution and use in source and binary forms, with or without
@@ -566,6 +566,7 @@ void iwl_mvm_rx_rx_mpdu(struct iwl_mvm *mvm, struct napi_struct *napi,
566566

567567
struct iwl_mvm_stat_data {
568568
struct iwl_mvm *mvm;
569+
__le32 flags;
569570
__le32 mac_id;
570571
u8 beacon_filter_average_energy;
571572
void *general;
@@ -606,6 +607,13 @@ static void iwl_mvm_stat_iterator(void *_data, u8 *mac,
606607
-general->beacon_average_energy[vif_id];
607608
}
608609

610+
/* make sure that beacon statistics don't go backwards with TCM
611+
* request to clear statistics
612+
*/
613+
if (le32_to_cpu(data->flags) & IWL_STATISTICS_REPLY_FLG_CLEAR)
614+
mvmvif->beacon_stats.accu_num_beacons +=
615+
mvmvif->beacon_stats.num_beacons;
616+
609617
if (mvmvif->id != id)
610618
return;
611619

@@ -763,6 +771,7 @@ void iwl_mvm_handle_rx_statistics(struct iwl_mvm *mvm,
763771

764772
flags = stats->flag;
765773
}
774+
data.flags = flags;
766775

767776
iwl_mvm_rx_stats_check_trigger(mvm, pkt);
768777

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

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -722,6 +722,11 @@ static int iwl_mvm_find_free_queue(struct iwl_mvm *mvm, u8 sta_id,
722722

723723
lockdep_assert_held(&mvm->mutex);
724724

725+
if (WARN(maxq >= mvm->trans->trans_cfg->base_params->num_of_queues,
726+
"max queue %d >= num_of_queues (%d)", maxq,
727+
mvm->trans->trans_cfg->base_params->num_of_queues))
728+
maxq = mvm->trans->trans_cfg->base_params->num_of_queues - 1;
729+
725730
/* This should not be hit with new TX path */
726731
if (WARN_ON(iwl_mvm_has_new_tx_api(mvm)))
727732
return -ENOSPC;
@@ -1164,9 +1169,9 @@ static int iwl_mvm_inactivity_check(struct iwl_mvm *mvm, u8 alloc_for_sta)
11641169
inactive_tid_bitmap,
11651170
&unshare_queues,
11661171
&changetid_queues);
1167-
if (ret >= 0 && free_queue < 0) {
1172+
if (ret && free_queue < 0) {
11681173
queue_owner = sta;
1169-
free_queue = ret;
1174+
free_queue = i;
11701175
}
11711176
/* only unlock sta lock - we still need the queue info lock */
11721177
spin_unlock_bh(&mvmsta->lock);

0 commit comments

Comments
 (0)