realtekwifi: Compile with USB support and expose the necessary structures.

Tested with an 8821AU. It works, hurrah!
This commit is contained in:
Augustin Cavalier
2022-02-24 21:15:44 -05:00
parent 423ee7c669
commit 05216554a4
2 changed files with 103 additions and 1 deletions
@@ -15,10 +15,19 @@ UseHeaders [ FDirName $(SUBDIR) ] : true ;
SEARCH_SOURCE += [ FDirName $(SUBDIR) dev rtwn ] ;
SEARCH_SOURCE += [ FDirName $(SUBDIR) dev rtwn pci ] ;
SEARCH_SOURCE += [ FDirName $(SUBDIR) dev rtwn usb ] ;
SEARCH_SOURCE += [ FDirName $(SUBDIR) dev rtwn rtl8188e ] ;
SEARCH_SOURCE += [ FDirName $(SUBDIR) dev rtwn rtl8188e pci ] ;
SEARCH_SOURCE += [ FDirName $(SUBDIR) dev rtwn rtl8188e usb ] ;
SEARCH_SOURCE += [ FDirName $(SUBDIR) dev rtwn rtl8192c ] ;
SEARCH_SOURCE += [ FDirName $(SUBDIR) dev rtwn rtl8192c pci ] ;
SEARCH_SOURCE += [ FDirName $(SUBDIR) dev rtwn rtl8192c usb ] ;
SEARCH_SOURCE += [ FDirName $(SUBDIR) dev rtwn rtl8192e ] ;
SEARCH_SOURCE += [ FDirName $(SUBDIR) dev rtwn rtl8192e usb ] ;
SEARCH_SOURCE += [ FDirName $(SUBDIR) dev rtwn rtl8812a ] ;
SEARCH_SOURCE += [ FDirName $(SUBDIR) dev rtwn rtl8812a usb ] ;
SEARCH_SOURCE += [ FDirName $(SUBDIR) dev rtwn rtl8821a ] ;
SEARCH_SOURCE += [ FDirName $(SUBDIR) dev rtwn rtl8821a usb ] ;
KernelAddon realtekwifi :
glue.c
@@ -39,6 +48,13 @@ KernelAddon realtekwifi :
rtwn_pci_rx.c
rtwn_pci_tx.c
# usb/
rtwn_usb_attach.c
rtwn_usb_ep.c
rtwn_usb_reg.c
rtwn_usb_rx.c
rtwn_usb_tx.c
# rtl8188e/
r88e_beacon.c
r88e_calib.c
@@ -56,6 +72,10 @@ KernelAddon realtekwifi :
r88ee_init.c
r88ee_rx.c
# rtl8188e/usb/
r88eu_attach.c
r88eu_init.c
# rtl8192c/
r92c_attach.c
r92c_beacon.c
@@ -77,7 +97,65 @@ KernelAddon realtekwifi :
r92ce_led.c
r92ce_rx.c
r92ce_tx.c
# rtl8192c/usb/
r92cu_attach.c
r92cu_init.c
r92cu_led.c
r92cu_rx.c
r92cu_tx.c
# rtl8192e/
r92e_chan.c
r92e_fw.c
r92e_init.c
r92e_led.c
r92e_rf.c
r92e_rom.c
r92e_rx.c
# rtl8192e/usb/
r92eu_attach.c
r92eu_init.c
# rtl8812a/
r12a_beacon.c
r12a_calib.c
r12a_caps.c
r12a_chan.c
r12a_fw.c
r12a_init.c
r12a_led.c
r12a_rf.c
r12a_rom.c
r12a_rx.c
r12a_tx.c
# rtl8812a/usb/
r12au_attach.c
r12au_init.c
r12au_rx.c
r12au_tx.c
# rtl8821a/
r21a_beacon.c
r21a_calib.c
r21a_chan.c
r21a_fw.c
r21a_init.c
r21a_led.c
r21a_rom.c
r21a_rx.c
# rtl8821a/usb/
r21au_attach.c
r21au_dfs.c
r21au_init.c
:
freebsd_wlan.a
libfreebsd_network.a
;
ObjectHdrs [ FGristFiles rtwn_usb_attach$(SUFOBJ) ]
: [ FDirName $(HAIKU_COMMON_PLATFORM_OBJECT_DIR) libs compat freebsd_network ] ;
Includes [ FGristFiles rtwn_usb_attach.c ] : <src!libs!compat!freebsd_network>usbdevs.h ;
@@ -21,19 +21,43 @@
#include <dev/rtwn/pci/rtwn_pci_var.h>
HAIKU_FBSD_WLAN_DRIVER_GLUE(realtekwifi, rtwn_pci, pci)
extern driver_t* DRIVER_MODULE_NAME(rtwn_pci, pci);
extern driver_t* DRIVER_MODULE_NAME(rtwn_usb, uhub);
HAIKU_FBSD_WLAN_DRIVERS_GLUE(realtekwifi)
HAIKU_DRIVER_REQUIREMENTS(FBSD_WLAN);
HAIKU_FIRMWARE_VERSION(0);
HAIKU_FIRMWARE_NAME_MAP({
{"rtwn-rtl8188eefw", "rtwn-rtl8188eefw.ucode"},
{"rtwn-rtl8188eufw", "rtwn-rtl8188eufw.ucode"},
{"rtwn-rtl8192cfwE", "rtwn-rtl8192cfwE.ucode"},
{"rtwn-rtl8192cfwE_B", "rtwn-rtl8192cfwE_B.ucode"},
{"rtwn-rtl8192cfwU", "rtwn-rtl8192cfwU.ucode"},
{"rtwn-rtl8192cfwT", "rtwn-rtl8192cfwT.ucode"},
{"rtwn-rtl8192eufw", "rtwn-rtl8192eufw.ucode"},
{"rtwn-rtl8812aufw", "rtwn-rtl8812aufw.ucode"},
{"rtwn-rtl8821aufw", "rtwn-rtl8821aufw.ucode"},
});
NO_HAIKU_FBSD_MII_DRIVER();
NO_HAIKU_REENABLE_INTERRUPTS();
status_t
__haiku_handle_fbsd_drivers_list(status_t (*handler)(driver_t *[], driver_t *[]))
{
driver_t *pci_drivers[] = {
DRIVER_MODULE_NAME(rtwn_pci, pci),
NULL
};
driver_t *usb_drivers[] = {
DRIVER_MODULE_NAME(rtwn_usb, uhub),
NULL
};
return (*handler)(pci_drivers, usb_drivers);
}
int
HAIKU_CHECK_DISABLE_INTERRUPTS(device_t dev)
{