git: 0f7b9777f8f3 - main - rtw88: split driver up into a core and pci part
Date: Sun, 12 Jun 2022 18:43:38 UTC
The branch main has been updated by bz:
URL: https://cgit.FreeBSD.org/src/commit/?id=0f7b9777f8f39fbc230b3e1de2f844d9f839adea
commit 0f7b9777f8f39fbc230b3e1de2f844d9f839adea
Author: Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2022-06-12 18:35:58 +0000
Commit: Bjoern A. Zeeb <bz@FreeBSD.org>
CommitDate: 2022-06-12 18:35:58 +0000
rtw88: split driver up into a core and pci part
Split the driver up into two modules (if_rtw88_pci.ko and rtw88_core.ko).
This is in preparation for the hopefully eventually upcoming USB support
using the same driver core.
Note: this changes the module name to load to if_rtw88_pci.ko instead of
if_rtw88.ko. If using devmatch(8) everything should stay the same as
the driver name (used for net.wlan.devices) stays rtw88. If using
kld_list in rc.conf or loader.conf you will need to adjust the name.
Update man page for this.
MFC after: 3 days
---
share/man/man4/rtw88.4 | 4 ++--
sys/contrib/dev/rtw88/main.c | 8 ++++++++
sys/contrib/dev/rtw88/pci.c | 10 ++++------
sys/modules/rtw88/Makefile | 37 ++++---------------------------------
sys/modules/rtw88/Makefile.inc | 23 +++++++++++++++++++++++
sys/modules/rtw88/core/Makefile | 17 +++++++++++++++++
sys/modules/rtw88/pci/Makefile | 13 +++++++++++++
7 files changed, 71 insertions(+), 41 deletions(-)
diff --git a/share/man/man4/rtw88.4 b/share/man/man4/rtw88.4
index 0ace002e4bde..43a51405d1d5 100644
--- a/share/man/man4/rtw88.4
+++ b/share/man/man4/rtw88.4
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd May 5, 2022
+.Dd June 12, 2022
.Dt rtw88 4
.Os
.Sh NAME
@@ -41,7 +41,7 @@ lines in
.Xr rc.conf 5
to manually load the driver as a module at boot time:
.Bd -literal -offset indent
-kld_list="${kld_list} if_rtw88"
+kld_list="${kld_list} if_rtw88_pci"
.Ed
.Pp
The driver should automatically load any
diff --git a/sys/contrib/dev/rtw88/main.c b/sys/contrib/dev/rtw88/main.c
index 2f397ace02b3..2522056c3e4b 100644
--- a/sys/contrib/dev/rtw88/main.c
+++ b/sys/contrib/dev/rtw88/main.c
@@ -2120,3 +2120,11 @@ EXPORT_SYMBOL(rtw_unregister_hw);
MODULE_AUTHOR("Realtek Corporation");
MODULE_DESCRIPTION("Realtek 802.11ac wireless core module");
MODULE_LICENSE("Dual BSD/GPL");
+#if defined(__FreeBSD__)
+MODULE_VERSION(rtw88_core, 1);
+MODULE_DEPEND(rtw88_core, linuxkpi, 1, 1, 1);
+MODULE_DEPEND(rtw88_core, linuxkpi_wlan, 1, 1, 1);
+#ifdef CONFIG_RTW88_DEBUGFS
+MODULE_DEPEND(rtw88_core, debugfs, 1, 1, 1);
+#endif
+#endif
diff --git a/sys/contrib/dev/rtw88/pci.c b/sys/contrib/dev/rtw88/pci.c
index 431d0c1c8b98..34d58b0f3db3 100644
--- a/sys/contrib/dev/rtw88/pci.c
+++ b/sys/contrib/dev/rtw88/pci.c
@@ -1936,10 +1936,8 @@ MODULE_AUTHOR("Realtek Corporation");
MODULE_DESCRIPTION("Realtek 802.11ac wireless PCI driver");
MODULE_LICENSE("Dual BSD/GPL");
#if defined(__FreeBSD__)
-MODULE_VERSION(rtw_pci, 1);
-MODULE_DEPEND(rtw_pci, linuxkpi, 1, 1, 1);
-MODULE_DEPEND(rtw_pci, linuxkpi_wlan, 1, 1, 1);
-#ifdef CONFIG_RTW88_DEBUGFS
-MODULE_DEPEND(rtw_pci, debugfs, 1, 1, 1);
-#endif
+MODULE_VERSION(rtw88_pci, 1);
+MODULE_DEPEND(rtw88_pci, rtw88_core, 1, 1, 1);
+MODULE_DEPEND(rtw88_pci, linuxkpi, 1, 1, 1);
+MODULE_DEPEND(rtw88_pci, linuxkpi_wlan, 1, 1, 1);
#endif
diff --git a/sys/modules/rtw88/Makefile b/sys/modules/rtw88/Makefile
index a8880256eeae..972065e7f208 100644
--- a/sys/modules/rtw88/Makefile
+++ b/sys/modules/rtw88/Makefile
@@ -1,36 +1,7 @@
# $FreeBSD$
-DEVRTW88DIR= ${SRCTOP}/sys/contrib/dev/rtw88
+SUBDIR= core
+SUBDIR+= pci
+#SUBDIR+= usb
-.PATH: ${DEVRTW88DIR}
-
-WITH_CONFIG_PM= 0
-
-KMOD= if_rtw88
-
-SRCS= main.c
-SRCS+= bf.c coex.c debug.c efuse.c fw.c mac.c mac80211.c
-SRCS+= pci.c phy.c ps.c regd.c
-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+= rx.c sar.c sec.c tx.c util.c
-
-.if defined(WITH_CONFIG_PM) && ${WITH_CONFIG_PM} > 0
-SRCR+= wow.c
-CFLAGS+= -DCONFIG_PM=${WITH_CONFIG_PM}
-.endif
-
-# Other
-SRCS+= ${LINUXKPI_GENSRCS}
-SRCS+= opt_wlan.h opt_inet6.h opt_inet.h
-
-CFLAGS+= -DKBUILD_MODNAME='"rtw88"'
-
-CFLAGS+= -I${DEVRTW88DIR}
-CFLAGS+= -I${SRCTOP}/sys/compat/linuxkpi/common/include
-CFLAGS+= -DCONFIG_RTW88_DEBUG
-#CFLAGS+= -DCONFIG_RTW88_DEBUGFS
-
-.include <bsd.kmod.mk>
+.include <bsd.subdir.mk>
diff --git a/sys/modules/rtw88/Makefile.inc b/sys/modules/rtw88/Makefile.inc
new file mode 100644
index 000000000000..b4a682a35519
--- /dev/null
+++ b/sys/modules/rtw88/Makefile.inc
@@ -0,0 +1,23 @@
+# $FreeBSD$
+
+# Common information shared by all submodule builds.
+
+DEVRTW88DIR= ${SRCTOP}/sys/contrib/dev/rtw88
+
+.PATH: ${DEVRTW88DIR}
+
+WITH_CONFIG_PM= 0
+
+# Other
+SRCS+= ${LINUXKPI_GENSRCS}
+SRCS+= opt_wlan.h opt_inet6.h opt_inet.h
+
+# Helpful after fresh imports.
+CFLAGS+= -ferror-limit=0
+
+CFLAGS+= -I${DEVRTW88DIR}
+CFLAGS+= -I${SRCTOP}/sys/compat/linuxkpi/common/include
+CFLAGS+= -DCONFIG_RTW88_DEBUG
+#CFLAGS+= -DCONFIG_RTW88_DEBUGFS
+
+# end
diff --git a/sys/modules/rtw88/core/Makefile b/sys/modules/rtw88/core/Makefile
new file mode 100644
index 000000000000..e19103ce8417
--- /dev/null
+++ b/sys/modules/rtw88/core/Makefile
@@ -0,0 +1,17 @@
+# $FreeBSD$
+
+KMOD= rtw88_core
+
+SRCS= main.c
+SRCS+= bf.c coex.c debug.c efuse.c fw.c mac.c mac80211.c
+SRCS+= phy.c ps.c regd.c
+SRCS+= rx.c sar.c sec.c tx.c util.c
+
+.if defined(WITH_CONFIG_PM) && ${WITH_CONFIG_PM} > 0
+SRCR+= wow.c
+CFLAGS+= -DCONFIG_PM=${WITH_CONFIG_PM}
+.endif
+
+CFLAGS+= -DKBUILD_MODNAME='"rtw88_core"'
+
+.include <bsd.kmod.mk>
diff --git a/sys/modules/rtw88/pci/Makefile b/sys/modules/rtw88/pci/Makefile
new file mode 100644
index 000000000000..070e6c8e2bc0
--- /dev/null
+++ b/sys/modules/rtw88/pci/Makefile
@@ -0,0 +1,13 @@
+# $FreeBSD$
+
+KMOD= if_rtw88_pci
+
+SRCS+= pci.c
+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
+
+CFLAGS+= -DKBUILD_MODNAME='"rtw88"'
+
+.include <bsd.kmod.mk>