mirror-linux/drivers/net
Rameshkumar Sundaram 14c7d7eac1 wifi: ath12k: Prepare ahvif scan link for parallel scan
When two split-phy devices that support overlapping frequency ranges within
the same band(say 5 GHz low and 5 GHz high) are grouped into an ath12k
hardware (HW) setup, they share a common wiphy instance. Consequently, the
channel list (wiphy->bands[]) becomes unified across all associated
radios (ar).

When a scan is triggered with frequency list containing frequencies of
both 5 GHz low and 5 GHz high, mac80211 generates a single scan request
to driver with all the frequencies. This is because mac80211 splits the
scan request based on band.

ath12k checks the first frequency in the requested scan frequency list and
initiates scan to corresponding radio's(ar) firmware with all the
frequencies. Firmware rejects this scan since some of the frequencies in
the scan request are not supported, resulting in a scan failure.
To fix this ath12k driver should split the scan request into multiple
scans based on requested frequencies and schedule them to corresponding
underlying radio(s) in parallel.

Currently, ath12k driver assigns the scan link (link 15) in ahvif->links[]
for scan vdev creation. However, with parallel scan support being
introduced in the following patch, multiple radios (e.g., 5 GHz low and
5 GHz high) in the same HW group may attempt to use the same scan link
concurrently, causing conflicts where the vdev created by one radio could
be deleted and re-initialized by another.

To address this, reserve space for additional scan links for each radio in
a MLO group and allow subsequent radios to use different available scan
links (ahvif->link[15..MAX_SCAN_LINKS]) when scan link (15) is
pre-occupied.
While at it, rename ATH12K_DEFAULT_SCAN_LINK as ATH12K_FIRST_SCAN_LINK
as there is no longer only one scan link.

Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.4.1-00199-QCAHKSWPL_SILICONZ-1

Signed-off-by: Rameshkumar Sundaram <rameshkumar.sundaram@oss.qualcomm.com>
Reviewed-by: Mahendran P <quic_mahep@quicinc.com>
Link: https://patch.msgid.link/20250507194832.2501668-2-rameshkumar.sundaram@oss.qualcomm.com
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
2025-06-23 07:28:32 -07:00
..
arcnet treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
bonding
caif
can Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2025-06-19 13:00:24 -07:00
dsa net: dsa: mt7530: use new GPIO line value setter callbacks 2025-06-17 18:04:10 -07:00
ethernet Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2025-06-19 13:00:24 -07:00
fddi treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
fjes
hamradio treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
hippi treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
hyperv net: drv: hyperv: migrate to new RXFH callbacks 2025-06-12 17:47:09 -07:00
ieee802154
ipa
ipvlan
mctp
mdio net: pse-pd: Introduce attached_phydev to pse control 2025-06-18 19:00:15 -07:00
netdevsim netdevsim: remove udp_ports_sleep 2025-06-18 18:53:51 -07:00
ovpn net: ipv6: Add a flags argument to ip6tunnel_xmit(), udp_tunnel6_xmit_skb() 2025-06-17 18:18:45 -07:00
pcs
phy net: phy: qca807x: use new GPIO line value setter callbacks 2025-06-17 18:04:11 -07:00
plip
ppp ppp: convert to percpu netstats 2025-06-11 14:11:48 -07:00
pse-pd net: pse-pd: tps23881: Add support for static port priority feature 2025-06-18 19:00:18 -07:00
slip treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
team
thunderbolt
usb net: Use dev_fwnode() 2025-06-12 18:46:37 -07:00
vmxnet3 net: drv: vmxnet3: migrate to new RXFH callbacks 2025-06-12 17:16:20 -07:00
vxlan vxlan: drop sock_lock 2025-06-18 18:53:51 -07:00
wan treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
wireguard net: ipv6: Add a flags argument to ip6tunnel_xmit(), udp_tunnel6_xmit_skb() 2025-06-17 18:18:45 -07:00
wireless wifi: ath12k: Prepare ahvif scan link for parallel scan 2025-06-23 07:28:32 -07:00
wwan net: wwan: mhi_wwan_mbim: use correct mux_id for multiplexing 2025-06-05 12:27:20 +02:00
xen-netback treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
Kconfig
LICENSE.SRC
Makefile
Space.c
amt.c net: ipv4: Add a flags argument to iptunnel_xmit(), udp_tunnel_xmit_skb() 2025-06-17 18:18:44 -07:00
bareudp.c net: ipv6: Add a flags argument to ip6tunnel_xmit(), udp_tunnel6_xmit_skb() 2025-06-17 18:18:45 -07:00
dummy.c
eql.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
geneve.c geneve: rely on rtnl lock in geneve_offload_rx_ports 2025-06-18 18:53:51 -07:00
gtp.c net: ipv6: Add a flags argument to ip6tunnel_xmit(), udp_tunnel6_xmit_skb() 2025-06-17 18:18:45 -07:00
ifb.c
loopback.c
macsec.c macsec: MACsec SCI assignment for ES = 0 2025-06-11 10:12:01 +01:00
macvlan.c
macvtap.c
mdio.c
mhi_net.c
mii.c
net_failover.c
netconsole.c netconsole: append msgid to sysdata 2025-06-18 10:46:10 +01:00
netkit.c
nlmon.c
ntb_netdev.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
pfcp.c
rionet.c
sungem_phy.c
tap.c
tun.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
tun_vnet.h
veth.c veth: prevent NULL pointer dereference in veth_xdp_rcv 2025-06-12 08:08:32 -07:00
virtio_net.c net: drv: virtio: migrate to new RXFH callbacks 2025-06-12 17:46:58 -07:00
vrf.c
vsockmon.c
xen-netfront.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00