]> git.ipfire.org Git - thirdparty/kernel/linux.git/log
thirdparty/kernel/linux.git
5 months agowifi: rtw88: add RTW88_LEDS depends on LEDS_CLASS to Kconfig
Ping-Ke Shih [Thu, 16 Jan 2025 12:04:24 +0000 (20:04 +0800)] 
wifi: rtw88: add RTW88_LEDS depends on LEDS_CLASS to Kconfig

When using allmodconfig, .config has CONFIG_LEDS_CLASS=m but
autoconf.h has CONFIG_LEDS_CLASS_MODULE (additional suffix _MODULE)
instead of CONFIG_LEDS_CLASS, which condition CONFIG_LEDS_CLASS in
rtw88/led.h can't work properly.

Add RTW88_LEDS to Kconfig, and use it as condition to fix this problem.

drivers/net/wireless/realtek/rtw88/led.c:19:6: error: redefinition of 'rtw_led_init'
   19 | void rtw_led_init(struct rtw_dev *rtwdev)
      |      ^~~~~~~~~~~~
In file included from drivers/net/wireless/realtek/rtw88/led.c:7:
drivers/net/wireless/realtek/rtw88/led.h:15:20: note: previous definition of 'rtw_led_init' with type 'void(struct rtw_dev *)'
   15 | static inline void rtw_led_init(struct rtw_dev *rtwdev)
      |                    ^~~~~~~~~~~~
drivers/net/wireless/realtek/rtw88/led.c:64:6: error: redefinition of 'rtw_led_deinit'
   64 | void rtw_led_deinit(struct rtw_dev *rtwdev)
      |      ^~~~~~~~~~~~~~
drivers/net/wireless/realtek/rtw88/led.h:19:20: note: previous definition of 'rtw_led_deinit' with type 'void(struct rtw_dev *)'
   19 | static inline void rtw_led_deinit(struct rtw_dev *rtwdev)
      |                    ^~~~~~~~~~~~~~

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Closes: https://lore.kernel.org/linux-wireless/e19a87ad9cd54bfa9907f3a043b25d30@realtek.com/T/#me407832de1040ce22e53517bcb18e322ad0e2260
Fixes: 4b6652bc6d8d ("wifi: rtw88: Add support for LED blinking")
Cc: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://patch.msgid.link/20250116120424.13174-1-pkshih@realtek.com
5 months agoMerge tag 'ath-next-20250114' of git://git.kernel.org/pub/scm/linux/kernel/git/ath/ath
Kalle Valo [Wed, 15 Jan 2025 16:51:56 +0000 (18:51 +0200)] 
Merge tag 'ath-next-20250114' of git://git.kernel.org/pub/scm/linux/kernel/git/ath/ath

ath.git patches for v6.14

This development cycle again featured multiple patchsets to ath12k to
support the new 802.11be MLO feature, this time including the device
grouping infrastructure, and the advertisement of MLO support to the
wireless core. However the MLO feature is still considered to be
incomplete.

In addition, there was the usual set of bug fixes and cleanups, mostly
in ath12k, but also in ath9k.

5 months agowifi: wilc1000: unregister wiphy only after netdev registration
Alexis LothorĂ© [Tue, 14 Jan 2025 10:45:34 +0000 (11:45 +0100)] 
wifi: wilc1000: unregister wiphy only after netdev registration

wiphy_unregister()/wiphy_free() has been recently decoupled from
wilc_netdev_cleanup() to fix a faulty error path in sdio/spi probe
functions. However this change introduced a new failure when simply
loading then unloading the driver:

  $ modprobe wilc1000-sdio; modprobe -r wilc1000-sdio
  WARNING: CPU: 0 PID: 115 at net/wireless/core.c:1145 wiphy_unregister+0x904/0xc40 [cfg80211]
  Modules linked in: wilc1000_sdio(-) wilc1000 cfg80211 bluetooth ecdh_generic ecc
  CPU: 0 UID: 0 PID: 115 Comm: modprobe Not tainted 6.13.0-rc6+ #45
  Hardware name: Atmel SAMA5
  Call trace:
   unwind_backtrace from show_stack+0x18/0x1c
   show_stack from dump_stack_lvl+0x44/0x70
   dump_stack_lvl from __warn+0x118/0x27c
   __warn from warn_slowpath_fmt+0xcc/0x140
   warn_slowpath_fmt from wiphy_unregister+0x904/0xc40 [cfg80211]
   wiphy_unregister [cfg80211] from wilc_sdio_remove+0xb0/0x15c [wilc1000_sdio]
   wilc_sdio_remove [wilc1000_sdio] from sdio_bus_remove+0x104/0x3f0
   sdio_bus_remove from device_release_driver_internal+0x424/0x5dc
   device_release_driver_internal from driver_detach+0x120/0x224
   driver_detach from bus_remove_driver+0x17c/0x314
   bus_remove_driver from sys_delete_module+0x310/0x46c
   sys_delete_module from ret_fast_syscall+0x0/0x1c
  Exception stack(0xd0acbfa8 to 0xd0acbff0)
  bfa0:                   0044b210 0044b210 0044b24c 00000800 00000000 00000000
  bfc0: 0044b210 0044b210 00000000 00000081 00000000 0044b210 00000000 00000000
  bfe0: 00448e24 b6af99c4 0043ea0d aea2e12c
  irq event stamp: 0
  hardirqs last  enabled at (0): [<00000000>] 0x0
  hardirqs last disabled at (0): [<c01588f0>] copy_process+0x1c4c/0x7bec
  softirqs last  enabled at (0): [<c0158944>] copy_process+0x1ca0/0x7bec
  softirqs last disabled at (0): [<00000000>] 0x0

The warning is triggered by the fact that there is still a
wireless_device linked to the wiphy we are unregistering, due to
wiphy_unregister() now being called after net device unregister (performed
in wilc_netdev_cleanup()). Fix this warning by moving wiphy_unregister()
after wilc_netdev_cleanup() is nominal paths (ie: driver removal).
wilc_netdev_cleanup() ordering is left untouched in error paths in probe
function because net device is not registered in those paths (so the
warning can not trigger), yet the wiphy can still be registered, and we
still some cleanup steps from wilc_netdev_cleanup().

Fixes: 1be94490b6b8 ("wifi: wilc1000: unregister wiphy only if it has been registered")
Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://patch.msgid.link/20250114-wilc1000_modprobe-v1-1-ad19d46f0c07@bootlin.com
5 months agoMerge tag 'mt76-for-kvalo-2025-01-14' of https://github.com/nbd168/wireless
Kalle Valo [Wed, 15 Jan 2025 15:21:32 +0000 (17:21 +0200)] 
Merge tag 'mt76-for-kvalo-2025-01-14' of https://github.com/nbd168/wireless

mt76 patches for 6.14

- mlo fixes for mt792x
- single wiphy multiband support for mt7996
- mt7915 stability fixes

5 months agoMerge tag 'rtw-next-2025-01-12' of https://github.com/pkshih/rtw
Kalle Valo [Wed, 15 Jan 2025 15:20:10 +0000 (17:20 +0200)] 
Merge tag 'rtw-next-2025-01-12' of https://github.com/pkshih/rtw

rtw-next patches for v6.14

rtl8xxxu, rtlwifi and rtw88 fix field issues reported by users.
rtw89 is ongoing to implement MLO and fix issues during the development.

Major changes:

rtw88:

 - support LED blinking

rtw89:

 - support RTL8922AE-VS chip

5 months agowifi: cfg80211: adjust allocation of colocated AP data
Dmitry Antipov [Mon, 13 Jan 2025 15:54:17 +0000 (18:54 +0300)] 
wifi: cfg80211: adjust allocation of colocated AP data

In 'cfg80211_scan_6ghz()', an instances of 'struct cfg80211_colocated_ap'
are allocated as if they would have 'ssid' as trailing VLA member. Since
this is not so, extra IEEE80211_MAX_SSID_LEN bytes are not needed.
Briefly tested with KUnit.

Fixes: c8cb5b854b40 ("nl80211/cfg80211: support 6 GHz scanning")
Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
Link: https://patch.msgid.link/20250113155417.552587-1-dmantipov@yandex.ru
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
5 months agowifi: mac80211: fix memory leak in ieee80211_mgd_assoc_ml_reconf()
Dan Carpenter [Wed, 15 Jan 2025 06:54:52 +0000 (09:54 +0300)] 
wifi: mac80211: fix memory leak in ieee80211_mgd_assoc_ml_reconf()

Free the "data" allocation before returning on this error path.

Fixes: 36e05b0b8390 ("wifi: mac80211: Support dynamic link addition and removal")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Link: https://patch.msgid.link/7ad826a7-7651-48e7-9589-7d2dc17417c2@stanley.mountain
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
5 months agowifi: ath12k: fix key cache handling
Aditya Kumar Singh [Sun, 12 Jan 2025 05:53:00 +0000 (11:23 +0530)] 
wifi: ath12k: fix key cache handling

Currently, an interface is created in the driver during channel assignment.
If mac80211 attempts to set a key for an interface before this assignment,
the driver caches the key. Once the interface is created, the driver
installs the cached key to the hardware. This sequence is exemplified in
mesh mode operation where the group key is set before channel assignment.

However, in ath12k_mac_update_key_cache(), after caching the key, due to
incorrect logic, it is deleted from the cache during the subsequent loop
iteration. As a result, after the interface is created, the driver does not
find any cached key, and the key is not installed to the hardware which is
wrong. This leads to issue in mesh, where broadcast traffic is not
encrypted over the air.

Fix this issue by adjusting the logic of ath12k_mac_update_key_cache()
properly.

Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.3.1-00173-QCAHKSWPL_SILICONZ-1
Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.3-03253.1-QCAHKSWPL_SILICONZ-29 # Nicolas Escande <nico.escande@gmail.com>
Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.3.1-00173-QCAHKSWPL_SILICONZ-1  # Nicolas Escande <nico.escande@gmail.com>

Fixes: 25e18b9d6b4b ("wifi: ath12k: modify ath12k_mac_op_set_key() for MLO")
Signed-off-by: Aditya Kumar Singh <quic_adisi@quicinc.com>
Acked-by: Kalle Valo <kvalo@kernel.org>
Tested-by: Nicolas Escande <nico.escande@gmail.com>
Link: https://patch.msgid.link/20250112-fix_key_cache_handling-v2-1-70e142c6153e@quicinc.com
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
5 months agowifi: ath12k: Fix uninitialized variable access in ath12k_mac_allocate() function
Karthikeyan Periyasamy [Sun, 12 Jan 2025 07:16:30 +0000 (12:46 +0530)] 
wifi: ath12k: Fix uninitialized variable access in ath12k_mac_allocate() function

Currently, the uninitialized variable 'ab' is accessed in the
ath12k_mac_allocate() function. Initialize 'ab' with the first radio device
present in the hardware abstraction handle (ah). Additionally, move the
default setting procedure from the pdev mapping iteration to the total
radio calculating iteration for better code readability. Perform the
maximum radio validation check for total_radio to ensure that both num_hw
and radio_per_hw are validated indirectly, as these variables are derived
from total_radio. This also fixes the below Smatch static checker warning.

Smatch warning:
ath12k_mac_allocate() error: uninitialized symbol 'ab'

Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.3.1-00173-QCAHKSWPL_SILICONZ-1

Fixes: a343d97f27f5 ("wifi: ath12k: move struct ath12k_hw from per device to group")
Signed-off-by: Karthikeyan Periyasamy <quic_periyasa@quicinc.com>
Acked-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
Acked-by: Kalle Valo <kvalo@kernel.org>
Link: https://patch.msgid.link/20250112071630.4059410-5-quic_periyasa@quicinc.com
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
5 months agowifi: ath12k: Remove ath12k_get_num_hw() helper function
Karthikeyan Periyasamy [Sun, 12 Jan 2025 07:16:29 +0000 (12:46 +0530)] 
wifi: ath12k: Remove ath12k_get_num_hw() helper function

Currently, the ath12k_get_num_hw() helper function takes the device handle
as an argument. Here, the number of hardware is retrieved from the group
handle. Demanding the device handle from the caller is unnecessary since
in some cases the group handle is already available. Additionally, there
is no longer a need for multiple indirections to get the number of
hardware. Therefore, remove this helper function and directly use
ag->num_hw. This change also fixes the below Smatch static checker
warning.

Smatch warning:
ath12k_mac_destroy() error: we previously assumed 'ab' could be null

Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.3.1-00173-QCAHKSWPL_SILICONZ-1

Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Closes: https://lore.kernel.org/ath12k/3e705de0-67d1-4437-97ff-4828d83ae2af@stanley.mountain/
Closes: https://scan7.scan.coverity.com/#/project-view/52682/11354?selectedIssue=1602340
Fixes: a343d97f27f5 ("wifi: ath12k: move struct ath12k_hw from per device to group")
Signed-off-by: Karthikeyan Periyasamy <quic_periyasa@quicinc.com>
Acked-by: Kalle Valo <kvalo@kernel.org>
Acked-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
Link: https://patch.msgid.link/20250112071630.4059410-4-quic_periyasa@quicinc.com
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
5 months agowifi: ath12k: Refactor the ath12k_hw get helper function argument
Karthikeyan Periyasamy [Sun, 12 Jan 2025 07:16:28 +0000 (12:46 +0530)] 
wifi: ath12k: Refactor the ath12k_hw get helper function argument

Currently, ath12k_hw is placed inside the ath12k_hw_group. However, the
ath12k_hw get helper function takes the device handle and the index as
parameters. Here, the index parameter is specific to the group handle.
Therefore, change this helper function argument from the device handle
to the group handle.

Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.3.1-00173-QCAHKSWPL_SILICONZ-1

Signed-off-by: Karthikeyan Periyasamy <quic_periyasa@quicinc.com>
Acked-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
Acked-by: Kalle Valo <kvalo@kernel.org>
Link: https://patch.msgid.link/20250112071630.4059410-3-quic_periyasa@quicinc.com
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
5 months agowifi: ath12k: Refactor ath12k_hw set helper function argument
Karthikeyan Periyasamy [Sun, 12 Jan 2025 07:16:27 +0000 (12:46 +0530)] 
wifi: ath12k: Refactor ath12k_hw set helper function argument

Currently, ath12k_hw is placed inside the ath12k_hw_group. However, the
ath12k_hw set helper function takes the device handle and the index as
parameters. Here, the index parameter is specific to the group handle.
Therefore, change this helper function argument from the device handle to
the group handle.

Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.3.1-00173-QCAHKSWPL_SILICONZ-1

Signed-off-by: Karthikeyan Periyasamy <quic_periyasa@quicinc.com>
Acked-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
Acked-by: Kalle Valo <kvalo@kernel.org>
Link: https://patch.msgid.link/20250112071630.4059410-2-quic_periyasa@quicinc.com
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
5 months agowifi: mt76: mt7996: add implicit beamforming support for mt7992
Howard Hsu [Tue, 14 Jan 2025 10:10:26 +0000 (18:10 +0800)] 
wifi: mt76: mt7996: add implicit beamforming support for mt7992

The configuration of mt7992 iBF has some differences to mt7996, rework
related code to make it work.
Also, most of our chipsets support iBF only on HT and VHT mode, except
mt7992 variant that has 5T on 5GHz band also supports iBF on HE and EHT
mode.

Co-developed-by: Shayne Chen <shayne.chen@mediatek.com>
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Signed-off-by: Howard Hsu <howard-yh.hsu@mediatek.com>
Link: https://patch.msgid.link/20250114101026.3587702-9-shayne.chen@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7996: fix beacon command during disabling
Michael-CY Lee [Tue, 14 Jan 2025 10:10:25 +0000 (18:10 +0800)] 
wifi: mt76: mt7996: fix beacon command during disabling

When stopping AP, mac80211 frees beacon template before it calls
driver's stop_ap operation. In other words, on the path of stopping
AP, ieee80211_beacon_get_template() must returns NULL in
mt7996_mcu_add_beacon(). In such case mt7996 immediately returns
-EINVAL without telling FW to disable the beacon.

This commit refactors mt7996_mcu_add_beacon() so that FW can be
correctly informed when disabling AP interface.

Co-developed-by: Shayne Chen <shayne.chen@mediatek.com>
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Signed-off-by: Michael-CY Lee <michael-cy.lee@mediatek.com>
Link: https://patch.msgid.link/20250114101026.3587702-8-shayne.chen@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7996: fix ldpc setting
Peter Chiu [Tue, 14 Jan 2025 10:10:24 +0000 (18:10 +0800)] 
wifi: mt76: mt7996: fix ldpc setting

The non-AP interfaces would not use conf->vht_ldpc so they never set
STA_CAP_VHT_LDPC even if peer-station support LDPC.
Check conf->vht_ldpc only for AP interface.

Without this patch, station only uses BCC to transmit packet in VHT mode.

Fixes: dda423dd65c3 ("wifi: mt76: mt7996: remove mt7996_mcu_beacon_check_caps()")
Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Link: https://patch.msgid.link/20250114101026.3587702-7-shayne.chen@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7996: fix definition of tx descriptor
Benjamin Lin [Tue, 14 Jan 2025 10:10:23 +0000 (18:10 +0800)] 
wifi: mt76: mt7996: fix definition of tx descriptor

For mt7992 chipsets, the definition of TXD.DW6.BIT10~15 has different
interpretations on different frame types. Driver only needs to fill
MSDU_CNT for non-management frames.

Fixes: 408566db8cad ("wifi: mt76: connac: add new definition of tx descriptor")
Co-developed-by: Shayne Chen <shayne.chen@mediatek.com>
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Signed-off-by: Benjamin Lin <benjamin-jw.lin@mediatek.com>
Link: https://patch.msgid.link/20250114101026.3587702-6-shayne.chen@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: connac: adjust phy capabilities based on band constraints
Howard Hsu [Tue, 14 Jan 2025 10:10:22 +0000 (18:10 +0800)] 
wifi: mt76: connac: adjust phy capabilities based on band constraints

Adjust HE and EHT phy capabilities based on the band constraints.
For 2g band, we shall not enable the capabilities above 40MHz.

Signed-off-by: Howard Hsu <howard-yh.hsu@mediatek.com>
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Link: https://patch.msgid.link/20250114101026.3587702-5-shayne.chen@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7996: fix incorrect indexing of MIB FW event
Benjamin Lin [Tue, 14 Jan 2025 10:10:21 +0000 (18:10 +0800)] 
wifi: mt76: mt7996: fix incorrect indexing of MIB FW event

Fix wrong calculation of the channel times due to incorrect
interpretation from the FW event.

Fixes: 98686cd21624 ("wifi: mt76: mt7996: add driver for MediaTek Wi-Fi 7 (802.11be) devices")
Signed-off-by: Benjamin Lin <benjamin-jw.lin@mediatek.com>
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Link: https://patch.msgid.link/20250114101026.3587702-4-shayne.chen@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7996: fix HE Phy capability
Howard Hsu [Tue, 14 Jan 2025 10:10:20 +0000 (18:10 +0800)] 
wifi: mt76: mt7996: fix HE Phy capability

Set HE SU PPDU And HE MU PPDU With 4x HE-LTF And 0.8 us GI within HE PHY
Capabilities element as 1 since hardware can support.

Fixes: 98686cd21624 ("wifi: mt76: mt7996: add driver for MediaTek Wi-Fi 7 (802.11be) devices")
Signed-off-by: Howard Hsu <howard-yh.hsu@mediatek.com>
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Link: https://patch.msgid.link/20250114101026.3587702-3-shayne.chen@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7996: fix the capability of reception of EHT MU PPDU
Howard Hsu [Tue, 14 Jan 2025 10:10:19 +0000 (18:10 +0800)] 
wifi: mt76: mt7996: fix the capability of reception of EHT MU PPDU

This commit includes two changes. First, enable "EHT MU PPDU With 4x
EHT-LTF And 0.8us GI" in EHT Phy capabilities element since hardware
can support. Second, fix the value of "Maximum number of supported
EHT LTFs" in the same element, where the previous setting of 3 in
Bit 3-4 was incorrect.

Fixes: 348533eb968d ("wifi: mt76: mt7996: add EHT capability init")
Signed-off-by: Howard Hsu <howard-yh.hsu@mediatek.com>
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Link: https://patch.msgid.link/20250114101026.3587702-2-shayne.chen@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7996: add max mpdu len capability
Peter Chiu [Tue, 14 Jan 2025 10:10:18 +0000 (18:10 +0800)] 
wifi: mt76: mt7996: add max mpdu len capability

Set max mpdu len to 11454 according to hardware capability.
Without this patch, the max ampdu length would be 3895 and count not get
expected performance.

Fixes: 348533eb968d ("wifi: mt76: mt7996: add EHT capability init")
Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Link: https://patch.msgid.link/20250114101026.3587702-1-shayne.chen@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7921: avoid undesired changes of the preset regulatory domain
Leon Yen [Fri, 12 Apr 2024 08:53:57 +0000 (16:53 +0800)] 
wifi: mt76: mt7921: avoid undesired changes of the preset regulatory domain

Some countries have strict RF restrictions where changing the regulatory
domain dynamically based on the connected AP is not acceptable.
This patch disables Beacon country IE hinting when a valid country code
is set from usersland (e.g., by system using iw or CRDA).

Signed-off-by: Leon Yen <leon.yen@mediatek.com>
Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Tested-by: David Ruth <druth@chromium.org>
Link: https://patch.msgid.link/20240412085357.13756-1-mingyen.hsieh@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7925e: fix too long of wifi resume time
Quan Zhou [Fri, 3 Jan 2025 13:53:50 +0000 (21:53 +0800)] 
wifi: mt76: mt7925e: fix too long of wifi resume time

The mt7925e takes a long time to resume in platform resume
scenarios. This is due to the mt7925 reconfiguring the tx
power for each wifi channel during resume. By streamlining
the process and removing redundant power configurations,
the resume time for the mt7925 can be shortened.

Signed-off-by: Quan Zhou <quan.zhou@mediatek.com>
Link: https://patch.msgid.link/f075d43d87a5eefa5869baf755e9986edf735860.1735910836.git.quan.zhou@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7925: add handler to hif suspend/resume event
Quan Zhou [Fri, 3 Jan 2025 13:44:54 +0000 (21:44 +0800)] 
wifi: mt76: mt7925: add handler to hif suspend/resume event

When the system suspend or resume, the WiFi driver sends
an hif_ctrl command to the firmware and waits for an event.
Due to changes in the event format reported by the chip, the
current mt7925's driver does not account for these changes,
resulting in command timeout. Add flow to handle hif_ctrl
event to avoid command timeout. We also exented API
mt76_connac_mcu_set_hif_suspend for connac3 this time.

Signed-off-by: Quan Zhou <quan.zhou@mediatek.com>
Link: https://patch.msgid.link/3a0844ff5162142c4a9f3cf7104f75076ddd3b87.1735910562.git.quan.zhou@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7925: fix CLC command timeout when suspend/resume
Quan Zhou [Fri, 3 Jan 2025 13:39:43 +0000 (21:39 +0800)] 
wifi: mt76: mt7925: fix CLC command timeout when suspend/resume

When enter suspend/resume while in a connected state, the upper layer
will trigger disconnection before entering suspend, and at the same time,
it will trigger regd_notifier() and update CLC, causing the CLC event to
not be received due to suspend, resulting in a command timeout.

Therefore, the update of CLC is postponed until resume, to ensure data
consistency and avoid the occurrence of command timeout.

Signed-off-by: Quan Zhou <quan.zhou@mediatek.com>
Link: https://patch.msgid.link/bab00a2805d0533fd8beaa059222659858a9dcb5.1735910455.git.quan.zhou@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7925: fix the unfinished command of regd_notifier before suspend
Quan Zhou [Fri, 3 Jan 2025 13:35:59 +0000 (21:35 +0800)] 
wifi: mt76: mt7925: fix the unfinished command of regd_notifier before suspend

Before entering suspend, we need to ensure that all MCU command are
completed. In some cases, such as with regd_notifier, there is a
chance that CLC commands, will be executed before suspend.

Signed-off-by: Quan Zhou <quan.zhou@mediatek.com>
Link: https://patch.msgid.link/3af7b4e5bf7437832b016e32743657d1d55b1f9d.1735910288.git.quan.zhou@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7996: fix register mapping
Peter Chiu [Thu, 9 Jan 2025 11:04:36 +0000 (19:04 +0800)] 
wifi: mt76: mt7996: fix register mapping

Bypass the entry when ofs is equal to dev->reg.map[i].size.
Without this patch, it would get incorrect register mapping when the CR
address is located at the boundary of an entry.

Fixes: 98686cd21624 ("wifi: mt76: mt7996: add driver for MediaTek Wi-Fi 7 (802.11be) devices")
Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
Signed-off-by: Shengyu Qu <wiagn233@outlook.com>
Link: https://patch.msgid.link/OSZPR01MB84344FEFF53004B5CF40BCC198132@OSZPR01MB8434.jpnprd01.prod.outlook.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7915: fix register mapping
Peter Chiu [Thu, 9 Jan 2025 11:04:35 +0000 (19:04 +0800)] 
wifi: mt76: mt7915: fix register mapping

Bypass the entry when ofs is equal to dev->reg.map[i].size.
Without this patch, it would get incorrect register mapping when the CR
address is located at the boundary of an entry.

Fixes: cd4c314a65d3 ("mt76: mt7915: refine register definition")
Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
Signed-off-by: Shengyu Qu <wiagn233@outlook.com>
Link: https://patch.msgid.link/OSZPR01MB843401EAA1DA6BD7AEF356F298132@OSZPR01MB8434.jpnprd01.prod.outlook.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7996: fix monitor mode
Felix Fietkau [Thu, 2 Jan 2025 16:35:08 +0000 (17:35 +0100)] 
wifi: mt76: mt7996: fix monitor mode

Enable sniffer mode via MCU command in order to properly enable promiscuous
mode on the device.

Link: https://patch.msgid.link/20250102163508.52945-24-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7996: switch to single multi-radio wiphy
Felix Fietkau [Thu, 2 Jan 2025 16:35:07 +0000 (17:35 +0100)] 
wifi: mt76: mt7996: switch to single multi-radio wiphy

Use generic mt76 chanctx functions and look up phy from vif link.
The driver now uses only a single phy to handle multiple interfaces on
different channels. This is preparation for full MLO support.

Link: https://patch.msgid.link/20250102163508.52945-23-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7996: move all debugfs files to the primary phy
Felix Fietkau [Thu, 2 Jan 2025 16:35:06 +0000 (17:35 +0100)] 
wifi: mt76: mt7996: move all debugfs files to the primary phy

Preparation for single-wiphy support

Link: https://patch.msgid.link/20250102163508.52945-22-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: connac: rework connac helpers
Shayne Chen [Thu, 2 Jan 2025 16:35:05 +0000 (17:35 +0100)] 
wifi: mt76: connac: rework connac helpers

Rework connac helpers related to rate and phymode.
This is a preliminary patch to add MLO support for mt7996 chipsets.

Co-developed-by: Bo Jiao <Bo.Jiao@mediatek.com>
Signed-off-by: Bo Jiao <Bo.Jiao@mediatek.com>
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Link: https://patch.msgid.link/20250102163508.52945-21-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7996: prepare mt7996_mcu_update_bss_color for MLO support
Felix Fietkau [Thu, 2 Jan 2025 16:35:04 +0000 (17:35 +0100)] 
wifi: mt76: mt7996: prepare mt7996_mcu_update_bss_color for MLO support

Pass in struct mt76_vif_link in order to update the correct link.

Link: https://patch.msgid.link/20250102163508.52945-20-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: connac: prepare mt76_connac_mcu_sta_basic_tlv for MLO support
Felix Fietkau [Thu, 2 Jan 2025 16:35:03 +0000 (17:35 +0100)] 
wifi: mt76: connac: prepare mt76_connac_mcu_sta_basic_tlv for MLO support

Pass in struct ieee80211_bss_conf in order to use link specific data.

Link: https://patch.msgid.link/20250102163508.52945-19-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7996: prepare mt7996_mcu_set_timing for MLO support
Felix Fietkau [Thu, 2 Jan 2025 16:35:02 +0000 (17:35 +0100)] 
wifi: mt76: mt7996: prepare mt7996_mcu_set_timing for MLO support

Pass in struct ieee80211_bss_conf in order to use link specific data.

Link: https://patch.msgid.link/20250102163508.52945-18-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7996: prepare mt7996_mcu_set_tx for MLO support
Felix Fietkau [Thu, 2 Jan 2025 16:35:01 +0000 (17:35 +0100)] 
wifi: mt76: mt7996: prepare mt7996_mcu_set_tx for MLO support

Pass in struct ieee80211_bss_conf in order to use link specific data.

Link: https://patch.msgid.link/20250102163508.52945-17-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7996: prepare mt7996_mcu_add_beacon for MLO support
Felix Fietkau [Thu, 2 Jan 2025 16:35:00 +0000 (17:35 +0100)] 
wifi: mt76: mt7996: prepare mt7996_mcu_add_beacon for MLO support

Pass in struct ieee80211_bss_conf.

Link: https://patch.msgid.link/20250102163508.52945-16-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7996: prepare mt7996_mcu_add_dev/bss_info for MLO support
Felix Fietkau [Thu, 2 Jan 2025 16:34:59 +0000 (17:34 +0100)] 
wifi: mt76: mt7996: prepare mt7996_mcu_add_dev/bss_info for MLO support

Add extra arguments for struct ieee80211_bss_conf and mt76_vif_link.

Link: https://patch.msgid.link/20250102163508.52945-15-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7996: pass wcid to mt7996_mcu_sta_hdr_trans_tlv
Felix Fietkau [Thu, 2 Jan 2025 16:34:58 +0000 (17:34 +0100)] 
wifi: mt76: mt7996: pass wcid to mt7996_mcu_sta_hdr_trans_tlv

Preparation for MLO support.

Link: https://patch.msgid.link/20250102163508.52945-14-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7996: use emulated hardware scan support
Felix Fietkau [Thu, 2 Jan 2025 16:34:57 +0000 (17:34 +0100)] 
wifi: mt76: mt7996: use emulated hardware scan support

Preparation for supporting multiple radios on a single wiphy

Link: https://patch.msgid.link/20250102163508.52945-13-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: add multi-radio remain_on_channel functions
Felix Fietkau [Thu, 2 Jan 2025 16:34:56 +0000 (17:34 +0100)] 
wifi: mt76: add multi-radio remain_on_channel functions

This allows a driver using the generic channel context functions to
temporarily switch to another channel for off-channel rx/tx.

Link: https://patch.msgid.link/20250102163508.52945-12-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: add multi-radio support to scanning code
Felix Fietkau [Thu, 2 Jan 2025 16:34:55 +0000 (17:34 +0100)] 
wifi: mt76: add multi-radio support to scanning code

When scanning on a phy/vif combination that does not have an active link,
create a temporary link in order to ensure that we have a valid wcid.

Link: https://patch.msgid.link/20250102163508.52945-11-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: add multi-radio support to tx scheduling
Felix Fietkau [Thu, 2 Jan 2025 16:34:54 +0000 (17:34 +0100)] 
wifi: mt76: add multi-radio support to tx scheduling

Look up the phy for each scheduled txq. Only run one scheduling loop per hw.

Link: https://patch.msgid.link/20250102163508.52945-10-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: add multi-radio support to a few core hw ops
Felix Fietkau [Thu, 2 Jan 2025 16:34:53 +0000 (17:34 +0100)] 
wifi: mt76: add multi-radio support to a few core hw ops

Iterate over all phys if multi-radio is supported by the driver

Link: https://patch.msgid.link/20250102163508.52945-9-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: remove dev->wcid_phy_mask
Felix Fietkau [Thu, 2 Jan 2025 16:34:52 +0000 (17:34 +0100)] 
wifi: mt76: remove dev->wcid_phy_mask

Explicitly check wcid->phy_idx instead. Reduces allocated data size.

Link: https://patch.msgid.link/20250102163508.52945-8-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: add chanctx functions for multi-channel phy support
Felix Fietkau [Thu, 2 Jan 2025 16:34:51 +0000 (17:34 +0100)] 
wifi: mt76: add chanctx functions for multi-channel phy support

This adds an implementation for the chanctx functions, which can be used
by multi-channel capable drivers. Preparation for adding MLO support.

Link: https://patch.msgid.link/20250102163508.52945-7-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: initialize more wcid fields mt76_wcid_init
Felix Fietkau [Thu, 2 Jan 2025 16:34:50 +0000 (17:34 +0100)] 
wifi: mt76: initialize more wcid fields mt76_wcid_init

Reduces code duplication and ensures that the phy index is always set.

Link: https://patch.msgid.link/20250102163508.52945-6-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7996: split link specific data from struct mt7996_vif
Felix Fietkau [Thu, 2 Jan 2025 16:34:49 +0000 (17:34 +0100)] 
wifi: mt76: mt7996: split link specific data from struct mt7996_vif

Preparation for MLO support.

Link: https://patch.msgid.link/20250102163508.52945-5-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: add vif link specific data structure
Felix Fietkau [Thu, 2 Jan 2025 16:34:48 +0000 (17:34 +0100)] 
wifi: mt76: add vif link specific data structure

Preparation for splitting link data from vif data for MLO support.

Link: https://patch.msgid.link/20250102163508.52945-4-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: rename struct mt76_vif to mt76_vif_link
Felix Fietkau [Thu, 2 Jan 2025 16:34:47 +0000 (17:34 +0100)] 
wifi: mt76: rename struct mt76_vif to mt76_vif_link

Preparation to use it for private bss link data instead of the full vif
on MLO capable devices.

Link: https://patch.msgid.link/20250102163508.52945-3-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: add support for allocating a phy without hw
Felix Fietkau [Thu, 2 Jan 2025 16:34:46 +0000 (17:34 +0100)] 
wifi: mt76: add support for allocating a phy without hw

Preparation for supporting a single hw with multiple radios

Link: https://patch.msgid.link/20250102163508.52945-2-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: add code for emulating hardware scanning
Felix Fietkau [Thu, 2 Jan 2025 16:34:45 +0000 (17:34 +0100)] 
wifi: mt76: add code for emulating hardware scanning

Preparation for supporting multiple radios on a single wiphy on devices
where firmware does not support actual hardware scanning.
This is also a prerequisite for full MLO support

Co-developed-by: Peter Chiu <chui-hao.chiu@mediatek.com>
Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
Co-developed-by: Michael-CY Lee <michael-cy.lee@mediatek.com>
Signed-off-by: Michael-CY Lee <michael-cy.lee@mediatek.com>
Co-developed-by: Shayne Chen <shayne.chen@mediatek.com>
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Link: https://patch.msgid.link/20250102163508.52945-1-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: do not add wcid entries to sta poll list during MCU reset
Felix Fietkau [Mon, 30 Dec 2024 19:42:02 +0000 (20:42 +0100)] 
wifi: mt76: do not add wcid entries to sta poll list during MCU reset

Fixes linked list management issues during restart, where sta entries
can be recreated and reinitialized while still in the poll list, triggering
kernel warnings.

Link: https://patch.msgid.link/20241230194202.95065-14-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7996: use mac80211 .sta_state op
Felix Fietkau [Mon, 30 Dec 2024 19:42:01 +0000 (20:42 +0100)] 
wifi: mt76: mt7996: use mac80211 .sta_state op

Allows adding stations before assoc, though they are not passed to the
firmware yet at that point.

Link: https://patch.msgid.link/20241230194202.95065-13-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7915: fix omac index assignment after hardware reset
Felix Fietkau [Mon, 30 Dec 2024 19:42:00 +0000 (20:42 +0100)] 
wifi: mt76: mt7915: fix omac index assignment after hardware reset

Reset per-phy mac address slot mask in order to avoid leaking entries.

Fixes: 8a55712d124f ("wifi: mt76: mt7915: enable full system reset support")
Link: https://patch.msgid.link/20241230194202.95065-12-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7915: firmware restart on devices with a second pcie link
Felix Fietkau [Mon, 30 Dec 2024 19:41:59 +0000 (20:41 +0100)] 
wifi: mt76: mt7915: firmware restart on devices with a second pcie link

It seems that the firmware checks the register used for detecting matching
PCIe links in order to figure out if a secondary PCIe link is enabled.
Write the register again just before starting the firmware on hw reset,
in order to fix an issue that left the second band unusable after restart.

Fixes: 9093cfff72e3 ("mt76: mt7915: add support for using a secondary PCIe link for gen1")
Link: https://patch.msgid.link/20241230194202.95065-11-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7915: hold dev->mutex while interacting with the thermal state
Felix Fietkau [Mon, 30 Dec 2024 19:41:58 +0000 (20:41 +0100)] 
wifi: mt76: mt7915: hold dev->mutex while interacting with the thermal state

Avoid issuing MCU calls during a hardware restart

Link: https://patch.msgid.link/20241230194202.95065-10-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7915: ensure that only one sta entry is active per mac address
Felix Fietkau [Mon, 30 Dec 2024 19:41:57 +0000 (20:41 +0100)] 
wifi: mt76: mt7915: ensure that only one sta entry is active per mac address

When a client is roaming to a different AP interface, a duplicate wtbl entry
can be created. This can lead to lost packets or aggregation issues until
the old entry expires.
In order to fix this issue, delete any conflicting entries from WTBL
whenever a station is authorized.

Link: https://patch.msgid.link/20241230194202.95065-9-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: only enable tx worker after setting the channel
Felix Fietkau [Mon, 30 Dec 2024 19:41:56 +0000 (20:41 +0100)] 
wifi: mt76: only enable tx worker after setting the channel

Avoids sending packets too early

Fixes: 0b3be9d1d34e ("wifi: mt76: add separate tx scheduling queue for off-channel tx")
Link: https://patch.msgid.link/20241230194202.95065-8-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7915: decrease timeout for commonly issued MCU commands
Felix Fietkau [Mon, 30 Dec 2024 19:41:55 +0000 (20:41 +0100)] 
wifi: mt76: mt7915: decrease timeout for commonly issued MCU commands

This allows faster recovery from firmware issues

Link: https://patch.msgid.link/20241230194202.95065-7-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7915: reduce the number of command retries
Felix Fietkau [Mon, 30 Dec 2024 19:41:54 +0000 (20:41 +0100)] 
wifi: mt76: mt7915: reduce the number of command retries

The need to retry a command is really uncommon. Reduce the retries to 1 to
speed up recovery from firmware issues.

Link: https://patch.msgid.link/20241230194202.95065-6-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7996: fix rx filter setting for bfee functionality
Felix Fietkau [Mon, 30 Dec 2024 19:41:53 +0000 (20:41 +0100)] 
wifi: mt76: mt7996: fix rx filter setting for bfee functionality

Fix rx filter setting to prevent dropping NDPA frames. Without this
change, bfee functionality may behave abnormally.

Fixes: 98686cd21624 ("wifi: mt76: mt7996: add driver for MediaTek Wi-Fi 7 (802.11be) devices")
Link: https://patch.msgid.link/20241230194202.95065-5-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7915: fix eifs value on older chipsets
Felix Fietkau [Mon, 30 Dec 2024 19:41:52 +0000 (20:41 +0100)] 
wifi: mt76: mt7915: fix eifs value on older chipsets

Use the default firmware values

Link: https://patch.msgid.link/20241230194202.95065-4-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7915: fix slot time for 5/6GHz
Felix Fietkau [Mon, 30 Dec 2024 19:41:51 +0000 (20:41 +0100)] 
wifi: mt76: mt7915: fix slot time for 5/6GHz

It should only be set to 20 for long slot time on 2.4 GHz

Link: https://patch.msgid.link/20241230194202.95065-3-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7996: remove phy->monitor_vif
Felix Fietkau [Mon, 30 Dec 2024 19:41:50 +0000 (20:41 +0100)] 
wifi: mt76: mt7996: remove phy->monitor_vif

It is unused

Link: https://patch.msgid.link/20241230194202.95065-2-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: remove mt76_calculate_default_rate()
Felix Fietkau [Mon, 30 Dec 2024 19:41:49 +0000 (20:41 +0100)] 
wifi: mt76: remove mt76_calculate_default_rate()

It is only used in mt76_connac2_mac_tx_rate_val, inline it there.

Link: https://patch.msgid.link/20241230194202.95065-1-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7921u: Add VID/PID for TP-Link TXE50UH
Nick Morrow [Thu, 19 Dec 2024 14:12:14 +0000 (08:12 -0600)] 
wifi: mt76: mt7921u: Add VID/PID for TP-Link TXE50UH

Add VID/PID 35bc/0107 for recently released TP-Link TXE50UH USB WiFi adapter.

Tested-by: Shang Chieh Tseng <shangchieh.tseng@tsengsy.com>
Signed-off-by: Nick Morrow <usbwifi2024@gmail.com>
Cc: stable@vger.kernel.org
Link: https://patch.msgid.link/e797f105-9ca8-41e9-96de-7d25dec09943@gmail.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7925: replace zero-length array with flexible-array member
Zhang Kunbo [Wed, 18 Dec 2024 07:45:52 +0000 (07:45 +0000)] 
wifi: mt76: mt7925: replace zero-length array with flexible-array member

The current codebase makes use of the zero-length array language
extension to the C90 standard, but the preferred mechanism to declare
variable-length types such as these ones is a flexible array member[1],
introduced in C99:

struct foo {
int stuff;
struct boo array[];
};

By making use of the mechanism above, we will get a compiler warning
in case the flexible array does not occur last, which is beneficial
to cultivate a high-quality code.[2]

This issue was found with the help of Coccinelle.

[1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
[2] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour")

Signed-off-by: Zhang Kunbo <zhangkunbo@huawei.com>
Link: https://patch.msgid.link/20241218074552.3271542-1-zhangkunbo@huawei.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7921: add rfkill_poll for hardware rfkill
Allan Wang [Mon, 9 Dec 2024 07:09:22 +0000 (15:09 +0800)] 
wifi: mt76: mt7921: add rfkill_poll for hardware rfkill

Add mac80211 rfkill_poll ops to monitor hardware rfkill state
and state change will be updated.

Signed-off-by: Allan Wang <allan.wang@mediatek.com>
Link: https://patch.msgid.link/20241209070922.28106-1-allan.wang@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7921: introduce CSA support
Leon Yen [Thu, 7 Nov 2024 06:14:40 +0000 (14:14 +0800)] 
wifi: mt76: mt7921: introduce CSA support

Add CSA (Channel Switch Announcement) related implementation
in collaboration with mac80211 to deal with dynamic channel
switching.

Signed-off-by: Leon Yen <leon.yen@mediatek.com>
Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Link: https://patch.msgid.link/20241107061440.6545-1-mingyen.hsieh@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7925: config the dwell time by firmware
Michael Lo [Wed, 6 Nov 2024 01:32:21 +0000 (09:32 +0800)] 
wifi: mt76: mt7925: config the dwell time by firmware

To optimize the scan time of mt7925, remove the dwell time
setting for the scan command and let it be controlled by
the firmware as mt7921.

Signed-off-by: Michael Lo <michael.lo@mediatek.com>
Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Link: https://patch.msgid.link/20241106013221.18101-1-mingyen.hsieh@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: do not hold queue lock during initial rx buffer alloc
Quan Zhou [Fri, 8 Nov 2024 12:59:40 +0000 (20:59 +0800)] 
wifi: mt76: do not hold queue lock during initial rx buffer alloc

In dma init or reset scene, full buffer is needed for all rx rings. Since
this is very time consuming, split the function to perform initial
allocation without holding the spinlock. This avoids causing excessive
scheduler latency.

Signed-off-by: Quan Zhou <quan.zhou@mediatek.com>
Reviewed-by: Shayne Chen <shayne.chen@mediatek.com>
Reviewed-by: Deren Wu <deren.wu@mediatek.com>
Link: https://patch.msgid.link/57c68a7ce1dd9022fa5e06af2c53d6313f30ec83.1731069062.git.quan.zhou@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7925: Properly handle responses for commands with events
Ming Yen Hsieh [Wed, 11 Dec 2024 01:19:26 +0000 (17:19 -0800)] 
wifi: mt76: mt7925: Properly handle responses for commands with events

Properly retrieve the response for commands with events. Ensure accurate
handling of event-driven commands.

Fixes: 86c051f2c418 ("wifi: mt76: mt7925: enabling MLO when the firmware supports it")
Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Link: https://patch.msgid.link/20241211011926.5002-17-sean.wang@kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7925: Cleanup MLO settings post-disconnection
Ming Yen Hsieh [Wed, 11 Dec 2024 01:19:25 +0000 (17:19 -0800)] 
wifi: mt76: mt7925: Cleanup MLO settings post-disconnection

Clean up MLO settings after disconnection.

Fixes: 86c051f2c418 ("wifi: mt76: mt7925: enabling MLO when the firmware supports it")
Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Link: https://patch.msgid.link/20241211011926.5002-16-sean.wang@kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7925: Update mt7925_mcu_uni_[tx,rx]_ba for MLO
Ming Yen Hsieh [Wed, 11 Dec 2024 01:19:24 +0000 (17:19 -0800)] 
wifi: mt76: mt7925: Update mt7925_mcu_uni_[tx,rx]_ba for MLO

Update mt7925_mcu_uni_[tx,rx]_ba for MLO support in firmware.

Fixes: 86c051f2c418 ("wifi: mt76: mt7925: enabling MLO when the firmware supports it")
Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Link: https://patch.msgid.link/20241211011926.5002-15-sean.wang@kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7925: Init secondary link PM state
Ming Yen Hsieh [Wed, 11 Dec 2024 01:19:23 +0000 (17:19 -0800)] 
wifi: mt76: mt7925: Init secondary link PM state

Initialize secondary link PM state.

Fixes: 86c051f2c418 ("wifi: mt76: mt7925: enabling MLO when the firmware supports it")
Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Link: https://patch.msgid.link/20241211011926.5002-14-sean.wang@kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7925: Update secondary link PS flow
Ming Yen Hsieh [Wed, 11 Dec 2024 01:19:22 +0000 (17:19 -0800)] 
wifi: mt76: mt7925: Update secondary link PS flow

Update the power-saving flow for secondary links.

Fixes: 86c051f2c418 ("wifi: mt76: mt7925: enabling MLO when the firmware supports it")
Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Link: https://patch.msgid.link/20241211011926.5002-13-sean.wang@kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7925: Update mt7925_unassign_vif_chanctx for per-link BSS
Ming Yen Hsieh [Wed, 11 Dec 2024 01:19:21 +0000 (17:19 -0800)] 
wifi: mt76: mt7925: Update mt7925_unassign_vif_chanctx for per-link BSS

Update mt7925_unassign_vif_chanctx to support per-link BSS.

Fixes: 86c051f2c418 ("wifi: mt76: mt7925: enabling MLO when the firmware supports it")
Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Link: https://patch.msgid.link/20241211011926.5002-12-sean.wang@kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7925: Update mt792x_rx_get_wcid for per-link STA
Ming Yen Hsieh [Wed, 11 Dec 2024 01:19:20 +0000 (17:19 -0800)] 
wifi: mt76: mt7925: Update mt792x_rx_get_wcid for per-link STA

Update mt792x_rx_get_wcid to support per-link STA.

Fixes: 86c051f2c418 ("wifi: mt76: mt7925: enabling MLO when the firmware supports it")
Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Link: https://patch.msgid.link/20241211011926.5002-11-sean.wang@kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7925: Update mt7925_mcu_sta_update for BC in ASSOC state
Ming Yen Hsieh [Wed, 11 Dec 2024 01:19:19 +0000 (17:19 -0800)] 
wifi: mt76: mt7925: Update mt7925_mcu_sta_update for BC in ASSOC state

Update mt7925_mcu_sta_update for broadcast (BC) in the ASSOC state.

Fixes: 86c051f2c418 ("wifi: mt76: mt7925: enabling MLO when the firmware supports it")
Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Link: https://patch.msgid.link/20241211011926.5002-10-sean.wang@kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: Enhance mt7925_mac_link_sta_add to support MLO
Ming Yen Hsieh [Wed, 11 Dec 2024 01:19:18 +0000 (17:19 -0800)] 
wifi: mt76: Enhance mt7925_mac_link_sta_add to support MLO

Enhance mt7925_mac_link_sta_add to support MLO.

Fixes: 86c051f2c418 ("wifi: mt76: mt7925: enabling MLO when the firmware supports it")
Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Link: https://patch.msgid.link/20241211011926.5002-9-sean.wang@kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7925: Enhance mt7925_mac_link_bss_add to support MLO
Ming Yen Hsieh [Wed, 11 Dec 2024 01:19:17 +0000 (17:19 -0800)] 
wifi: mt76: mt7925: Enhance mt7925_mac_link_bss_add to support MLO

In mt7925_mac_link_bss_add(), the mt76_connac_mcu_uni_add_dev() function
must be executed only after all parameters have been properly initialized.

Fixes: 86c051f2c418 ("wifi: mt76: mt7925: enabling MLO when the firmware supports it")
Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Link: https://patch.msgid.link/20241211011926.5002-8-sean.wang@kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7925: Fix CNM Timeout with Single Active Link in MLO
Leon Yen [Wed, 11 Dec 2024 01:19:16 +0000 (17:19 -0800)] 
wifi: mt76: mt7925: Fix CNM Timeout with Single Active Link in MLO

Fix CNM command timeout issue when only a single active link is available
during MLO connection to fix the following kernel log error.

[  741.931030] wlan0: [link 1] local address be:90:e0:22:c4:22, AP link address 08:0c:43:7a:19:2a
[  741.931042] wlan0: [link 1] determined AP 08:0c:43:7a:19:2a to be EHT
[  741.931052] wlan0: [link 1] connecting with EHT mode, max bandwidth 160 MHz
[  741.931071] wlan0: WMM AC=0 acm=0 aifs=2 cWmin=3 cWmax=7 txop=47 uapsd=0, downgraded=0
[  741.931076] wlan0: WMM AC=1 acm=0 aifs=2 cWmin=7 cWmax=15 txop=94 uapsd=0, downgraded=0
[  741.931080] wlan0: WMM AC=2 acm=0 aifs=3 cWmin=15 cWmax=1023 txop=0 uapsd=0, downgraded=0
[  741.931085] wlan0: WMM AC=3 acm=0 aifs=7 cWmin=15 cWmax=1023 txop=0 uapsd=0, downgraded=0
[  741.931095] wlan0: moving STA 22:0c:43:7a:19:2a to state 3
[  749.090928] mt7925e 0000:2b:00.0: Message 00020002 (seq 15) timeout
[  752.162972] mt7925e 0000:2b:00.0: Message 00020003 (seq 1) timeout
[  755.234975] mt7925e 0000:2b:00.0: Message 00020002 (seq 2) timeout
[  758.306971] mt7925e 0000:2b:00.0: Message 00020004 (seq 3) timeout

Fixes: 86c051f2c418 ("wifi: mt76: mt7925: enabling MLO when the firmware supports it")
Signed-off-by: Leon Yen <leon.yen@mediatek.com>
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Link: https://patch.msgid.link/20241211011926.5002-7-sean.wang@kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7925: fix wrong parameter for related cmd of chan info
Ming Yen Hsieh [Wed, 11 Dec 2024 01:19:15 +0000 (17:19 -0800)] 
wifi: mt76: mt7925: fix wrong parameter for related cmd of chan info

Fix incorrect parameters for the related channel information command.

Fixes: 86c051f2c418 ("wifi: mt76: mt7925: enabling MLO when the firmware supports it")
Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Link: https://patch.msgid.link/20241211011926.5002-6-sean.wang@kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7925: Fix incorrect WCID phy_idx assignment
allan.wang [Wed, 11 Dec 2024 01:19:14 +0000 (17:19 -0800)] 
wifi: mt76: mt7925: Fix incorrect WCID phy_idx assignment

Fix incorrect WCID phy_idx assignment.

Fixes: 86c051f2c418 ("wifi: mt76: mt7925: enabling MLO when the firmware supports it")
Signed-off-by: allan.wang <allan.wang@mediatek.com>
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Link: https://patch.msgid.link/20241211011926.5002-5-sean.wang@kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7925: Fix incorrect WCID assignment for MLO
Ming Yen Hsieh [Wed, 11 Dec 2024 01:19:12 +0000 (17:19 -0800)] 
wifi: mt76: mt7925: Fix incorrect WCID assignment for MLO

For MLO, each link must have a corresponding WCID.

Fixes: 86c051f2c418 ("wifi: mt76: mt7925: enabling MLO when the firmware supports it")
Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Link: https://patch.msgid.link/20241211011926.5002-3-sean.wang@kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7925: Fix incorrect MLD address in bss_mld_tlv for MLO support
Ming Yen Hsieh [Wed, 11 Dec 2024 01:19:11 +0000 (17:19 -0800)] 
wifi: mt76: mt7925: Fix incorrect MLD address in bss_mld_tlv for MLO support

For this TLV, the address should be set to the MLD address rather than
the link address.

Fixes: 86c051f2c418 ("wifi: mt76: mt7925: enabling MLO when the firmware supports it")
Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Link: https://patch.msgid.link/20241211011926.5002-2-sean.wang@kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: connac: Extend mt76_connac_mcu_uni_add_dev for MLO
Sean Wang [Wed, 11 Dec 2024 01:19:10 +0000 (17:19 -0800)] 
wifi: mt76: connac: Extend mt76_connac_mcu_uni_add_dev for MLO

This commit extends the `mt76_connac_mcu_uni_add_dev` function to include
support for Multi-Link Operation (MLO). Additionally, backward
compatibility for MT7921 is preserved, enabling seamless integration with
existing setups.

Fixes: 86c051f2c418 ("wifi: mt76: mt7925: enabling MLO when the firmware supports it")
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Link: https://patch.msgid.link/20241211011926.5002-1-sean.wang@kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7996: exclude tx backoff time from airtime
Chad Monroe [Tue, 26 Nov 2024 20:40:49 +0000 (20:40 +0000)] 
wifi: mt76: mt7996: exclude tx backoff time from airtime

This helps to make STA airtime counters more accurate.

Signed-off-by: Chad Monroe <chad@monroe.io>
Suggested-by: Ryder Lee <ryder.lee@mediatek.com>
Link: https://patch.msgid.link/88821d8f08e2715927939b35e630a06171962636.1732653612.git.chad@monroe.io
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7915: exclude tx backoff time from airtime
Chad Monroe [Tue, 26 Nov 2024 04:52:58 +0000 (04:52 +0000)] 
wifi: mt76: mt7915: exclude tx backoff time from airtime

This helps to make STA airtime counters more accurate.

Signed-off-by: Chad Monroe <chad@monroe.io>
Suggested-by: Ryder Lee <ryder.lee@mediatek.com>
Link: https://patch.msgid.link/026380cec180261956b983cbdb009605867bcd8d.1732596478.git.chad@monroe.io
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7915: fix overflows seen when writing limit attributes
xueqin Luo [Mon, 2 Dec 2024 03:19:17 +0000 (11:19 +0800)] 
wifi: mt76: mt7915: fix overflows seen when writing limit attributes

DIV_ROUND_CLOSEST() after kstrtoul() results in an overflow if a large
number such as 18446744073709551615 is provided by the user.
Fix it by reordering clamp_val() and DIV_ROUND_CLOSEST() operations.
This commit was inspired by commit: 57ee12b6c514.

Fixes: 02ee68b95d81 ("mt76: mt7915: add control knobs for thermal throttling")
Signed-off-by: xueqin Luo <luoxueqin@kylinos.cn>
Link: https://patch.msgid.link/20241202031917.23741-3-luoxueqin@kylinos.cn
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7996: fix overflows seen when writing limit attributes
xueqin Luo [Mon, 2 Dec 2024 03:19:16 +0000 (11:19 +0800)] 
wifi: mt76: mt7996: fix overflows seen when writing limit attributes

DIV_ROUND_CLOSEST() after kstrtoul() results in an overflow if a large
number such as 18446744073709551615 is provided by the user.
Fix it by reordering clamp_val() and DIV_ROUND_CLOSEST() operations.
This commit was inspired by commit: 57ee12b6c514.

Fixes: 6879b2e94172 ("wifi: mt76: mt7996: add thermal sensor device support")
Signed-off-by: xueqin Luo <luoxueqin@kylinos.cn>
Link: https://patch.msgid.link/20241202031917.23741-2-luoxueqin@kylinos.cn
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7925: fix the invalid ip address for arp offload
Ming Yen Hsieh [Thu, 7 Nov 2024 05:30:05 +0000 (13:30 +0800)] 
wifi: mt76: mt7925: fix the invalid ip address for arp offload

The wrong ieee80211_vif will lead to get invalid ip address and
the correct ieee80211_vif can be obtained from ieee80211_bss_conf.

Fixes: 147324292979 ("wifi: mt76: mt7925: add link handling in the BSS_CHANGED_ARP_FILTER handler")
Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Link: https://patch.msgid.link/20241107053005.10558-1-mingyen.hsieh@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7925: fix get wrong chip cap from incorrect pointer
Ming Yen Hsieh [Mon, 4 Nov 2024 05:14:47 +0000 (13:14 +0800)] 
wifi: mt76: mt7925: fix get wrong chip cap from incorrect pointer

Use tlv instead of skb, because using skb will get valid data
with wrong offset.

Fixes: 86c051f2c418 ("wifi: mt76: mt7925: enabling MLO when the firmware supports it")
Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Link: https://patch.msgid.link/20241104051447.4286-1-mingyen.hsieh@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7925: fix wrong band_idx setting when enable sniffer mode
Eric-SY Chang [Fri, 1 Nov 2024 07:43:40 +0000 (15:43 +0800)] 
wifi: mt76: mt7925: fix wrong band_idx setting when enable sniffer mode

Currently, sniffer mode does not support band auto,
so set band_idx to the default 0.

Fixes: 0cb349d742d1 ("wifi: mt76: mt7925: update mt7925_mac_link_bss_add for MLO")
Signed-off-by: Eric-SY Chang <eric-sy.chang@mediatek.com>
Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Link: https://patch.msgid.link/20241101074340.26176-1-mingyen.hsieh@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7925: fix NULL deref check in mt7925_change_vif_links
Charles Han [Fri, 25 Oct 2024 07:55:54 +0000 (15:55 +0800)] 
wifi: mt76: mt7925: fix NULL deref check in mt7925_change_vif_links

In mt7925_change_vif_links() devm_kzalloc() may return NULL but this
returned value is not checked.

Fixes: 69acd6d910b0 ("wifi: mt76: mt7925: add mt7925_change_vif_links")
Signed-off-by: Charles Han <hanchunchao@inspur.com>
Link: https://patch.msgid.link/20241025075554.181572-1-hanchunchao@inspur.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: introduce mt792x_config_mac_addr_list routine
Allan Wang [Wed, 16 Oct 2024 10:10:17 +0000 (18:10 +0800)] 
wifi: mt76: introduce mt792x_config_mac_addr_list routine

Add mt792x_config_mac_addr_list routine in order to set
the mac address list supported by the driver. Initialize
wiphy->addresses/n_addresses for mt792x driver

Signed-off-by: Hao Zhang <hao.zhang@mediatek.com>
Signed-off-by: Leon Yen <Leon.Yen@mediatek.com>
Signed-off-by: Allan Wang <allan.wang@mediatek.com>
Link: https://patch.msgid.link/20241016101017.19598-1-allan.wang@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7915: add module param to select 5 GHz or 6 GHz on MT7916
Shayne Chen [Thu, 10 Oct 2024 08:38:16 +0000 (10:38 +0200)] 
wifi: mt76: mt7915: add module param to select 5 GHz or 6 GHz on MT7916

Due to a limitation in available memory, the MT7916 firmware can only
handle either 5 GHz or 6 GHz at a time. It does not support runtime
switching without a full restart.

On older firmware, this accidentally worked to some degree due to missing
checks, but couldn't be supported properly, because it left the 6 GHz
channels uncalibrated.
Newer firmware refuses to start on either band if the passed EEPROM
data indicates support for both.

Deal with this limitation by using a module parameter to specify the
preferred band in case both are supported.

Fixes: b4d093e321bd ("mt76: mt7915: add 6 GHz support")
Cc: stable@vger.kernel.org
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Link: https://patch.msgid.link/20241010083816.51880-1-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7915: Fix an error handling path in mt7915_add_interface()
Christophe JAILLET [Sun, 29 Sep 2024 19:53:40 +0000 (21:53 +0200)] 
wifi: mt76: mt7915: Fix an error handling path in mt7915_add_interface()

If mt76_wcid_alloc() fails, the "mt76.mutex" mutex needs to be released as
done in the other error handling paths of mt7915_add_interface().

Fixes: f3049b88b2b3 ("wifi: mt76: mt7915: allocate vif wcid in the same range as stations")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Link: https://patch.msgid.link/b9d8fbfc19360bfe60b9cea1cb0f735ab3b4bc26.1727639596.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 months agowifi: mt76: mt7921: fix using incorrect group cipher after disconnection.
Michael Lo [Thu, 1 Aug 2024 02:43:35 +0000 (10:43 +0800)] 
wifi: mt76: mt7921: fix using incorrect group cipher after disconnection.

To avoid incorrect cipher after disconnection, we should
do the key deletion process in this case.

Fixes: e6db67fa871d ("wifi: mt76: ignore key disable commands")
Signed-off-by: Michael Lo <michael.lo@mediatek.com>
Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Tested-by: David Ruth <druth@chromium.org>
Reviewed-by: David Ruth <druth@chromium.org>
Link: https://patch.msgid.link/20240801024335.12981-1-mingyen.hsieh@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>