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
This commit is contained in:
Bjoern A. Zeeb 2022-06-12 18:35:58 +00:00
parent 987d26ee3f
commit 0f7b9777f8
7 changed files with 71 additions and 41 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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>

View File

@ -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

View File

@ -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>

View File

@ -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>