Skip to content

Commit d889913

Browse files
committed
wifi: ath12k: driver for Qualcomm Wi-Fi 7 devices
ath12k is a new mac80211 driver for Qualcomm Wi-Fi 7 devices, first supporting QCN9274 and WCN7850 PCI devices. QCN9274 supports both AP and station; WCN7850 supports only station mode. Monitor mode is not (yet) supported. Only PCI bus devices are supported. ath12k is forked from an earlier version of ath11k. It was simpler to have a "clean start" for the new generation and not try to share the code with ath11k. This makes maintenance easier and avoids major changes in ath11k, which would have significantly increased the risk of regressions in existing setups. ath12k uses le32 and cpu_to_le32() macros to handle endian conversions, instead of using the firmware byte swap feature utilized by ath11k. There is only one kernel module, named ath12k.ko. Currently ath12k only supports HE mode (IEEE 802.11ax) or older, but work is ongoing to add EHT mode (IEEE 802.11be) support. The size of the driver is ~41 kLOC and 45 files. To make the review easier, this initial version of ath12k does not support Device Tree, debugfs or any other extra features. Those will be added later, after ath12k is accepted to upstream. The driver is build tested by Intel's kernel test robot with both GCC and Clang. Sparse reports no warnings. The driver is mostly free of checkpatch warnings, albeit few of the warnings are omitted on purpose, list of them here: https://github.com/qca/qca-swiss-army-knife/blob/master/tools/scripts/ath12k/ath12k-check#L52 The driver has had multiple authors who are listed in alphabetical order below. Co-developed-by: Balamurugan Selvarajan <[email protected]> Signed-off-by: Balamurugan Selvarajan <[email protected]> Co-developed-by: Baochen Qiang <[email protected]> Signed-off-by: Baochen Qiang <[email protected]> Co-developed-by: Bhagavathi Perumal S <[email protected]> Signed-off-by: Bhagavathi Perumal S <[email protected]> Co-developed-by: Carl Huang <[email protected]> Signed-off-by: Carl Huang <[email protected]> Co-developed-by: Jeff Johnson <[email protected]> Signed-off-by: Jeff Johnson <[email protected]> Co-developed-by: Karthikeyan Periyasamy <[email protected]> Signed-off-by: Karthikeyan Periyasamy <[email protected]> Co-developed-by: P Praneesh <[email protected]> Signed-off-by: P Praneesh <[email protected]> Co-developed-by: Pradeep Kumar Chitrapu <[email protected]> Signed-off-by: Pradeep Kumar Chitrapu <[email protected]> Co-developed-by: Ramya Gnanasekar <[email protected]> Signed-off-by: Ramya Gnanasekar <[email protected]> Co-developed-by: Sriram R <[email protected]> Signed-off-by: Sriram R <[email protected]> Co-developed-by: Vasanthakumar Thiagarajan <[email protected]> Signed-off-by: Vasanthakumar Thiagarajan <[email protected]> Co-developed-by: Wen Gong <[email protected]> Signed-off-by: Wen Gong <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
1 parent eceb024 commit d889913

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+53316
-0
lines changed

MAINTAINERS

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16986,6 +16986,13 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
1698616986
F: Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml
1698716987
F: drivers/net/wireless/ath/ath11k/
1698816988

16989+
QUALCOMM ATH12K WIRELESS DRIVER
16990+
M: Kalle Valo <[email protected]>
16991+
16992+
S: Supported
16993+
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
16994+
F: drivers/net/wireless/ath/ath12k/
16995+
1698916996
QUALCOMM ATHEROS ATH9K WIRELESS DRIVER
1699016997
M: Toke Høiland-Jørgensen <[email protected]>
1699116998

drivers/net/wireless/ath/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,5 +63,6 @@ source "drivers/net/wireless/ath/wil6210/Kconfig"
6363
source "drivers/net/wireless/ath/ath10k/Kconfig"
6464
source "drivers/net/wireless/ath/wcn36xx/Kconfig"
6565
source "drivers/net/wireless/ath/ath11k/Kconfig"
66+
source "drivers/net/wireless/ath/ath12k/Kconfig"
6667

6768
endif

drivers/net/wireless/ath/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ obj-$(CONFIG_WIL6210) += wil6210/
88
obj-$(CONFIG_ATH10K) += ath10k/
99
obj-$(CONFIG_WCN36XX) += wcn36xx/
1010
obj-$(CONFIG_ATH11K) += ath11k/
11+
obj-$(CONFIG_ATH12K) += ath12k/
1112

1213
obj-$(CONFIG_ATH_COMMON) += ath.o
1314

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# SPDX-License-Identifier: BSD-3-Clause-Clear
2+
config ATH12K
3+
tristate "Qualcomm Technologies Wi-Fi 7 support (ath12k)"
4+
depends on MAC80211 && HAS_DMA && PCI
5+
depends on CRYPTO_MICHAEL_MIC
6+
select QCOM_QMI_HELPERS
7+
select MHI_BUS
8+
select QRTR
9+
select QRTR_MHI
10+
help
11+
Enable support for Qualcomm Technologies Wi-Fi 7 (IEEE
12+
802.11be) family of chipsets, for example WCN7850 and
13+
QCN9274.
14+
15+
If you choose to build a module, it'll be called ath12k.
16+
17+
config ATH12K_DEBUG
18+
bool "ath12k debugging"
19+
depends on ATH12K
20+
help
21+
Enable debug support, for example debug messages which must
22+
be enabled separately using the debug_mask module parameter.
23+
24+
If unsure, say Y to make it easier to debug problems. But if
25+
you want optimal performance choose N.
26+
27+
config ATH12K_TRACING
28+
bool "ath12k tracing support"
29+
depends on ATH12K && EVENT_TRACING
30+
help
31+
Enable ath12k tracing infrastructure.
32+
33+
If unsure, say Y to make it easier to debug problems. But if
34+
you want optimal performance choose N.
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# SPDX-License-Identifier: BSD-3-Clause-Clear
2+
obj-$(CONFIG_ATH12K) += ath12k.o
3+
ath12k-y += core.o \
4+
hal.o \
5+
hal_tx.o \
6+
hal_rx.o \
7+
wmi.o \
8+
mac.o \
9+
reg.o \
10+
htc.o \
11+
qmi.o \
12+
dp.o \
13+
dp_tx.o \
14+
dp_rx.o \
15+
debug.o \
16+
ce.o \
17+
peer.o \
18+
dbring.o \
19+
hw.o \
20+
mhi.o \
21+
pci.o \
22+
dp_mon.o
23+
24+
ath12k-$(CONFIG_ATH12K_TRACING) += trace.o
25+
26+
# for tracing framework to find trace.h
27+
CFLAGS_trace.o := -I$(src)

0 commit comments

Comments
 (0)