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 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAABAgAGBQJeon8dAAoJEG4XJFUm622b3I4H/2qSe/+choibIJj1QLsPuFzD M4vYMulQO1GjKzn+t9cVp3D30oKPUKdE2hQyXQ/10YLoovfe1OfAsKxL/IDVlb4d h4e3qf+lWslaz8X9gMfN0fU6M+fNsmcrbvce5K9V2cun2WReuTprgkdQv9ErQQkF JB58pbLV1x3VZFaBttVFMtJ6fA9FEFlX/cw197tPtB7t20cI3i+km92bIcwYf6XS ifSIRUWgH8KpPE2nhQUpR7CxaoCsqvuM+HMn2nMwJX8j80Ot6x+S8m+2pTEObonA XDXwOp7htfAx+xA+Z6nY8UIbMOFpFoQAwFpzd5P54L3uw5PX/0b0vkpfOu2k9l0= =bqg+ -----END PGP SIGNATURE----- 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 <davem@davemloft.net>
This commit is contained in:
commit
0303b3a168
44
MAINTAINERS
44
MAINTAINERS
|
@ -189,7 +189,7 @@ F: drivers/net/hamradio/6pack.c
|
||||||
M: Johannes Berg <johannes@sipsolutions.net>
|
M: Johannes Berg <johannes@sipsolutions.net>
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
W: http://wireless.kernel.org/
|
W: https://wireless.wiki.kernel.org/
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git
|
||||||
F: Documentation/driver-api/80211/cfg80211.rst
|
F: Documentation/driver-api/80211/cfg80211.rst
|
||||||
|
@ -505,7 +505,7 @@ F: drivers/hwmon/adm1029.c
|
||||||
ADM8211 WIRELESS DRIVER
|
ADM8211 WIRELESS DRIVER
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Orphan
|
S: Orphan
|
||||||
W: http://wireless.kernel.org/
|
W: https://wireless.wiki.kernel.org/
|
||||||
F: drivers/net/wireless/admtek/adm8211.*
|
F: drivers/net/wireless/admtek/adm8211.*
|
||||||
|
|
||||||
ADP1653 FLASH CONTROLLER DRIVER
|
ADP1653 FLASH CONTROLLER DRIVER
|
||||||
|
@ -2847,14 +2847,14 @@ M: Nick Kossifidis <mickflemm@gmail.com>
|
||||||
M: Luis Chamberlain <mcgrof@kernel.org>
|
M: Luis Chamberlain <mcgrof@kernel.org>
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
W: http://wireless.kernel.org/en/users/Drivers/ath5k
|
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath5k
|
||||||
F: drivers/net/wireless/ath/ath5k/
|
F: drivers/net/wireless/ath/ath5k/
|
||||||
|
|
||||||
ATHEROS ATH6KL WIRELESS DRIVER
|
ATHEROS ATH6KL WIRELESS DRIVER
|
||||||
M: Kalle Valo <kvalo@codeaurora.org>
|
M: Kalle Valo <kvalo@codeaurora.org>
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
W: http://wireless.kernel.org/en/users/Drivers/ath6kl
|
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath6kl
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
|
||||||
F: drivers/net/wireless/ath/ath6kl/
|
F: drivers/net/wireless/ath/ath6kl/
|
||||||
|
|
||||||
|
@ -3017,7 +3017,7 @@ B43 WIRELESS DRIVER
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
L: b43-dev@lists.infradead.org
|
L: b43-dev@lists.infradead.org
|
||||||
S: Odd Fixes
|
S: Odd Fixes
|
||||||
W: http://wireless.kernel.org/en/users/Drivers/b43
|
W: https://wireless.wiki.kernel.org/en/users/Drivers/b43
|
||||||
F: drivers/net/wireless/broadcom/b43/
|
F: drivers/net/wireless/broadcom/b43/
|
||||||
|
|
||||||
B43LEGACY WIRELESS DRIVER
|
B43LEGACY WIRELESS DRIVER
|
||||||
|
@ -3025,7 +3025,7 @@ M: Larry Finger <Larry.Finger@lwfinger.net>
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
L: b43-dev@lists.infradead.org
|
L: b43-dev@lists.infradead.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
W: http://wireless.kernel.org/en/users/Drivers/b43
|
W: https://wireless.wiki.kernel.org/en/users/Drivers/b43
|
||||||
F: drivers/net/wireless/broadcom/b43legacy/
|
F: drivers/net/wireless/broadcom/b43legacy/
|
||||||
|
|
||||||
BACKLIGHT CLASS/SUBSYSTEM
|
BACKLIGHT CLASS/SUBSYSTEM
|
||||||
|
@ -3840,7 +3840,7 @@ CARL9170 LINUX COMMUNITY WIRELESS DRIVER
|
||||||
M: Christian Lamparter <chunkeey@googlemail.com>
|
M: Christian Lamparter <chunkeey@googlemail.com>
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
W: http://wireless.kernel.org/en/users/Drivers/carl9170
|
W: https://wireless.wiki.kernel.org/en/users/Drivers/carl9170
|
||||||
F: drivers/net/wireless/ath/carl9170/
|
F: drivers/net/wireless/ath/carl9170/
|
||||||
|
|
||||||
CAVIUM I2C DRIVER
|
CAVIUM I2C DRIVER
|
||||||
|
@ -10065,7 +10065,7 @@ MAC80211
|
||||||
M: Johannes Berg <johannes@sipsolutions.net>
|
M: Johannes Berg <johannes@sipsolutions.net>
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
W: http://wireless.kernel.org/
|
W: https://wireless.wiki.kernel.org/
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git
|
||||||
F: Documentation/networking/mac80211-injection.txt
|
F: Documentation/networking/mac80211-injection.txt
|
||||||
|
@ -10695,7 +10695,6 @@ MEDIATEK MT76 WIRELESS LAN DRIVER
|
||||||
M: Felix Fietkau <nbd@nbd.name>
|
M: Felix Fietkau <nbd@nbd.name>
|
||||||
M: Lorenzo Bianconi <lorenzo.bianconi83@gmail.com>
|
M: Lorenzo Bianconi <lorenzo.bianconi83@gmail.com>
|
||||||
R: Ryder Lee <ryder.lee@mediatek.com>
|
R: Ryder Lee <ryder.lee@mediatek.com>
|
||||||
R: Roy Luo <royluo@google.com>
|
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: drivers/net/wireless/mediatek/mt76/
|
F: drivers/net/wireless/mediatek/mt76/
|
||||||
|
@ -12646,7 +12645,7 @@ F: fs/orangefs/
|
||||||
ORINOCO DRIVER
|
ORINOCO DRIVER
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Orphan
|
S: Orphan
|
||||||
W: http://wireless.kernel.org/en/users/Drivers/orinoco
|
W: https://wireless.wiki.kernel.org/en/users/Drivers/orinoco
|
||||||
W: http://www.nongnu.org/orinoco/
|
W: http://www.nongnu.org/orinoco/
|
||||||
F: drivers/net/wireless/intersil/orinoco/
|
F: drivers/net/wireless/intersil/orinoco/
|
||||||
|
|
||||||
|
@ -12672,7 +12671,7 @@ P54 WIRELESS DRIVER
|
||||||
M: Christian Lamparter <chunkeey@googlemail.com>
|
M: Christian Lamparter <chunkeey@googlemail.com>
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
W: http://wireless.kernel.org/en/users/Drivers/p54
|
W: https://wireless.wiki.kernel.org/en/users/Drivers/p54
|
||||||
F: drivers/net/wireless/intersil/p54/
|
F: drivers/net/wireless/intersil/p54/
|
||||||
|
|
||||||
PACKING
|
PACKING
|
||||||
|
@ -13593,7 +13592,7 @@ PRISM54 WIRELESS DRIVER
|
||||||
M: Luis Chamberlain <mcgrof@kernel.org>
|
M: Luis Chamberlain <mcgrof@kernel.org>
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Obsolete
|
S: Obsolete
|
||||||
W: http://wireless.kernel.org/en/users/Drivers/p54
|
W: https://wireless.wiki.kernel.org/en/users/Drivers/p54
|
||||||
F: drivers/net/wireless/intersil/prism54/
|
F: drivers/net/wireless/intersil/prism54/
|
||||||
|
|
||||||
PROC FILESYSTEM
|
PROC FILESYSTEM
|
||||||
|
@ -13933,7 +13932,7 @@ QUALCOMM ATHEROS ATH10K WIRELESS DRIVER
|
||||||
M: Kalle Valo <kvalo@codeaurora.org>
|
M: Kalle Valo <kvalo@codeaurora.org>
|
||||||
L: ath10k@lists.infradead.org
|
L: ath10k@lists.infradead.org
|
||||||
S: Supported
|
S: Supported
|
||||||
W: http://wireless.kernel.org/en/users/Drivers/ath10k
|
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath10k
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
|
||||||
F: drivers/net/wireless/ath/ath10k/
|
F: drivers/net/wireless/ath/ath10k/
|
||||||
|
|
||||||
|
@ -13948,7 +13947,7 @@ QUALCOMM ATHEROS ATH9K WIRELESS DRIVER
|
||||||
M: QCA ath9k Development <ath9k-devel@qca.qualcomm.com>
|
M: QCA ath9k Development <ath9k-devel@qca.qualcomm.com>
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
W: http://wireless.kernel.org/en/users/Drivers/ath9k
|
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath9k
|
||||||
F: drivers/net/wireless/ath/ath9k/
|
F: drivers/net/wireless/ath/ath9k/
|
||||||
|
|
||||||
QUALCOMM CAMERA SUBSYSTEM DRIVER
|
QUALCOMM CAMERA SUBSYSTEM DRIVER
|
||||||
|
@ -14045,13 +14044,12 @@ QUALCOMM WCN36XX WIRELESS DRIVER
|
||||||
M: Kalle Valo <kvalo@codeaurora.org>
|
M: Kalle Valo <kvalo@codeaurora.org>
|
||||||
L: wcn36xx@lists.infradead.org
|
L: wcn36xx@lists.infradead.org
|
||||||
S: Supported
|
S: Supported
|
||||||
W: http://wireless.kernel.org/en/users/Drivers/wcn36xx
|
W: https://wireless.wiki.kernel.org/en/users/Drivers/wcn36xx
|
||||||
T: git git://github.com/KrasnikovEugene/wcn36xx.git
|
T: git git://github.com/KrasnikovEugene/wcn36xx.git
|
||||||
F: drivers/net/wireless/ath/wcn36xx/
|
F: drivers/net/wireless/ath/wcn36xx/
|
||||||
|
|
||||||
QUANTENNA QTNFMAC WIRELESS DRIVER
|
QUANTENNA QTNFMAC WIRELESS DRIVER
|
||||||
M: Igor Mitsyanko <imitsyanko@quantenna.com>
|
M: Igor Mitsyanko <imitsyanko@quantenna.com>
|
||||||
M: Avinash Patil <avinashp@quantenna.com>
|
|
||||||
M: Sergey Matyukevich <smatyukevich@quantenna.com>
|
M: Sergey Matyukevich <smatyukevich@quantenna.com>
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
@ -14273,7 +14271,7 @@ REALTEK WIRELESS DRIVER (rtlwifi family)
|
||||||
M: Ping-Ke Shih <pkshih@realtek.com>
|
M: Ping-Ke Shih <pkshih@realtek.com>
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
W: http://wireless.kernel.org/
|
W: https://wireless.wiki.kernel.org/
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
|
||||||
F: drivers/net/wireless/realtek/rtlwifi/
|
F: drivers/net/wireless/realtek/rtlwifi/
|
||||||
|
|
||||||
|
@ -14408,7 +14406,7 @@ RFKILL
|
||||||
M: Johannes Berg <johannes@sipsolutions.net>
|
M: Johannes Berg <johannes@sipsolutions.net>
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
W: http://wireless.kernel.org/
|
W: https://wireless.wiki.kernel.org/
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git
|
||||||
F: Documentation/ABI/stable/sysfs-class-rfkill
|
F: Documentation/ABI/stable/sysfs-class-rfkill
|
||||||
|
@ -14557,7 +14555,7 @@ F: drivers/media/dvb-frontends/rtl2832_sdr*
|
||||||
RTL8180 WIRELESS DRIVER
|
RTL8180 WIRELESS DRIVER
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Orphan
|
S: Orphan
|
||||||
W: http://wireless.kernel.org/
|
W: https://wireless.wiki.kernel.org/
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
|
||||||
F: drivers/net/wireless/realtek/rtl818x/rtl8180/
|
F: drivers/net/wireless/realtek/rtl818x/rtl8180/
|
||||||
|
|
||||||
|
@ -14567,7 +14565,7 @@ M: Hin-Tak Leung <htl10@users.sourceforge.net>
|
||||||
M: Larry Finger <Larry.Finger@lwfinger.net>
|
M: Larry Finger <Larry.Finger@lwfinger.net>
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
W: http://wireless.kernel.org/
|
W: https://wireless.wiki.kernel.org/
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
|
||||||
F: drivers/net/wireless/realtek/rtl818x/rtl8187/
|
F: drivers/net/wireless/realtek/rtl818x/rtl8187/
|
||||||
|
|
||||||
|
@ -16922,8 +16920,8 @@ F: drivers/media/platform/ti-vpe/
|
||||||
TI WILINK WIRELESS DRIVERS
|
TI WILINK WIRELESS DRIVERS
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Orphan
|
S: Orphan
|
||||||
W: http://wireless.kernel.org/en/users/Drivers/wl12xx
|
W: https://wireless.wiki.kernel.org/en/users/Drivers/wl12xx
|
||||||
W: http://wireless.kernel.org/en/users/Drivers/wl1251
|
W: https://wireless.wiki.kernel.org/en/users/Drivers/wl1251
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/luca/wl12xx.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/luca/wl12xx.git
|
||||||
F: drivers/net/wireless/ti/
|
F: drivers/net/wireless/ti/
|
||||||
F: include/linux/wl12xx.h
|
F: include/linux/wl12xx.h
|
||||||
|
@ -18205,7 +18203,7 @@ M: Maya Erez <merez@codeaurora.org>
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
L: wil6210@qti.qualcomm.com
|
L: wil6210@qti.qualcomm.com
|
||||||
S: Supported
|
S: Supported
|
||||||
W: http://wireless.kernel.org/en/users/Drivers/wil6210
|
W: https://wireless.wiki.kernel.org/en/users/Drivers/wil6210
|
||||||
F: drivers/net/wireless/ath/wil6210/
|
F: drivers/net/wireless/ath/wil6210/
|
||||||
|
|
||||||
WIMAX STACK
|
WIMAX STACK
|
||||||
|
|
|
@ -296,9 +296,14 @@ int iwl_sar_select_profile(struct iwl_fw_runtime *fwrt,
|
||||||
if (!prof->enabled) {
|
if (!prof->enabled) {
|
||||||
IWL_DEBUG_RADIO(fwrt, "SAR profile %d is disabled.\n",
|
IWL_DEBUG_RADIO(fwrt, "SAR profile %d is disabled.\n",
|
||||||
profs[i]);
|
profs[i]);
|
||||||
/* if one of the profiles is disabled, we fail all */
|
/*
|
||||||
return -ENOENT;
|
* if one of the profiles is disabled, we
|
||||||
|
* ignore all of them and return 1 to
|
||||||
|
* differentiate disabled from other failures.
|
||||||
|
*/
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
IWL_DEBUG_INFO(fwrt,
|
IWL_DEBUG_INFO(fwrt,
|
||||||
"SAR EWRD: chain %d profile index %d\n",
|
"SAR EWRD: chain %d profile index %d\n",
|
||||||
i, profs[i]);
|
i, profs[i]);
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
* Copyright(c) 2007 - 2014 Intel Corporation. All rights reserved.
|
* Copyright(c) 2007 - 2014 Intel Corporation. All rights reserved.
|
||||||
* Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
|
* Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
|
||||||
* Copyright(c) 2016 - 2017 Intel Deutschland GmbH
|
* Copyright(c) 2016 - 2017 Intel Deutschland GmbH
|
||||||
* Copyright(c) 2019 Intel Corporation
|
* Copyright(c) 2019 - 2020 Intel Corporation
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of version 2 of the GNU General Public License as
|
* it under the terms of version 2 of the GNU General Public License as
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
* Copyright(c) 2005 - 2014 Intel Corporation. All rights reserved.
|
* Copyright(c) 2005 - 2014 Intel Corporation. All rights reserved.
|
||||||
* Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
|
* Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
|
||||||
* Copyright(c) 2016 - 2017 Intel Deutschland GmbH
|
* Copyright(c) 2016 - 2017 Intel Deutschland GmbH
|
||||||
* Copyright(c) 2019 Intel Corporation
|
* Copyright(c) 2019 - 2020 Intel Corporation
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -99,7 +99,7 @@ enum iwl_mvm_dqa_txq {
|
||||||
IWL_MVM_DQA_MAX_MGMT_QUEUE = 8,
|
IWL_MVM_DQA_MAX_MGMT_QUEUE = 8,
|
||||||
IWL_MVM_DQA_AP_PROBE_RESP_QUEUE = 9,
|
IWL_MVM_DQA_AP_PROBE_RESP_QUEUE = 9,
|
||||||
IWL_MVM_DQA_MIN_DATA_QUEUE = 10,
|
IWL_MVM_DQA_MIN_DATA_QUEUE = 10,
|
||||||
IWL_MVM_DQA_MAX_DATA_QUEUE = 31,
|
IWL_MVM_DQA_MAX_DATA_QUEUE = 30,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum iwl_mvm_tx_fifo {
|
enum iwl_mvm_tx_fifo {
|
||||||
|
|
|
@ -1467,7 +1467,7 @@ static void iwl_req_fw_callback(const struct firmware *ucode_raw, void *context)
|
||||||
kmemdup(pieces->dbg_conf_tlv[i],
|
kmemdup(pieces->dbg_conf_tlv[i],
|
||||||
pieces->dbg_conf_tlv_len[i],
|
pieces->dbg_conf_tlv_len[i],
|
||||||
GFP_KERNEL);
|
GFP_KERNEL);
|
||||||
if (!pieces->dbg_conf_tlv[i])
|
if (!drv->fw.dbg.conf_tlv[i])
|
||||||
goto out_free_fw;
|
goto out_free_fw;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -532,8 +532,7 @@ static struct ieee80211_sband_iftype_data iwl_he_capa[] = {
|
||||||
IEEE80211_HE_MAC_CAP1_TF_MAC_PAD_DUR_16US |
|
IEEE80211_HE_MAC_CAP1_TF_MAC_PAD_DUR_16US |
|
||||||
IEEE80211_HE_MAC_CAP1_MULTI_TID_AGG_RX_QOS_8,
|
IEEE80211_HE_MAC_CAP1_MULTI_TID_AGG_RX_QOS_8,
|
||||||
.mac_cap_info[2] =
|
.mac_cap_info[2] =
|
||||||
IEEE80211_HE_MAC_CAP2_32BIT_BA_BITMAP |
|
IEEE80211_HE_MAC_CAP2_32BIT_BA_BITMAP,
|
||||||
IEEE80211_HE_MAC_CAP2_ACK_EN,
|
|
||||||
.mac_cap_info[3] =
|
.mac_cap_info[3] =
|
||||||
IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
|
IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
|
||||||
IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_2,
|
IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_2,
|
||||||
|
@ -617,8 +616,7 @@ static struct ieee80211_sband_iftype_data iwl_he_capa[] = {
|
||||||
IEEE80211_HE_MAC_CAP1_TF_MAC_PAD_DUR_16US |
|
IEEE80211_HE_MAC_CAP1_TF_MAC_PAD_DUR_16US |
|
||||||
IEEE80211_HE_MAC_CAP1_MULTI_TID_AGG_RX_QOS_8,
|
IEEE80211_HE_MAC_CAP1_MULTI_TID_AGG_RX_QOS_8,
|
||||||
.mac_cap_info[2] =
|
.mac_cap_info[2] =
|
||||||
IEEE80211_HE_MAC_CAP2_BSR |
|
IEEE80211_HE_MAC_CAP2_BSR,
|
||||||
IEEE80211_HE_MAC_CAP2_ACK_EN,
|
|
||||||
.mac_cap_info[3] =
|
.mac_cap_info[3] =
|
||||||
IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
|
IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
|
||||||
IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_2,
|
IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_2,
|
||||||
|
|
|
@ -727,6 +727,7 @@ int iwl_mvm_sar_select_profile(struct iwl_mvm *mvm, int prof_a, int prof_b)
|
||||||
struct iwl_dev_tx_power_cmd_v4 v4;
|
struct iwl_dev_tx_power_cmd_v4 v4;
|
||||||
} cmd;
|
} cmd;
|
||||||
|
|
||||||
|
int ret;
|
||||||
u16 len = 0;
|
u16 len = 0;
|
||||||
|
|
||||||
cmd.v5.v3.set_mode = cpu_to_le32(IWL_TX_POWER_MODE_SET_CHAINS);
|
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)
|
||||||
len = sizeof(cmd.v4.v3);
|
len = sizeof(cmd.v4.v3);
|
||||||
|
|
||||||
|
|
||||||
if (iwl_sar_select_profile(&mvm->fwrt, cmd.v5.v3.per_chain_restriction,
|
ret = iwl_sar_select_profile(&mvm->fwrt,
|
||||||
prof_a, prof_b))
|
cmd.v5.v3.per_chain_restriction,
|
||||||
return -ENOENT;
|
prof_a, prof_b);
|
||||||
|
|
||||||
|
/* return on error or if the profile is disabled (positive number) */
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
IWL_DEBUG_RADIO(mvm, "Sending REDUCE_TX_POWER_CMD per chain\n");
|
IWL_DEBUG_RADIO(mvm, "Sending REDUCE_TX_POWER_CMD per chain\n");
|
||||||
return iwl_mvm_send_cmd_pdu(mvm, REDUCE_TX_POWER_CMD, 0, len, &cmd);
|
return iwl_mvm_send_cmd_pdu(mvm, REDUCE_TX_POWER_CMD, 0, len, &cmd);
|
||||||
}
|
}
|
||||||
|
@ -1034,16 +1040,7 @@ static int iwl_mvm_sar_init(struct iwl_mvm *mvm)
|
||||||
"EWRD SAR BIOS table invalid or unavailable. (%d)\n",
|
"EWRD SAR BIOS table invalid or unavailable. (%d)\n",
|
||||||
ret);
|
ret);
|
||||||
|
|
||||||
ret = iwl_mvm_sar_select_profile(mvm, 1, 1);
|
return iwl_mvm_sar_select_profile(mvm, 1, 1);
|
||||||
/*
|
|
||||||
* If we don't have profile 0 from BIOS, just skip it. This
|
|
||||||
* means that SAR Geo will not be enabled either, even if we
|
|
||||||
* have other valid profiles.
|
|
||||||
*/
|
|
||||||
if (ret == -ENOENT)
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int iwl_mvm_load_rt_fw(struct iwl_mvm *mvm)
|
static int iwl_mvm_load_rt_fw(struct iwl_mvm *mvm)
|
||||||
|
@ -1272,7 +1269,7 @@ int iwl_mvm_up(struct iwl_mvm *mvm)
|
||||||
ret = iwl_mvm_sar_init(mvm);
|
ret = iwl_mvm_sar_init(mvm);
|
||||||
if (ret == 0) {
|
if (ret == 0) {
|
||||||
ret = iwl_mvm_sar_geo_init(mvm);
|
ret = iwl_mvm_sar_geo_init(mvm);
|
||||||
} else if (ret > 0 && !iwl_sar_get_wgds_table(&mvm->fwrt)) {
|
} else if (ret == -ENOENT && !iwl_sar_get_wgds_table(&mvm->fwrt)) {
|
||||||
/*
|
/*
|
||||||
* If basic SAR is not available, we check for WGDS,
|
* If basic SAR is not available, we check for WGDS,
|
||||||
* which should *not* be available either. If it is
|
* which should *not* be available either. If it is
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
* Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
|
* Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
|
||||||
* Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
|
* Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
|
||||||
* Copyright(c) 2016 - 2017 Intel Deutschland GmbH
|
* Copyright(c) 2016 - 2017 Intel Deutschland GmbH
|
||||||
* Copyright(c) 2018 - 2019 Intel Corporation
|
* Copyright(c) 2018 - 2020 Intel Corporation
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of version 2 of the GNU General Public License as
|
* it under the terms of version 2 of the GNU General Public License as
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
* Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
|
* Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
|
||||||
* Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
|
* Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
|
||||||
* Copyright(c) 2016 - 2017 Intel Deutschland GmbH
|
* Copyright(c) 2016 - 2017 Intel Deutschland GmbH
|
||||||
* Copyright(c) 2018 - 2019 Intel Corporation
|
* Copyright(c) 2018 - 2020 Intel Corporation
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* 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,
|
||||||
|
|
||||||
struct iwl_mvm_stat_data {
|
struct iwl_mvm_stat_data {
|
||||||
struct iwl_mvm *mvm;
|
struct iwl_mvm *mvm;
|
||||||
|
__le32 flags;
|
||||||
__le32 mac_id;
|
__le32 mac_id;
|
||||||
u8 beacon_filter_average_energy;
|
u8 beacon_filter_average_energy;
|
||||||
void *general;
|
void *general;
|
||||||
|
@ -606,6 +607,13 @@ static void iwl_mvm_stat_iterator(void *_data, u8 *mac,
|
||||||
-general->beacon_average_energy[vif_id];
|
-general->beacon_average_energy[vif_id];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* make sure that beacon statistics don't go backwards with TCM
|
||||||
|
* request to clear statistics
|
||||||
|
*/
|
||||||
|
if (le32_to_cpu(data->flags) & IWL_STATISTICS_REPLY_FLG_CLEAR)
|
||||||
|
mvmvif->beacon_stats.accu_num_beacons +=
|
||||||
|
mvmvif->beacon_stats.num_beacons;
|
||||||
|
|
||||||
if (mvmvif->id != id)
|
if (mvmvif->id != id)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -763,6 +771,7 @@ void iwl_mvm_handle_rx_statistics(struct iwl_mvm *mvm,
|
||||||
|
|
||||||
flags = stats->flag;
|
flags = stats->flag;
|
||||||
}
|
}
|
||||||
|
data.flags = flags;
|
||||||
|
|
||||||
iwl_mvm_rx_stats_check_trigger(mvm, pkt);
|
iwl_mvm_rx_stats_check_trigger(mvm, pkt);
|
||||||
|
|
||||||
|
|
|
@ -722,6 +722,11 @@ static int iwl_mvm_find_free_queue(struct iwl_mvm *mvm, u8 sta_id,
|
||||||
|
|
||||||
lockdep_assert_held(&mvm->mutex);
|
lockdep_assert_held(&mvm->mutex);
|
||||||
|
|
||||||
|
if (WARN(maxq >= mvm->trans->trans_cfg->base_params->num_of_queues,
|
||||||
|
"max queue %d >= num_of_queues (%d)", maxq,
|
||||||
|
mvm->trans->trans_cfg->base_params->num_of_queues))
|
||||||
|
maxq = mvm->trans->trans_cfg->base_params->num_of_queues - 1;
|
||||||
|
|
||||||
/* This should not be hit with new TX path */
|
/* This should not be hit with new TX path */
|
||||||
if (WARN_ON(iwl_mvm_has_new_tx_api(mvm)))
|
if (WARN_ON(iwl_mvm_has_new_tx_api(mvm)))
|
||||||
return -ENOSPC;
|
return -ENOSPC;
|
||||||
|
@ -1164,9 +1169,9 @@ static int iwl_mvm_inactivity_check(struct iwl_mvm *mvm, u8 alloc_for_sta)
|
||||||
inactive_tid_bitmap,
|
inactive_tid_bitmap,
|
||||||
&unshare_queues,
|
&unshare_queues,
|
||||||
&changetid_queues);
|
&changetid_queues);
|
||||||
if (ret >= 0 && free_queue < 0) {
|
if (ret && free_queue < 0) {
|
||||||
queue_owner = sta;
|
queue_owner = sta;
|
||||||
free_queue = ret;
|
free_queue = i;
|
||||||
}
|
}
|
||||||
/* only unlock sta lock - we still need the queue info lock */
|
/* only unlock sta lock - we still need the queue info lock */
|
||||||
spin_unlock_bh(&mvmsta->lock);
|
spin_unlock_bh(&mvmsta->lock);
|
||||||
|
|
|
@ -129,6 +129,18 @@ int iwl_pcie_ctxt_info_gen3_init(struct iwl_trans *trans,
|
||||||
int cmdq_size = max_t(u32, IWL_CMD_QUEUE_SIZE,
|
int cmdq_size = max_t(u32, IWL_CMD_QUEUE_SIZE,
|
||||||
trans->cfg->min_txq_size);
|
trans->cfg->min_txq_size);
|
||||||
|
|
||||||
|
switch (trans_pcie->rx_buf_size) {
|
||||||
|
case IWL_AMSDU_DEF:
|
||||||
|
return -EINVAL;
|
||||||
|
case IWL_AMSDU_2K:
|
||||||
|
break;
|
||||||
|
case IWL_AMSDU_4K:
|
||||||
|
case IWL_AMSDU_8K:
|
||||||
|
case IWL_AMSDU_12K:
|
||||||
|
control_flags |= IWL_PRPH_SCRATCH_RB_SIZE_4K;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
/* Allocate prph scratch */
|
/* Allocate prph scratch */
|
||||||
prph_scratch = dma_alloc_coherent(trans->dev, sizeof(*prph_scratch),
|
prph_scratch = dma_alloc_coherent(trans->dev, sizeof(*prph_scratch),
|
||||||
&trans_pcie->prph_scratch_dma_addr,
|
&trans_pcie->prph_scratch_dma_addr,
|
||||||
|
@ -143,10 +155,8 @@ int iwl_pcie_ctxt_info_gen3_init(struct iwl_trans *trans,
|
||||||
cpu_to_le16((u16)iwl_read32(trans, CSR_HW_REV));
|
cpu_to_le16((u16)iwl_read32(trans, CSR_HW_REV));
|
||||||
prph_sc_ctrl->version.size = cpu_to_le16(sizeof(*prph_scratch) / 4);
|
prph_sc_ctrl->version.size = cpu_to_le16(sizeof(*prph_scratch) / 4);
|
||||||
|
|
||||||
control_flags = IWL_PRPH_SCRATCH_RB_SIZE_4K |
|
control_flags |= IWL_PRPH_SCRATCH_MTR_MODE;
|
||||||
IWL_PRPH_SCRATCH_MTR_MODE |
|
control_flags |= IWL_PRPH_MTR_FORMAT_256B & IWL_PRPH_SCRATCH_MTR_FORMAT;
|
||||||
(IWL_PRPH_MTR_FORMAT_256B &
|
|
||||||
IWL_PRPH_SCRATCH_MTR_FORMAT);
|
|
||||||
|
|
||||||
/* initialize RX default queue */
|
/* initialize RX default queue */
|
||||||
prph_sc_ctrl->rbd_cfg.free_rbd_addr =
|
prph_sc_ctrl->rbd_cfg.free_rbd_addr =
|
||||||
|
|
|
@ -1418,6 +1418,9 @@ void iwl_trans_pcie_dyn_txq_free(struct iwl_trans *trans, int queue)
|
||||||
|
|
||||||
iwl_pcie_gen2_txq_unmap(trans, queue);
|
iwl_pcie_gen2_txq_unmap(trans, queue);
|
||||||
|
|
||||||
|
iwl_pcie_gen2_txq_free_memory(trans, trans_pcie->txq[queue]);
|
||||||
|
trans_pcie->txq[queue] = NULL;
|
||||||
|
|
||||||
IWL_DEBUG_TX_QUEUES(trans, "Deactivate queue %d\n", queue);
|
IWL_DEBUG_TX_QUEUES(trans, "Deactivate queue %d\n", queue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue