git: 9e1755611960 - main - rtw88: Add bus attachments to the module Makefile
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 10 Feb 2026 10:16:54 UTC
The branch main has been updated by bz:
URL: https://cgit.FreeBSD.org/src/commit/?id=9e175561196066a09c1a89202fd60e0433b87868
commit 9e175561196066a09c1a89202fd60e0433b87868
Author: Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2026-01-26 13:19:14 +0000
Commit: Bjoern A. Zeeb <bz@FreeBSD.org>
CommitDate: 2026-02-10 10:16:34 +0000
rtw88: Add bus attachments to the module Makefile
In addition to PCIe we will support USB and also prepare for SDIO (still
disabled locally). The module SRCS are split up into a common part,
which we always add. All three bus parts are guarded by a local
variable in the Makefile.
In addition the PCI parts require PCI to be compiled into the kernel.
We add that check in case of, e.g., SoCs with SDIO but no PCI, which
may not have PCI in the kernel config and thus the module would fail
to attach.
USB has no additional check as it is fully loadable and does not have
to be in a kernel config.
SDIO depends on an MMCCAM-enabled kernel but is otherwise loadable.
While we could, we are not splitting the various bus attachments into
individual modules as we generally do not do that in FreeBSD. [1]
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
Discussed with: imp and jhb (2022, 2024), see also 17732dd8f01b [1]
OKed by: imp (KERN_OPTS checks initially suggested by jhb)
Differential Revision: https://reviews.freebsd.org/D55022
---
sys/modules/rtw88/Makefile | 82 +++++++++++++++++++++++++++++++++-------------
1 file changed, 59 insertions(+), 23 deletions(-)
diff --git a/sys/modules/rtw88/Makefile b/sys/modules/rtw88/Makefile
index 0ce6ad3f99bb..2347093db1a5 100644
--- a/sys/modules/rtw88/Makefile
+++ b/sys/modules/rtw88/Makefile
@@ -1,7 +1,15 @@
+.include <kmod.opts.mk>
+
DEVRTW88DIR= ${SRCTOP}/sys/contrib/dev/rtw88
.PATH: ${DEVRTW88DIR}
+# Bus attachments.
+WITH_PCI= 1
+WITH_USB= 0
+WITH_SDIO= 0
+
+# Options.
WITH_CONFIG_PM= 0
WITH_DEBUGFS= 1
WITH_LEDS= 0
@@ -19,41 +27,69 @@ SRCS+= wow.c
CFLAGS+= -DCONFIG_PM=${WITH_CONFIG_PM}
.endif
-# PCI parts.
+# Common
+SRCS+= rtw8723x.c # 87x3 common
+SRCS+= rtw8703b.c rtw8703b_tables.c # 11n
+SRCS+= rtw8723d.c rtw8723d_table.c # 11n
+SRCS+= rtw8814a.c rtw8814a_table.c # 11ac
+SRCS+= rtw8821c.c rtw8821c_table.c # 11ac
+SRCS+= rtw8822b.c rtw8822b_table.c # 11ac
+SRCS+= rtw8822c.c rtw8822c_table.c # 11ac
+
+# PCI parts; PCI needs to be compiled into the kernel and cannot be loaded.
+.if defined(WITH_PCI) && ${WITH_PCI} > 0 && ${KERN_OPTS:MDEV_PCI}
SRCS+= pci.c
-SRCS+= rtw8723x.c # 87x3 common
-SRCS+= rtw8703b.c rtw8703b_tables.c # 11n
-SRCS+= rtw8723d.c rtw8723d_table.c rtw8723de.c # 11n
-SRCS+= rtw8821c.c rtw8821c_table.c rtw8821ce.c # 11ac
-SRCS+= rtw8822b.c rtw8822b_table.c rtw8822be.c # 11ac
-SRCS+= rtw8822c.c rtw8822c_table.c rtw8822ce.c # 11ac
-SRCS+= rtw8814a.c rtw8814a_table.c rtw8814ae.c # 11ac
-
-# USB parts
-#SRCS+= rtw88xxa.c # 88xxa common
-#SRCS+= rtw8812a.c rtw8812a_table.c rtw8812au.c
-#SRCS+= rtw8814au.c
-#SRCS+= rtw8821a.c rtw8821a_table.c rtw8821au.c
-#CFLAGS+= -DCONFIG_RTW88_USB
+SRCS+= rtw8723de.c
+SRCS+= rtw8814ae.c
+SRCS+= rtw8821ce.c
+SRCS+= rtw8822be.c
+SRCS+= rtw8822ce.c
+.endif
+
+# USB parts; USB can be loaded and is unconditional on any kernel config.
+.if defined(WITH_USB) && ${WITH_USB} > 0
+SRCS+= usb.c
+SRCS+= rtw8723du.c
+SRCS+= rtw88xxa.c # 88xxa common
+SRCS+= rtw8812a.c rtw8812a_table.c rtw8812au.c
+SRCS+= rtw8814au.c
+SRCS+= rtw8821a.c rtw8821a_table.c rtw8821au.c
+SRCS+= rtw8821cu.c
+SRCS+= rtw8822bu.c
+SRCS+= rtw8822cu.c
+
+CFLAGS+= -DCONFIG_RTW88_USB
+.endif
+
+# SDIO parts; SDIO depends on an MMCCAM kernel.
+.if defined(WITH_SDIO) && ${WITH_SDIO} > 0 && ${KERN_OPTS:MMMCCAM}
+SRCS+= rtw8723cs.c
+SRCS+= rtw8723ds.c
+SRCS+= rtw8821cs.c
+SRCS+= rtw8822bs.c
+SRCS+= rtw8822cs.c
+.endif
.if defined(WITH_LEDS) && ${WITH_LEDS} > 0
CFLAGS+= -DCONFIG_RTW88_LEDS
SRCS+= led.c
.endif
+.if defined(WITH_DEBUGFS) && ${WITH_DEBUGFS} > 0
+CFLAGS+= -DCONFIG_RTW88_DEBUGFS
+.endif
+
# Other
-SRCS+= ${LINUXKPI_GENSRCS}
-SRCS+= opt_wlan.h opt_inet6.h opt_inet.h
+SRCS+= opt_wlan.h opt_inet6.h opt_inet.h
+SRCS+= ${LINUXKPI_GENSRCS}
-CFLAGS+= -DKBUILD_MODNAME='"rtw88"'
-CFLAGS+= -DLINUXKPI_VERSION=61900
+CFLAGS+= ${LINUXKPI_INCLUDES}
CFLAGS+= -I${DEVRTW88DIR}
-CFLAGS+= ${LINUXKPI_INCLUDES}
CFLAGS+= -DCONFIG_RTW88_DEBUG
-.if defined(WITH_DEBUGFS) && ${WITH_DEBUGFS} > 0
-CFLAGS+= -DCONFIG_RTW88_DEBUGFS
-.endif
+
+CFLAGS+= -DKBUILD_MODNAME='"rtw88"'
+CFLAGS+= -DLINUXKPI_VERSION=61900
# Helpful after fresh imports.
#CFLAGS+= -ferror-limit=0