linux/drivers/net/wireless/ath/ath10k
Aditya Kumar Singh bca8bc0399 wifi: mac80211: handle ieee80211_radar_detected() for MLO
Currently DFS works under assumption there could be only one channel
context in the hardware. Hence, drivers just calls the function
ieee80211_radar_detected() passing the hardware structure. However, with
MLO, this obviously will not work since number of channel contexts will be
more than one and hence drivers would need to pass the channel information
as well on which the radar is detected.

Also, when radar is detected in one of the links, other link's CAC should
not be cancelled.

Hence, in order to support DFS with MLO, do the following changes -
  * Add channel context conf pointer as an argument to the function
    ieee80211_radar_detected(). During MLO, drivers would have to pass on
    which channel context conf radar is detected. Otherwise, drivers could
    just pass NULL.
  * ieee80211_radar_detected() will iterate over all channel contexts
    present and
  	* if channel context conf is passed, only mark that as radar
  	  detected
  	* if NULL is passed, then mark all channel contexts as radar
  	  detected
  	* Then as usual, schedule the radar detected work.
  * In the worker, go over all the contexts again and for all such context
    which is marked with radar detected, cancel the ongoing CAC by calling
    ieee80211_dfs_cac_cancel() and then notify cfg80211 via
    cfg80211_radar_event().
  * To cancel the CAC, pass the channel context as well where radar is
    detected to ieee80211_dfs_cac_cancel(). This ensures that CAC is
    canceled only on the links using the provided context, leaving other
    links unaffected.

This would also help in scenarios where there is split phy 5 GHz radio,
which is capable of DFS channels in both lower and upper band. In this
case, simultaneous radars can be detected.

Signed-off-by: Aditya Kumar Singh <quic_adisi@quicinc.com>
Link: https://patch.msgid.link/20240906064426.2101315-9-quic_adisi@quicinc.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-09-06 13:01:05 +02:00
..
Kconfig wireless-next patches for v6.11 2024-06-10 17:40:26 -07:00
Makefile wifi: ath10k: add LED and GPIO controlling support for various chipsets 2024-05-15 11:59:08 +03:00
ahb.c wifi: ath10k: Refer to INTX instead of LEGACY 2024-04-25 12:53:32 -05:00
ahb.h
bmi.c
bmi.h
ce.c
ce.h
core.c wifi: ath10k: add LED and GPIO controlling support for various chipsets 2024-05-15 11:59:08 +03:00
core.h wifi: ath10k: add LED and GPIO controlling support for various chipsets 2024-05-15 11:59:08 +03:00
coredump.c
coredump.h wifi: ath10k: Fix enum ath10k_fw_crash_dump_type kernel-doc 2024-01-19 19:43:11 +02:00
debug.c wifi: mac80211: handle ieee80211_radar_detected() for MLO 2024-09-06 13:01:05 +02:00
debug.h
debugfs_sta.c wifi: ath10k: Fix an error code problem in ath10k_dbg_sta_write_peer_debug_trigger() 2024-04-24 18:40:09 +03:00
hif.h
htc.c
htc.h
htt.c
htt.h wifi: ath10k: Fix htt_data_tx_completion kernel-doc warning 2024-01-19 19:43:11 +02:00
htt_rx.c
htt_tx.c
hw.c
hw.h wifi: ath10k: add LED and GPIO controlling support for various chipsets 2024-05-15 11:59:08 +03:00
leds.c wifi: ath10k: add LED and GPIO controlling support for various chipsets 2024-05-15 11:59:08 +03:00
leds.h wifi: ath10k: add LED and GPIO controlling support for various chipsets 2024-05-15 11:59:08 +03:00
mac.c wifi: mac80211: handle ieee80211_radar_detected() for MLO 2024-09-06 13:01:05 +02:00
mac.h
p2p.c
p2p.h
pci.c pci-v6.10-changes 2024-05-21 10:09:28 -07:00
pci.h wifi: ath10k: Refer to INTX instead of LEGACY 2024-04-25 12:53:32 -05:00
qmi.c wifi: ath10k: do not always wait for MSA_READY indicator 2024-05-13 17:15:48 +03:00
qmi.h wifi: ath10k: do not always wait for MSA_READY indicator 2024-05-13 17:15:48 +03:00
qmi_wlfw_v01.c
qmi_wlfw_v01.h
rx_desc.h
sdio.c MMC core: 2024-05-16 08:56:49 -07:00
sdio.h
snoc.c wifi: ath10k: Use iommu_paging_domain_alloc() 2024-07-04 14:09:33 +01:00
snoc.h
spectral.c
spectral.h
swap.c
swap.h
targaddrs.h wifi: ath10k: populate board data for WCN3990 2024-04-25 13:21:50 +03:00
testmode.c
testmode.h
testmode_i.h
thermal.c wifi: ath: Convert sprintf/snprintf to sysfs_emit 2024-03-25 12:49:27 +02:00
thermal.h
trace.c
trace.h tracing/treewide: Remove second parameter of __assign_str() 2024-05-22 20:14:47 -04:00
txrx.c
txrx.h
usb.c wifi: ath10k: allocate dummy net_device dynamically 2024-04-24 12:00:17 +01:00
usb.h
wmi-ops.h wifi: ath10k: add LED and GPIO controlling support for various chipsets 2024-05-15 11:59:08 +03:00
wmi-tlv.c wifi: ath10k: add LED and GPIO controlling support for various chipsets 2024-05-15 11:59:08 +03:00
wmi-tlv.h
wmi.c wifi: mac80211: handle ieee80211_radar_detected() for MLO 2024-09-06 13:01:05 +02:00
wmi.h wifi: ath10k: add LED and GPIO controlling support for various chipsets 2024-05-15 11:59:08 +03:00
wow.c
wow.h