Ping-Ke Shih
d95d8d6bba
rtw89: debug: add stations entry to show ID assignment
...
In order to trace the relation of IDs, we add this debugfs entry to make
them clear.
The output looks like:
map:
mac_id: 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
addr_cam: 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
bssid_cam: 01 00 00 00 00 00 00 00
sec_cam: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
VIF [0] 94:08:53:8e:ef:21
bssid_cam_idx=0
addr_cam_idx=0
-> bssid_cam_idx=0
sec_cam_bitmap=00 00 00 00 00 00 00 00
STA [1] 58:00:e3:bb:9c:4f
addr_cam_idx=1
-> bssid_cam_idx=0
sec_cam_bitmap=00 00 00 00 00 00 00 00
STA [2] 94:08:53:8e:ef:75
addr_cam_idx=2
-> bssid_cam_idx=0
sec_cam_bitmap=00 00 00 00 00 00 00 00
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20220207063900.43643-7-pkshih@realtek.com
2022-02-10 10:40:51 +02:00
Ping-Ke Shih
a52e4f2ce0
rtw89: implement ieee80211_ops::start_ap and stop_ap
...
Configure firmware and hardware to run AP mode. The start_ap() setup
bssid, mac port, mac_id entry, and does RFK. The stop_ap() reset the
state.
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20220207063900.43643-6-pkshih@realtek.com
2022-02-10 10:40:51 +02:00
Ping-Ke Shih
1b73e77db1
rtw89: maintain assoc/disassoc STA states of firmware and hardware
...
In AP mode, when a STA associate to us, we need to create an entry in
firmware and hardware, and then they can transmit data properly.
The entry index called mac_id which is assigned when sta_add, and we ask
firmware to create an entry for an associated station. Also, the address
CAM should be filled so hardware can know which packet is ours, and lookup
the mac_id for further use.
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20220207063900.43643-5-pkshih@realtek.com
2022-02-10 10:40:50 +02:00
Ping-Ke Shih
fd7ee4c8ac
rtw89: only STA mode change vif_type mapping dynamically
...
vif_type mapping indicates hardware operating mode corresponding to vif
type. In STA mode, hardware mode should be INFRA or NO_LINK mode
dynamically according to association status. Since AP mode don't need to
change this by association status intuitively, just do the mapping in
STA mode.
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20220207063900.43643-4-pkshih@realtek.com
2022-02-10 10:40:50 +02:00
Ping-Ke Shih
2ab856cc3a
rtw89: add addr_cam field to sta to support AP mode
...
In AP mode, each connected station needs an entry of address CAM. The
address CAM of vif is still needed to assit in AP itself.
For station mode, it still uses vif's address CAM.
Add a help macro rtw89_get_addr_cam_of() to get addr_cam from vif or sta
for all use cases.
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20220207063900.43643-3-pkshih@realtek.com
2022-02-10 10:40:49 +02:00
Ping-Ke Shih
ff66964a94
rtw89: extend role_maintain to support AP mode
...
Fill mac_id and self_role depends on the operation mode.
In AP mode, echo connected station has an unique mac_id, and each vif also
has one mac_id to represent itself.
The self_role is assigned to vif if the operation mode is decided, and
RTW89_SELF_ROLE_AP_CLIENT is assigned to the connected STA in AP mode,
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20220207063900.43643-2-pkshih@realtek.com
2022-02-10 10:40:49 +02:00
Dan Carpenter
a954f29aea
rtw88: fix use after free in rtw_hw_scan_update_probe_req()
...
This code needs to use skb_queue_walk_safe() instead of skb_queue_walk()
because it frees the list iterator.
Fixes: d95984b558 ("rtw88: fix memory overrun and memory leak during hw_scan")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com >
Acked-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20220203082532.GA25151@kili
2022-02-10 10:32:25 +02:00
Jiapeng Chong
c761161851
mac80211: Remove redundent assignment channel_type
...
Fix the following coccicheck warnings:
net/mac80211/util.c:3265:3: warning: Value stored to 'channel_type' is
never read [clang-analyzer-deadcode.DeadStores].
Reported-by: Abaci Robot <abaci@linux.alibaba.com >
Signed-off-by: Jiapeng Chong <jiapeng.chong@linux.alibaba.com >
Link: https://lore.kernel.org/r/20220113161557.129427-1-jiapeng.chong@linux.alibaba.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2022-02-04 16:27:45 +01:00
Baligh Gasmi
45d33746d2
mac80211: remove useless ieee80211_vif_is_mesh() check
...
We check ieee80211_vif_is_mesh() at the top if() block,
there's no need to check for it again.
Signed-off-by: Baligh Gasmi <gasmibal@gmail.com >
Link: https://lore.kernel.org/r/20220203153035.198697-1-gasmibal@gmail.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2022-02-04 16:27:07 +01:00
Avraham Stern
ea5907db2a
mac80211: fix struct ieee80211_tx_info size
...
The size of the status_driver_data field was not adjusted when
the is_valid_ack_signal field was added.
Since the size of struct ieee80211_tx_info is limited, replace
the is_valid_ack_signal field with a flags field, and adjust the
struct size accordingly.
Signed-off-by: Avraham Stern <avraham.stern@intel.com >
Signed-off-by: Luca Coelho <luciano.coelho@intel.com >
Link: https://lore.kernel.org/r/iwlwifi.20220202104617.0ff363d4fa56.I45792c0187034a6d0e1c99a7db741996ef7caba3@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2022-02-04 16:26:53 +01:00
Mordechay Goodstein
97634ef4bf
mac80211: mlme: validate peer HE supported rates
...
We validate that AP has mandatory rates set in HE capabilities.
Also we make sure AP is consistent with itself on rates set in HE basic
rates required joining the BSS and rates set in HE capabilities.
Signed-off-by: Mordechay Goodstein <mordechay.goodstein@intel.com >
Signed-off-by: Luca Coelho <luciano.coelho@intel.com >
Link: https://lore.kernel.org/r/iwlwifi.20220202104617.7023450fdf16.I194df59252097ba25a0a543456d4350f1607a538@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2022-02-04 16:26:40 +01:00
Johannes Berg
453a2a8205
mac80211: remove unused macros
...
Various macros in mac80211 aren't used, remove them. In one
case it's used under ifdef, so ifdef it for the W=2 warning.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Luca Coelho <luciano.coelho@intel.com >
Link: https://lore.kernel.org/r/iwlwifi.20220202104617.5172d7fd878e.I2f1fce686a2b71003f083b2566fb09cf16b8165a@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2022-02-04 16:26:27 +01:00
Johannes Berg
1b198233a3
cfg80211: pmsr: remove useless ifdef guards
...
This isn't a header file, I guess I must've copied from
the header file and forgotten to remove the guards.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Luca Coelho <luciano.coelho@intel.com >
Link: https://lore.kernel.org/r/iwlwifi.20220202104617.330d03623b08.Idda91cd6f1c7bd865a50c47d408e5cdab0fd951f@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2022-02-04 16:26:16 +01:00
Johannes Berg
ae962e5f63
mac80211: airtime: avoid variable shadowing
...
This isn't very dangerous, since the outer 'rate' variable
isn't even a pointer, but it's still confusing, so use a
different variable inside.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Luca Coelho <luciano.coelho@intel.com >
Link: https://lore.kernel.org/r/iwlwifi.20220202104617.8e9b2bfaa0f5.I41c53f754eef28206d04dafc7263ccb99b63d490@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2022-02-04 16:25:55 +01:00
Mordechay Goodstein
6ad1dce5eb
mac80211: mlme: add documentation from spec to code
...
Reference the spec why we decline HE support in
case STA don't support all HE basic rates recurred by AP.
Signed-off-by: Mordechay Goodstein <mordechay.goodstein@intel.com >
Signed-off-by: Luca Coelho <luciano.coelho@intel.com >
Link: https://lore.kernel.org/r/iwlwifi.20220202104617.f1bafd0861b7.I566612d99bca5245dc06cbcc70369b94a525389c@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2022-02-04 16:25:45 +01:00
Mordechay Goodstein
abd5a8e5cc
mac80211: vht: use HE macros for parsing HE capabilities
...
IEEE80211_VHT_MCS_NOT_SUPPORTED and IEEE80211_HE_MCS_NOT_SUPPORTED
have the same value so no real bug, but for code integrity use the
HE macros for parsing HE capabilities.
Signed-off-by: Mordechay Goodstein <mordechay.goodstein@intel.com >
Signed-off-by: Luca Coelho <luciano.coelho@intel.com >
Link: https://lore.kernel.org/r/iwlwifi.20220202104617.e974b7b3b217.I732cc7f770c7fa06e4840adb5d45d7ee99ac8eb5@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2022-02-04 16:25:32 +01:00
Johannes Berg
5beb53d6ba
ieee80211: radiotap: fix -Wcast-qual warnings
...
When enabling -Wcast-qual e.g. via W=3, we get a lot of
warnings from this file, whenever it's included. Since
the fixes are simple, just do that.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Luca Coelho <luciano.coelho@intel.com >
Link: https://lore.kernel.org/r/iwlwifi.20220202104617.cc733aeb1a18.I03396e1bf7a1af364cbd0916037f65d800035039@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2022-02-04 16:25:21 +01:00
Johannes Berg
7e367b06f1
cfg80211: fix -Wcast-qual warnings
...
When enabling -Wcast-qual e.g. via W=3, we get a lot of
warnings from this file, whenever it's included. Since
the fixes are simple, just do that.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Luca Coelho <luciano.coelho@intel.com >
Link: https://lore.kernel.org/r/iwlwifi.20220202104617.6a1d52213019.I92d82e7251cf712faa43fd09db3142327a3bce3d@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2022-02-04 16:25:10 +01:00
Johannes Berg
bed8947893
ieee80211: fix -Wcast-qual warnings
...
When enabling -Wcast-qual e.g. via W=3, we get a lot of
warnings from this file, whenever it's included. Since
the fixes are simple, just do that.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Luca Coelho <luciano.coelho@intel.com >
Link: https://lore.kernel.org/r/iwlwifi.20220202104617.79ec4a4bab29.I8177a0c79d656c552e22c88931d8da06f2977896@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2022-02-04 16:24:56 +01:00
Avraham Stern
5666ee154f
cfg80211: don't add non transmitted BSS to 6GHz scanned channels
...
When adding 6GHz channels to scan request based on reported
co-located APs, don't add channels that have only APs with
"non-transmitted" BSSes if they only match the wildcard SSID since
they will be found by probing the "transmitted" BSS.
Signed-off-by: Avraham Stern <avraham.stern@intel.com >
Signed-off-by: Luca Coelho <luciano.coelho@intel.com >
Link: https://lore.kernel.org/r/iwlwifi.20220202104617.f6ddf099f934.I231e55885d3644f292d00dfe0f42653269f2559e@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2022-02-04 16:24:41 +01:00
Johannes Berg
667aa74264
cfg80211/mac80211: assume CHECKSUM_COMPLETE includes SNAP
...
There's currently only one driver that reports CHECKSUM_COMPLETE,
that is iwlwifi. The current hardware there calculates checksum
after the SNAP header, but only RFC 1042 (and some other cases,
but replicating the exact hardware logic for corner cases in the
driver seemed awkward.)
Newer generations of hardware will checksum _including_ the SNAP,
which makes things easier.
To handle that, simply always assume the checksum _includes_ the
SNAP header, which this patch does, requiring to first add it
for older iwlwifi hardware, and then remove it again later on
conversion.
Alternatively, we could have:
1) Always assumed the checksum starts _after_ the SNAP header;
the problem with this is that we'd have to replace the exact
"what is the SNAP" check in iwlwifi that cfg80211 has.
2) Made it configurable with some flag, but that seemed like too
much complexity.
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Luca Coelho <luciano.coelho@intel.com >
Link: https://lore.kernel.org/r/iwlwifi.20220202104617.230736e19e0e.I3e6745873585ad943c152fab9e23b5221f17a95f@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2022-02-04 16:23:19 +01:00
Mordechay Goodstein
f39b7d62a1
mac80211: consider RX NSS in UHB connection
...
In UHB connection we don't have any HT/VHT elemens so in order to
calculate the max RX-NSS we need also to look at HE capa element, this
causes to limit us to max rx nss in UHB to 1.
Also anyway we need to look at HE max rx NSS and not only at HT/VHT
capa to determine the max rx nss over the connection.
Signed-off-by: Mordechay Goodstein <mordechay.goodstein@intel.com >
Signed-off-by: Luca Coelho <luciano.coelho@intel.com >
Link: https://lore.kernel.org/r/iwlwifi.20220202104617.3713e0dea5dd.I3b9a15b4c53465c3f86f35459e9dc15ae4ea2abd@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2022-02-04 16:23:01 +01:00
Johannes Berg
1f2c104448
mac80211: limit bandwidth in HE capabilities
...
If we're limiting bandwidth for some reason such as regulatory
restrictions, then advertise that limitation just like we do
for VHT today, so the AP is aware we cannot use the higher BW
it might be using.
Fixes: 41cbb0f5a2 ("mac80211: add support for HE")
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
Signed-off-by: Luca Coelho <luciano.coelho@intel.com >
Link: https://lore.kernel.org/r/iwlwifi.20220202104617.70c8e3e7ee76.If317630de69ff1146bec7d47f5b83038695eb71d@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2022-02-04 16:22:39 +01:00
Hector Martin
b4bb8469e9
brcmfmac: pcie: Read the console on init and shutdown
...
This allows us to get console messages if the firmware crashed during
early init, or if an operation failed and we're about to shut down.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com >
Signed-off-by: Hector Martin <marcan@marcan.st >
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20220131160713.245637-10-marcan@marcan.st
2022-02-01 14:27:08 +02:00
Hector Martin
e7191182ad
brcmfmac: fwil: Constify iovar name arguments
...
Make all the iovar name arguments const char * instead of just char *.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com >
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com >
Signed-off-by: Hector Martin <marcan@marcan.st >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20220131160713.245637-9-marcan@marcan.st
2022-02-01 14:27:07 +02:00
Hector Martin
9cf6d7f2c5
brcmfmac: of: Use devm_kstrdup for board_type & check for errors
...
This was missing a NULL check, and we can collapse the strlen/alloc/copy
into a devm_kstrdup().
Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com >
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com >
Signed-off-by: Hector Martin <marcan@marcan.st >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20220131160713.245637-8-marcan@marcan.st
2022-02-01 14:27:07 +02:00
Hector Martin
b50255c83b
brcmfmac: pcie: Fix crashes due to early IRQs
...
The driver was enabling IRQs before the message processing was
initialized. This could cause IRQs to come in too early and crash the
driver. Instead, move the IRQ enable and hostready to a bus preinit
function, at which point everything is properly initialized.
Fixes: 9e37f045d5 ("brcmfmac: Adding PCIe bus layer support.")
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com >
Cc: stable@vger.kernel.org
Signed-off-by: Hector Martin <marcan@marcan.st >
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20220131160713.245637-7-marcan@marcan.st
2022-02-01 14:27:06 +02:00
Hector Martin
9466987f24
brcmfmac: pcie: Replace brcmf_pcie_copy_mem_todev with memcpy_toio
...
The alignment check was wrong (e.g. & 4 instead of & 3), and the logic
was also inefficient if the length was not a multiple of 4, since it
would needlessly fall back to copying the entire buffer bytewise.
We already have a perfectly good memcpy_toio function, so just call that
instead of rolling our own copy logic here. brcmf_pcie_init_ringbuffers
was already using it anyway.
Fixes: 9e37f045d5 ("brcmfmac: Adding PCIe bus layer support.")
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com >
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com >
Cc: stable@vger.kernel.org
Signed-off-by: Hector Martin <marcan@marcan.st >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20220131160713.245637-6-marcan@marcan.st
2022-02-01 14:27:05 +02:00
Hector Martin
6d766d8cb5
brcmfmac: pcie: Declare missing firmware files in pcie.c
...
Move one of the declarations from sdio.c to pcie.c, since it makes no
sense in the former (SDIO support is optional), and add missing ones.
Fixes: 75729e110e ("brcmfmac: expose firmware config files through modinfo")
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com >
Cc: stable@vger.kernel.org
Signed-off-by: Hector Martin <marcan@marcan.st >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20220131160713.245637-5-marcan@marcan.st
2022-02-01 14:27:05 +02:00
Hector Martin
d19d8e3ba2
brcmfmac: firmware: Allocate space for default boardrev in nvram
...
If boardrev is missing from the NVRAM we add a default one, but this
might need more space in the output buffer than was allocated. Ensure
we have enough padding for this in the buffer.
Fixes: 46f2b38a91 ("brcmfmac: insert default boardrev in nvram data if missing")
Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com >
Cc: stable@vger.kernel.org
Signed-off-by: Hector Martin <marcan@marcan.st >
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20220131160713.245637-3-marcan@marcan.st
2022-02-01 14:27:04 +02:00
Hector Martin
5e90f0f3ea
brcmfmac: pcie: Release firmwares in the brcmf_pcie_setup error path
...
This avoids leaking memory if brcmf_chip_get_raminfo fails. Note that
the CLM blob is released in the device remove path.
Fixes: 82f93cf46d ("brcmfmac: get chip's default RAM info during PCIe setup")
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com >
Cc: stable@vger.kernel.org
Signed-off-by: Hector Martin <marcan@marcan.st >
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20220131160713.245637-2-marcan@marcan.st
2022-02-01 14:27:04 +02:00
Colin Ian King
e80affde17
rtlwifi: remove redundant initialization of variable ul_encalgo
...
Variable ul_encalgo is initialized with a value that is never read,
it is being re-assigned a new value in every case in the following
switch statement. The initialization is redundant and can be removed.
Signed-off-by: Colin Ian King <colin.i.king@gmail.com >
Acked-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20220130223714.6999-1-colin.i.king@gmail.com
2022-02-01 14:26:34 +02:00
Yang Guang
6d3ac94bae
ssb: fix boolreturn.cocci warning
...
The coccinelle report
./include/linux/ssb/ssb_driver_gige.h:98:8-9:
WARNING: return of 0/1 in function
'ssb_gige_must_flush_posted_writes' with return type bool
Return statements in functions returning bool should use true/false
instead of 1/0.
Reported-by: Zeal Robot <zealci@zte.com.cn >
Signed-off-by: Yang Guang <yang.guang5@zte.com.cn >
Signed-off-by: David Yang <davidcomponentone@gmail.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/fa4f1fa737e715eb62a85229ac5f12bae21145cf.1642065490.git.davidcomponentone@gmail.com
2022-02-01 14:25:50 +02:00
Jiasheng Jiang
7e47607133
ray_cs: Check ioremap return value
...
As the possible failure of the ioremap(), the 'local->sram' and other
two could be NULL.
Therefore it should be better to check it in order to avoid the later
dev_dbg.
Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20211230022926.1846757-1-jiasheng@iscas.ac.cn
2022-02-01 14:24:35 +02:00
Colin Ian King
fe683faecc
cw1200: wsm: make array queue_id_to_wmm_aci static const
...
Don't populate the read-only array queue_id_to_wmm_aci on the stack
but instead make it static. Also makes the object code a little smaller.
Signed-off-by: Colin Ian King <colin.i.king@gmail.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20220109230921.58766-1-colin.i.king@gmail.com
2022-01-31 17:49:17 +02:00
Changcheng Deng
708db26845
wilc1000: use min_t() to make code cleaner
...
Use min_t() in order to make code cleaner.
Reported-by: Zeal Robot <zealci@zte.com.cn >
Signed-off-by: Changcheng Deng <deng.changcheng@zte.com.cn >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20211222070815.483009-1-deng.changcheng@zte.com.cn
2022-01-31 17:48:18 +02:00
Ping-Ke Shih
e109e3617e
rtw88: rtw8821c: enable rfe 6 devices
...
Ping-Ke Shih answered[1] a question for a user about an rtl8821ce device that
reported RFE 6, which the driver did not support. Ping-Ke suggested a possible
fix, but the user never reported back.
A second user discovered the above thread and tested the proposed fix.
Accordingly, I am pushing this change, even though I am not the author.
[1] https://lore.kernel.org/linux-wireless/3f5e2f6eac344316b5dd518ebfea2f95@realtek.com/
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Reported-and-tested-by: masterzorag <masterzorag@gmail.com >
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20220107024739.20967-1-Larry.Finger@lwfinger.net
2022-01-31 17:47:41 +02:00
Po-Hao Huang
d95984b558
rtw88: fix memory overrun and memory leak during hw_scan
...
Previously we allocated less memory than actual required, overwrite
to the buffer causes the mm module to complaint and raise access
violation faults. Along with potential memory leaks when returned
early. Fix these by passing the correct size and proper deinit flow.
Fixes: 10d162b2ed ("rtw88: 8822c: add ieee80211_ops::hw_scan")
Signed-off-by: Po-Hao Huang <phhuang@realtek.com >
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20220121070813.9656-4-pkshih@realtek.com
2022-01-31 17:46:59 +02:00
Po-Hao Huang
c17f27167b
rtw88: fix idle mode flow for hw scan
...
Upon hw scan completion, idle mode is not re-entered. This might
increase power consumption under no link mode. Fix this by adding the
re-enter flow. We need another work for this since enter_ips waits
for c2h_work to finish, which might lead to deadlock if caller is in
the same work.
Fixes: 10d162b2ed ("rtw88: 8822c: add ieee80211_ops::hw_scan")
Signed-off-by: Po-Hao Huang <phhuang@realtek.com >
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20220121070813.9656-3-pkshih@realtek.com
2022-01-31 17:46:59 +02:00
Muhammad Usama Anjum
a12f809968
rtw88: check for validity before using a pointer
...
ieee80211_probereq_get() can return NULL. Pointer skb should be checked
for validty before use. If it is not valid, list of skbs needs to be
freed.
Fixes: 10d162b2ed ("rtw88: 8822c: add ieee80211_ops::hw_scan")
Signed-off-by: Muhammad Usama Anjum <usama.anjum@collabora.com >
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20220121070813.9656-2-pkshih@realtek.com
2022-01-31 17:46:58 +02:00
Soontak Lee
8ec10f1576
brcmfmac: add CYW43570 PCIE device
...
CYW43570 is a 3-antenna, 2x2 MIMO,802.11a/b/g/n/ac, PCIe 3.0 for WLAN.
It is BT/WIFI combo.
Signed-off-by: Soontak Lee <soontak.lee@cypress.com >
Signed-off-by: Chi-Hsien Lin <chi-hsien.lin@infineon.com >
Signed-off-by: Ian Lin <ian.lin-ee@infineon.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20211229035144.9205-1-ian.lin-ee@infineon.com
2022-01-28 18:04:27 +02:00
Hans de Goede
a21bf90e92
brcmfmac: use ISO3166 country code and 0 rev as fallback on some devices
...
This is a second attempt at honering the country code send out by access
points. This was first added in commit b0b524f079 ("brcmfmac: use
ISO3166 country code and 0 rev as fallback").
Subsequently this was reverted in commit 151a7c12c4 ("Revert "brcmfmac:
use ISO3166 country code and 0 rev as fallback""), because it was causing
issues with AP mode on some brcmfmac models (specifically on BCM4359/9).
Many devices ship with a nvram ccode value of X2/XT/XU/XV/ALL which are
all special world-wide compatibility ccode-s. Most of these world-wide
ccode-s allow passive scan mode only for 2.4GHz channels 12-14,
only enabling them when an AP is seen on them.
But at least on brcmfmac43455 devices this is not working correctly, these
do not see accesspoints on channels 12-14 unless the ccode is changes to
a country where these channels are allowed.
Translating received country codes to an ISO3166 country code and 0 rev
ccreq fixes devices using a brcmfmac43455 with a X2/XT/XU/XV/ALL ccode
not seeing accesspoints on channels 12-14.
To avoid this causing issues on other brcmfmac models again, the
fallback is limited to only brcmfmac4345* chips this time.
Cc: Shawn Guo <shawn.guo@linaro.org >
Cc: Soeren Moch <smoch@web.de >
Cc: Fabio Aiuto <fabioaiuto83@gmail.com >
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
Tested-by: Soeren Moch <smoch@web.de > # on BCM4359/9
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20211218185643.158182-1-hdegoede@redhat.com
2022-01-28 18:03:35 +02:00
Chin-Yen Lee
db38d9cd26
rtw89: use pci_read/write_config instead of dbi read/write
...
In the past we use dbi function of wifi mac to read/write
pci config space, but the function will be remove in new
chip. So use kernel api pci_read/write_config_byte instead.
Signed-off-by: Chin-Yen Lee <timlee@realtek.com >
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20220121075555.12457-2-pkshih@realtek.com
2022-01-28 17:58:27 +02:00
Johnson Lin
1c2423deda
rtw89: refine DIG feature to support 160M and CCK PD
...
DIG, which is short for dynamic initial gain, is used to adjust gain to get
good RX performance. CCK PD feature, a mechanism that adjusts 802.11b CCK
packet detection(PD) power threshold based on environment noisy level in
order to avoid false alarm. Also, refine related variable naming.
Signed-off-by: Johnson Lin <johnson.lin@realtek.com >
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20220121075555.12457-1-pkshih@realtek.com
2022-01-28 17:58:06 +02:00
Íñigo Huguet
89e4a00ff3
rtw89: fix maybe uninitialized qempty variable
...
Call to dle_dfi_qempty might fail, leaving qempty.qempty untouched, which
is latter used to control the for loop. If that happens, it's not
initialized anywhere.
Initialize it so the loop doesn't iterate unless it's modified by the
call to dle_dfi_qempty.
Signed-off-by: Íñigo Huguet <ihuguet@redhat.com >
Acked-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20220113094253.73370-1-ihuguet@redhat.com
2022-01-28 17:57:46 +02:00
Zong-Zhe Yang
e0925375b2
rtw89: include subband type in channel params
...
Make stuffs related to channel be collected in channel_params,
and encapsulate the corresponding decision in get_channel_params().
Then, functions that takes channel_params can also notice subband type.
Signed-off-by: Zong-Zhe Yang <kevin_yang@realtek.com >
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20220113011042.6705-2-pkshih@realtek.com
2022-01-28 17:57:23 +02:00
Zong-Zhe Yang
0237f65aa6
rtw89: handle 6G band if supported by a chipset
...
For next chipset which can support 6G band, we add the handling
of ieee80211_supported_band for 6G band in advance. And a bitmap,
support_bands, is added to rtw89_chip_info to declare which
NL80211_BAND_* are supported. With the chipset's declaration,
we register the corresponding instances of ieee80211_supported_band
with wiphy.
Signed-off-by: Zong-Zhe Yang <kevin_yang@realtek.com >
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20220113011042.6705-1-pkshih@realtek.com
2022-01-28 17:57:23 +02:00
Ping-Ke Shih
14f0999d49
rtw89: separate {init,deinit}_addr_cam functions
...
Each stations connected to AP needs to set an address CAM, so don't combine
address and BSSID CAM.
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20220107034239.22002-13-pkshih@realtek.com
2022-01-28 17:56:39 +02:00
Ping-Ke Shih
9eecaec238
rtw89: set mac_id and port ID to TXWD
...
One mac_id is corresponding to one connected station, and port ID is a
ID of virtual interfaces. With proper mac_id and port ID, firmware and
hardware can handle a packet with correct context.
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20220107034239.22002-12-pkshih@realtek.com
2022-01-28 17:56:39 +02:00
Ping-Ke Shih
11d261f24b
rtw89: send broadcast/multicast packets via HIQ if STAs are in sleep mode
...
If a packet we are going to send is broadcast/multicast and certain STAs
are in sleep mode, a flag IEEE80211_TX_CTL_SEND_AFTER_DTIM is added to
txinfo. Then, this kind of packets must be sent via HIQ instead of regular
AC queues, because they should be sent right after beacon.
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com >
Signed-off-by: Kalle Valo <kvalo@kernel.org >
Link: https://lore.kernel.org/r/20220107034239.22002-11-pkshih@realtek.com
2022-01-28 17:56:38 +02:00