marvell88w8335: Sync with FreeBSD 11.1.

Untested, but the changes are mostly adaptations to the new KPIs.
This commit is contained in:
Augustin Cavalier
2018-07-17 19:54:31 -04:00
parent 28ca187801
commit 5f64721b30
8 changed files with 242 additions and 368 deletions
@@ -1,8 +1,5 @@
SubDir HAIKU_TOP src add-ons kernel drivers network wlan ; SubDir HAIKU_TOP src add-ons kernel drivers network wlan ;
# FreeBSD 9.2 drivers
SubInclude HAIKU_TOP src add-ons kernel drivers network wlan marvell88w8335 ;
# FreeBSD 9.3 drivers # FreeBSD 9.3 drivers
SubInclude HAIKU_TOP src add-ons kernel drivers network wlan broadcom43xx ; SubInclude HAIKU_TOP src add-ons kernel drivers network wlan broadcom43xx ;
SubInclude HAIKU_TOP src add-ons kernel drivers network wlan marvell88w8363 ; SubInclude HAIKU_TOP src add-ons kernel drivers network wlan marvell88w8363 ;
@@ -14,6 +11,7 @@ SubInclude HAIKU_TOP src add-ons kernel drivers network wlan atheroswifi ;
SubInclude HAIKU_TOP src add-ons kernel drivers network wlan iprowifi2100 ; SubInclude HAIKU_TOP src add-ons kernel drivers network wlan iprowifi2100 ;
SubInclude HAIKU_TOP src add-ons kernel drivers network wlan iprowifi3945 ; SubInclude HAIKU_TOP src add-ons kernel drivers network wlan iprowifi3945 ;
SubInclude HAIKU_TOP src add-ons kernel drivers network wlan iprowifi4965 ; 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 ralinkwifi ; SubInclude HAIKU_TOP src add-ons kernel drivers network wlan ralinkwifi ;
# FreeBSD 11.2 drivers # FreeBSD 11.2 drivers
@@ -1,14 +1,14 @@
SubDir HAIKU_TOP src add-ons kernel drivers network wlan marvell88w8335 ; SubDir HAIKU_TOP src add-ons kernel drivers network wlan marvell88w8335 ;
UseHeaders [ FDirName $(HAIKU_TOP) src libs compat freebsd_network compat ] UseHeaders [ FDirName $(HAIKU_TOP) src libs compat freebsd11_network compat ]
: true ; : true ;
UseHeaders [ FDirName $(HAIKU_TOP) src libs compat freebsd_wlan ] : true ; UseHeaders [ FDirName $(HAIKU_TOP) src libs compat freebsd11_wlan ] : true ;
UsePrivateHeaders net system ; UsePrivateHeaders net system ;
UsePrivateKernelHeaders ; UsePrivateKernelHeaders ;
SubDirCcFlags [ FDefines _KERNEL=1 FBSD_DRIVER=1 _XOPEN_SOURCE ] SubDirCcFlags [ FDefines _KERNEL=1 FBSD_DRIVER=1 _XOPEN_SOURCE ]
-Wno-format -Wno-format
-Wno-unused -Wno-unused
-Wno-uninitialized ; -Wno-uninitialized ;
UseHeaders [ FDirName $(SUBDIR) ] : true ; UseHeaders [ FDirName $(SUBDIR) ] : true ;
@@ -21,6 +21,6 @@ KernelAddon marvell88w8335 :
if_malohal.c if_malohal.c
glue.c glue.c
: :
libfreebsd_wlan.a libfreebsd11_wlan.a
libfreebsd_network.a libfreebsd11_network.a
; ;
File diff suppressed because it is too large Load Diff
@@ -28,7 +28,7 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGES. * THE POSSIBILITY OF SUCH DAMAGES.
* *
* $FreeBSD$ * $FreeBSD: releng/11.1/sys/dev/malo/if_malo.h 287197 2015-08-27 08:56:39Z glebius $
*/ */
/* /*
@@ -520,8 +520,9 @@ struct malo_vap {
#define MALO_VAP(vap) ((struct malo_vap *)(vap)) #define MALO_VAP(vap) ((struct malo_vap *)(vap))
struct malo_softc { struct malo_softc {
struct ieee80211com malo_ic;
struct mbufq malo_snd;
device_t malo_dev; device_t malo_dev;
struct ifnet *malo_ifp; /* interface common */
struct mtx malo_mtx; /* master lock (recursive) */ struct mtx malo_mtx; /* master lock (recursive) */
struct taskqueue *malo_tq; /* private task queue */ struct taskqueue *malo_tq; /* private task queue */
@@ -531,9 +532,10 @@ struct malo_softc {
bus_space_handle_t malo_io1h; /* BAR 1 */ bus_space_handle_t malo_io1h; /* BAR 1 */
bus_space_tag_t malo_io1t; bus_space_tag_t malo_io1t;
unsigned int malo_invalid : 1,/* disable hardware accesses */ unsigned int malo_invalid: 1,/* disable hardware accesses */
malo_recvsetup : 1, /* recv setup */ malo_recvsetup: 1, /* recv setup */
malo_fixedrate: 1; /* use fixed tx rate */ malo_fixedrate: 1, /* use fixed tx rate */
malo_running: 1;
struct malo_hal *malo_mh; /* h/w access layer */ struct malo_hal *malo_mh; /* h/w access layer */
struct malo_hal_hwspec malo_hwspecs; /* h/w capabilities */ struct malo_hal_hwspec malo_hwspecs; /* h/w capabilities */
@@ -31,7 +31,7 @@
#include <sys/cdefs.h> #include <sys/cdefs.h>
#ifdef __FreeBSD__ #ifdef __FreeBSD__
__FBSDID("$FreeBSD$"); __FBSDID("$FreeBSD: releng/11.1/sys/dev/malo/if_malo_pci.c 288087 2015-09-22 02:44:59Z adrian $");
#endif #endif
/* /*
@@ -40,6 +40,7 @@ __FBSDID("$FreeBSD$");
#include <sys/param.h> #include <sys/param.h>
#include <sys/kernel.h> #include <sys/kernel.h>
#include <sys/malloc.h>
#include <sys/module.h> #include <sys/module.h>
#include <sys/socket.h> #include <sys/socket.h>
#include <sys/sysctl.h> #include <sys/sysctl.h>
@@ -49,7 +50,9 @@ __FBSDID("$FreeBSD$");
#include <sys/rman.h> #include <sys/rman.h>
#include <net/if.h> #include <net/if.h>
#include <net/if_var.h>
#include <net/if_media.h> #include <net/if_media.h>
#include <net/ethernet.h>
#include <net80211/ieee80211_var.h> #include <net80211/ieee80211_var.h>
@@ -83,9 +86,8 @@ static SYSCTL_NODE(_hw_malo, OID_AUTO, pci, CTLFLAG_RD, 0,
"Marvell 88W8335 driver PCI parameters"); "Marvell 88W8335 driver PCI parameters");
static int msi_disable = 0; /* MSI disabled */ static int msi_disable = 0; /* MSI disabled */
SYSCTL_INT(_hw_malo_pci, OID_AUTO, msi_disable, CTLFLAG_RW, &msi_disable, SYSCTL_INT(_hw_malo_pci, OID_AUTO, msi_disable, CTLFLAG_RWTUN, &msi_disable,
0, "MSI disabled"); 0, "MSI disabled");
TUNABLE_INT("hw.malo.pci.msi_disable", &msi_disable);
/* /*
* Devices supported by this driver. * Devices supported by this driver.
@@ -129,7 +131,6 @@ static int malo_pci_detach(device_t);
static int static int
malo_pci_probe(device_t dev) malo_pci_probe(device_t dev)
{ {
#define N(a) (sizeof(a) / sizeof((a)[0]))
struct malo_product *mp; struct malo_product *mp;
uint16_t vendor, devid; uint16_t vendor, devid;
int i; int i;
@@ -138,7 +139,7 @@ malo_pci_probe(device_t dev)
devid = pci_get_device(dev); devid = pci_get_device(dev);
mp = malo_products; mp = malo_products;
for (i = 0; i < N(malo_products); i++, mp++) { for (i = 0; i < nitems(malo_products); i++, mp++) {
if (vendor == mp->mp_vendorid && devid == mp->mp_deviceid) { if (vendor == mp->mp_vendorid && devid == mp->mp_deviceid) {
device_set_desc(dev, mp->mp_name); device_set_desc(dev, mp->mp_name);
return (BUS_PROBE_DEFAULT); return (BUS_PROBE_DEFAULT);
@@ -146,7 +147,6 @@ malo_pci_probe(device_t dev)
} }
return (ENXIO); return (ENXIO);
#undef N
} }
static int static int
@@ -223,9 +223,9 @@ malo_pci_attach(device_t dev)
BUS_SPACE_MAXADDR_32BIT, /* lowaddr */ BUS_SPACE_MAXADDR_32BIT, /* lowaddr */
BUS_SPACE_MAXADDR, /* highaddr */ BUS_SPACE_MAXADDR, /* highaddr */
NULL, NULL, /* filter, filterarg */ NULL, NULL, /* filter, filterarg */
BUS_SPACE_MAXADDR, /* maxsize */ BUS_SPACE_MAXSIZE, /* maxsize */
0, /* nsegments */ 0, /* nsegments */
BUS_SPACE_MAXADDR, /* maxsegsize */ BUS_SPACE_MAXSIZE, /* maxsegsize */
0, /* flags */ 0, /* flags */
NULL, /* lockfunc */ NULL, /* lockfunc */
NULL, /* lockarg */ NULL, /* lockarg */
@@ -31,13 +31,14 @@
#include <sys/cdefs.h> #include <sys/cdefs.h>
#ifdef __FreeBSD__ #ifdef __FreeBSD__
__FBSDID("$FreeBSD$"); __FBSDID("$FreeBSD: releng/11.1/sys/dev/malo/if_malohal.c 267340 2014-06-10 20:25:45Z jhb $");
#endif #endif
#include <sys/param.h> #include <sys/param.h>
#include <sys/systm.h> #include <sys/systm.h>
#include <sys/endian.h> #include <sys/endian.h>
#include <sys/kernel.h> #include <sys/kernel.h>
#include <sys/malloc.h>
#include <sys/firmware.h> #include <sys/firmware.h>
#include <sys/socket.h> #include <sys/socket.h>
@@ -45,8 +46,10 @@ __FBSDID("$FreeBSD$");
#include <sys/bus.h> #include <sys/bus.h>
#include <net/if.h> #include <net/if.h>
#include <net/if_var.h>
#include <net/if_dl.h> #include <net/if_dl.h>
#include <net/if_media.h> #include <net/if_media.h>
#include <net/ethernet.h>
#include <net80211/ieee80211_var.h> #include <net80211/ieee80211_var.h>
@@ -134,13 +137,6 @@ malo_hal_attach(device_t dev, uint16_t devid,
} }
/* allocate descriptors */ /* allocate descriptors */
error = bus_dmamap_create(mh->mh_dmat, BUS_DMA_NOWAIT, &mh->mh_dmamap);
if (error != 0) {
device_printf(dev, "unable to create dmamap for cmd buffers, "
"error %u\n", error);
goto fail;
}
error = bus_dmamem_alloc(mh->mh_dmat, (void**) &mh->mh_cmdbuf, error = bus_dmamem_alloc(mh->mh_dmat, (void**) &mh->mh_cmdbuf,
BUS_DMA_NOWAIT | BUS_DMA_COHERENT, BUS_DMA_NOWAIT | BUS_DMA_COHERENT,
&mh->mh_dmamap); &mh->mh_dmamap);
@@ -163,13 +159,9 @@ malo_hal_attach(device_t dev, uint16_t devid,
return (mh); return (mh);
fail: fail:
if (mh->mh_dmamap != NULL) { if (mh->mh_cmdbuf != NULL)
bus_dmamap_unload(mh->mh_dmat, mh->mh_dmamap); bus_dmamem_free(mh->mh_dmat, mh->mh_cmdbuf,
if (mh->mh_cmdbuf != NULL) mh->mh_dmamap);
bus_dmamem_free(mh->mh_dmat, mh->mh_cmdbuf,
mh->mh_dmamap);
bus_dmamap_destroy(mh->mh_dmat, mh->mh_dmamap);
}
if (mh->mh_dmat) if (mh->mh_dmat)
bus_dma_tag_destroy(mh->mh_dmat); bus_dma_tag_destroy(mh->mh_dmat);
free(mh, M_DEVBUF); free(mh, M_DEVBUF);
@@ -589,7 +581,6 @@ malo_hal_detach(struct malo_hal *mh)
{ {
bus_dmamem_free(mh->mh_dmat, mh->mh_cmdbuf, mh->mh_dmamap); bus_dmamem_free(mh->mh_dmat, mh->mh_cmdbuf, mh->mh_dmamap);
bus_dmamap_destroy(mh->mh_dmat, mh->mh_dmamap);
bus_dma_tag_destroy(mh->mh_dmat); bus_dma_tag_destroy(mh->mh_dmat);
mtx_destroy(&mh->mh_mtx); mtx_destroy(&mh->mh_mtx);
free(mh, M_DEVBUF); free(mh, M_DEVBUF);
@@ -28,7 +28,7 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGES. * THE POSSIBILITY OF SUCH DAMAGES.
* *
* $FreeBSD$ * $FreeBSD: releng/11.1/sys/dev/malo/if_malohal.h 218909 2011-02-21 09:01:34Z brucec $
*/ */
#ifndef _DEV_MALOHAL_H #ifndef _DEV_MALOHAL_H
@@ -28,7 +28,7 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGES. * THE POSSIBILITY OF SUCH DAMAGES.
* *
* $FreeBSD$ * $FreeBSD: releng/11.1/sys/dev/malo/if_maloioctl.h 177595 2008-03-25 06:32:33Z weongyo $
*/ */
/* /*