git: 0f7b9777f8f3 - main - rtw88: split driver up into a core and pci part

From: Bjoern A. Zeeb <bz_at_FreeBSD.org>
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>