diff --git a/sys/contrib/dev/mediatek/mt76/zzz_fw_ports_fwget.sh b/sys/contrib/dev/mediatek/mt76/zzz_fw_ports_fwget.sh --- a/sys/contrib/dev/mediatek/mt76/zzz_fw_ports_fwget.sh +++ b/sys/contrib/dev/mediatek/mt76/zzz_fw_ports_fwget.sh @@ -24,6 +24,11 @@ FWSUBDIR=mediatek CHECKFILE=mt792x.h +SYS=../../../.. +LINUXKPI_INCLUDES="-I${SYS}/compat/linuxkpi/common/include \ + -I${SYS}/compat/linuxkpi/dummy/include \ + -include ${SYS}/compat/linuxkpi/common/include/linux/kconfig.h" + ################################################################################ # # Check pre-reqs @@ -56,8 +61,8 @@ case ${d} in mt7615) flav=${d} ;; mt7915) flav=${d} ;; - mt7921) flav=mt792x ;; - mt7925) flav=mt792x ;; + mt7921) flav=${d} ;; + mt7925) flav=${d} ;; mt7996) flav=${d} ;; *) printf "ERROR: unsupported directory/flavor '%s'\n" ${d} >&2 exit 1 @@ -80,19 +85,22 @@ get_firmwares_by_flavor() { - for h in mt7615/mt7615.h mt7915/mt7915.h mt792x.h mt7996/mt7996.h; do + for h in mt7615/mt7615.h mt7915/mt7915.h mt7921/mt7921.h mt7925/mt7925.h mt7996/mt7996.h; do case ${h} in mt7615/mt7615.h) flav=mt7615 ;; mt7915/mt7915.h) flav=mt7915 ;; - mt792x.h) flav=mt792x ;; + mt7921/mt7921.h) flav=mt7921 ;; + mt7925/mt7925.h) flav=mt7925 ;; mt7996/mt7996.h) flav=mt7996 ;; *) printf "ERROR: unsupported header/flavor '%s'\n" ${h} >&2 exit 1 ;; esac - awk -v rege="${FWSUBDIR}/" -v flav=${flav} -F\" '{ if ($0 ~ rege) { printf "%s\t%s\n", tolower(flav), $2; } }' ${h} | \ + # Use preprocessor with a minimal include list to get #defines + cpp ${LINUXKPI_INCLUDES} -dM -M -MG -MF /dev/null ${h} | \ + awk -v rege="${FWSUBDIR}/" -v flav=${flav} -F\" '{ if ($0 ~ rege) { printf "%s\t%s\n", tolower(flav), $2; } }' | \ while read flav fwn; do if test ! -e ${LFWDIR}/${fwn}; then #printf "Firmware %s (for %s) does not exist; skipping\n" ${fwn} ${flav} >&2 @@ -253,12 +261,12 @@ # printf "===> did %s flav %s\n" ${did} ${flav} >&2 if test ${n} -eq 1; then - echo "${did} ${flav}" | awk -v drv=${FWSUBDIR} '{ + echo "${did} ${flav}" | awk -v drv=${DRIVER} '{ printf "\t%s)\taddpkg \"wifi-firmware-%s-kmod-%s\"; return 1 ;;\n", tolower($1), drv, tolower($2); }' >> ${fwgetfile} else - echo "${did} ${flav}" | awk -v drv=${FWSUBDIR} '{ + echo "${did} ${flav}" | awk -v drv=${DRIVER} '{ printf "\t%s)\taddpkg \"wifi-firmware-%s-kmod-%s\"\n", tolower($1), drv, tolower($2); }' >> ${fwgetfile} @@ -276,7 +284,7 @@ #printf "===> did %s flav %s\n" ${did} ${flav} >&2 - echo "${did} ${flav}" | awk -v drv=${FWSUBDIR} '{ + echo "${did} ${flav}" | awk -v drv=${DRIVER} '{ printf "\t\taddpkg \"wifi-firmware-%s-kmod-%s\"\n", drv, tolower($2); }' >> ${fwgetfile} diff --git a/sys/contrib/dev/rtw88/rtw8812ae.c b/sys/contrib/dev/rtw88/rtw8812ae.c new file mode 100644 --- /dev/null +++ b/sys/contrib/dev/rtw88/rtw8812ae.c @@ -0,0 +1,32 @@ +// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause + +#include +#include +#include "pci.h" +#include "rtw8812a.h" + +static const struct pci_device_id rtw_8812ae_id_table[] = { + { + PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8812), + .driver_data = (kernel_ulong_t)&rtw8812a_hw_spec + }, + {} +}; +MODULE_DEVICE_TABLE(pci, rtw_8812ae_id_table); + +static struct pci_driver rtw_8821ae_driver = { + .name = KBUILD_MODNAME, + .id_table = rtw_8812ae_id_table, + .probe = rtw_pci_probe, + .remove = rtw_pci_remove, + .driver.pm = &rtw_pm_ops, + .shutdown = rtw_pci_shutdown, + .err_handler = &rtw_pci_err_handler, +#if defined(__FreeBSD__) + .bsddriver.name = KBUILD_MODNAME, +#endif +}; +module_pci_driver(rtw_8812ae_driver); + +MODULE_DESCRIPTION("Realtek 802.11ac wireless 8812ae driver"); +MODULE_LICENSE("Dual BSD/GPL"); diff --git a/sys/contrib/dev/rtw88/rtw8821ae.c b/sys/contrib/dev/rtw88/rtw8821ae.c new file mode 100644 --- /dev/null +++ b/sys/contrib/dev/rtw88/rtw8821ae.c @@ -0,0 +1,32 @@ +// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause + +#include +#include +#include "pci.h" +#include "rtw8821a.h" + +static const struct pci_device_id rtw_8821ae_id_table[] = { + { + PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8821), + .driver_data = (kernel_ulong_t)&rtw8821a_hw_spec + }, + {} +}; +MODULE_DEVICE_TABLE(pci, rtw_8821ae_id_table); + +static struct pci_driver rtw_8821ae_driver = { + .name = KBUILD_MODNAME, + .id_table = rtw_8821ae_id_table, + .probe = rtw_pci_probe, + .remove = rtw_pci_remove, + .driver.pm = &rtw_pm_ops, + .shutdown = rtw_pci_shutdown, + .err_handler = &rtw_pci_err_handler, +#if defined(__FreeBSD__) + .bsddriver.name = KBUILD_MODNAME, +#endif +}; +module_pci_driver(rtw_8821ae_driver); + +MODULE_DESCRIPTION("Realtek 802.11ac wireless 8821ae driver"); +MODULE_LICENSE("Dual BSD/GPL"); diff --git a/usr.sbin/fwget/pci/pci_network_mediatek b/usr.sbin/fwget/pci/pci_network_mediatek --- a/usr.sbin/fwget/pci/pci_network_mediatek +++ b/usr.sbin/fwget/pci/pci_network_mediatek @@ -38,9 +38,9 @@ # { sys/contrib/dev/mediatek/mt76/zzz_fw_ports_fwget.sh } ### >>> - 0x0608) addpkg "wifi-firmware-mt76-kmod-mt792x"; return 1 ;; - 0x0616) addpkg "wifi-firmware-mt76-kmod-mt792x"; return 1 ;; - 0x0717) addpkg "wifi-firmware-mt76-kmod-mt792x"; return 1 ;; + 0x0608) addpkg "wifi-firmware-mt76-kmod-mt7921"; return 1 ;; + 0x0616) addpkg "wifi-firmware-mt76-kmod-mt7921"; return 1 ;; + 0x0717) addpkg "wifi-firmware-mt76-kmod-mt7925"; return 1 ;; 0x7611) addpkg "wifi-firmware-mt76-kmod-mt7615"; return 1 ;; 0x7615) addpkg "wifi-firmware-mt76-kmod-mt7615"; return 1 ;; 0x7663) addpkg "wifi-firmware-mt76-kmod-mt7615"; return 1 ;; @@ -48,10 +48,10 @@ 0x790a) addpkg "wifi-firmware-mt76-kmod-mt7915"; return 1 ;; 0x7915) addpkg "wifi-firmware-mt76-kmod-mt7915"; return 1 ;; 0x7916) addpkg "wifi-firmware-mt76-kmod-mt7915"; return 1 ;; - 0x7920) addpkg "wifi-firmware-mt76-kmod-mt792x"; return 1 ;; - 0x7922) addpkg "wifi-firmware-mt76-kmod-mt792x"; return 1 ;; - 0x7925) addpkg "wifi-firmware-mt76-kmod-mt792x"; return 1 ;; - 0x7961) addpkg "wifi-firmware-mt76-kmod-mt792x"; return 1 ;; + 0x7920) addpkg "wifi-firmware-mt76-kmod-mt7921"; return 1 ;; + 0x7922) addpkg "wifi-firmware-mt76-kmod-mt7921"; return 1 ;; + 0x7925) addpkg "wifi-firmware-mt76-kmod-mt7925"; return 1 ;; + 0x7961) addpkg "wifi-firmware-mt76-kmod-mt7921"; return 1 ;; 0x7990) addpkg "wifi-firmware-mt76-kmod-mt7996"; return 1 ;; 0x7991) addpkg "wifi-firmware-mt76-kmod-mt7996"; return 1 ;; 0x7992) addpkg "wifi-firmware-mt76-kmod-mt7996"; return 1 ;; diff --git a/usr.sbin/fwget/pci/pci_network_realtek b/usr.sbin/fwget/pci/pci_network_realtek --- a/usr.sbin/fwget/pci/pci_network_realtek +++ b/usr.sbin/fwget/pci/pci_network_realtek @@ -41,7 +41,9 @@ ### >>> 0xd723) addpkg "wifi-firmware-rtw88-kmod-rtw8723d"; return 1 ;; + 0x8812) addpkg "wifi-firmware-rtw88-kmod-rtw8812a"; return 1 ;; 0x8813) addpkg "wifi-firmware-rtw88-kmod-rtw8814a"; return 1 ;; + 0x8821) addpkg "wifi-firmware-rtw88-kmod-rtw8821a"; return 1 ;; 0xb821) addpkg "wifi-firmware-rtw88-kmod-rtw8821c"; return 1 ;; 0xc821) addpkg "wifi-firmware-rtw88-kmod-rtw8821c"; return 1 ;; 0xb822) addpkg "wifi-firmware-rtw88-kmod-rtw8822b"; return 1 ;;