realtekwifi: Import from FreeBSD 11.1.
Untested, but requested by Anarchos.
This commit is contained in:
@@ -206,7 +206,7 @@ SYSTEM_ADD_ONS_DRIVERS_NET = [ FFilterByBuildFeatures
|
|||||||
iprowifi2100 iprowifi2200 iprowifi3945 iprowifi4965
|
iprowifi2100 iprowifi2200 iprowifi3945 iprowifi4965
|
||||||
idualwifi7260
|
idualwifi7260
|
||||||
marvell88w8363 marvell88w8335
|
marvell88w8363 marvell88w8335
|
||||||
ralinkwifi
|
ralinkwifi realtekwifi
|
||||||
wavelanwifi
|
wavelanwifi
|
||||||
}@ # x86,x86_64
|
}@ # x86,x86_64
|
||||||
] ;
|
] ;
|
||||||
|
|||||||
Binary file not shown.
@@ -10,6 +10,7 @@ SubInclude HAIKU_TOP src add-ons kernel drivers network wlan iprowifi4965 ;
|
|||||||
SubInclude HAIKU_TOP src add-ons kernel drivers network wlan marvell88w8335 ;
|
SubInclude HAIKU_TOP src add-ons kernel drivers network wlan marvell88w8335 ;
|
||||||
SubInclude HAIKU_TOP src add-ons kernel drivers network wlan marvell88w8363 ;
|
SubInclude HAIKU_TOP src add-ons kernel drivers network wlan marvell88w8363 ;
|
||||||
SubInclude HAIKU_TOP src add-ons kernel drivers network wlan ralinkwifi ;
|
SubInclude HAIKU_TOP src add-ons kernel drivers network wlan ralinkwifi ;
|
||||||
|
SubInclude HAIKU_TOP src add-ons kernel drivers network wlan realtekwifi ;
|
||||||
SubInclude HAIKU_TOP src add-ons kernel drivers network wlan wavelanwifi ;
|
SubInclude HAIKU_TOP src add-ons kernel drivers network wlan wavelanwifi ;
|
||||||
|
|
||||||
# FreeBSD 11.2 drivers
|
# FreeBSD 11.2 drivers
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
SubDir HAIKU_TOP src add-ons kernel drivers network wlan realtekwifi ;
|
||||||
|
|
||||||
|
UseHeaders [ FDirName $(HAIKU_TOP) src libs compat freebsd11_network compat ]
|
||||||
|
: true ;
|
||||||
|
UseHeaders [ FDirName $(HAIKU_TOP) src libs compat freebsd11_wlan ] : true ;
|
||||||
|
UsePrivateHeaders net system ;
|
||||||
|
UsePrivateKernelHeaders ;
|
||||||
|
|
||||||
|
SubDirCcFlags [ FDefines _KERNEL=1 FBSD_DRIVER=1 _XOPEN_SOURCE ]
|
||||||
|
-Wno-format
|
||||||
|
-Wno-unused
|
||||||
|
-Wno-uninitialized ;
|
||||||
|
|
||||||
|
UseHeaders [ FDirName $(SUBDIR) ] : true ;
|
||||||
|
|
||||||
|
SEARCH_SOURCE += [ FDirName $(SUBDIR) dev rtwn ] ;
|
||||||
|
|
||||||
|
KernelAddon realtekwifi :
|
||||||
|
if_rtwn.c
|
||||||
|
glue.c
|
||||||
|
:
|
||||||
|
libfreebsd11_wlan.a
|
||||||
|
libfreebsd11_network.a
|
||||||
|
;
|
||||||
|
|
||||||
|
HAIKU_WIFI_FIRMWARE_PACKAGES on realtekwifi = rtwn-rtl8192cfw ;
|
||||||
|
HAIKU_WIFI_FIRMWARE_ARCHIVES on realtekwifi = rtwn-rtl8192cfw.tgz ;
|
||||||
|
HAIKU_WIFI_FIRMWARE_DO_EXTRACT on realtekwifi = true ;
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,54 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2018, Haiku, Inc. All rights reserved.
|
||||||
|
* Distributed under the terms of the MIT license.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include <sys/bus.h>
|
||||||
|
#include <sys/kernel.h>
|
||||||
|
|
||||||
|
#include <dev/pci/pcivar.h>
|
||||||
|
|
||||||
|
#include <machine/bus.h>
|
||||||
|
|
||||||
|
#include <net/if.h>
|
||||||
|
#include <net/if_media.h>
|
||||||
|
|
||||||
|
#include <net80211/ieee80211_var.h>
|
||||||
|
#include <net80211/ieee80211_amrr.h>
|
||||||
|
|
||||||
|
#include <dev/rtwn/if_rtwnreg.h>
|
||||||
|
|
||||||
|
|
||||||
|
HAIKU_FBSD_WLAN_DRIVER_GLUE(realtekwifi, rtwn, pci)
|
||||||
|
HAIKU_DRIVER_REQUIREMENTS(FBSD_WLAN);
|
||||||
|
HAIKU_FIRMWARE_VERSION(0);
|
||||||
|
HAIKU_FIRMWARE_NAME_MAP(2) = {
|
||||||
|
{"rtwn-rtl8192cfwU", "rtl8192cfwU.ucode"},
|
||||||
|
{"rtwn-rtl8192cfwU_B", "rtl8192cfwU_B.ucode"},
|
||||||
|
};
|
||||||
|
|
||||||
|
NO_HAIKU_FBSD_MII_DRIVER();
|
||||||
|
NO_HAIKU_REENABLE_INTERRUPTS();
|
||||||
|
|
||||||
|
void rtwn_write_4(struct rtwn_softc *, uint16_t, uint32_t);
|
||||||
|
uint32_t rtwn_read_4(struct rtwn_softc *, uint16_t);
|
||||||
|
|
||||||
|
int
|
||||||
|
HAIKU_CHECK_DISABLE_INTERRUPTS(device_t dev)
|
||||||
|
{
|
||||||
|
struct rtwn_softc* sc = (struct rtwn_softc*)device_get_softc(dev);
|
||||||
|
uint32_t status;
|
||||||
|
|
||||||
|
status = rtwn_read_4(sc, R92C_HISR);
|
||||||
|
if (status == 0 || status == 0xffffffff) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
atomic_set((int32*)&sc->sc_intr_status, status);
|
||||||
|
|
||||||
|
/* Disable interrupts. */
|
||||||
|
rtwn_write_4(sc, R92C_HIMR, 0x00000000);
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user