jmicron2x0: Sync with FreeBSD 11.1.
Same Jamfile cleanups as previous commits. This completes the upgrade of wired ethernet drivers to 11.1! :D
This commit is contained in:
parent
081fecc2f1
commit
8101468dbf
|
@ -18,9 +18,6 @@ SubInclude HAIKU_TOP src add-ons kernel drivers network vlance ;
|
||||||
SubInclude HAIKU_TOP src add-ons kernel drivers network wb840 ;
|
SubInclude HAIKU_TOP src add-ons kernel drivers network wb840 ;
|
||||||
#SubInclude HAIKU_TOP src add-ons kernel drivers network dp83815
|
#SubInclude HAIKU_TOP src add-ons kernel drivers network dp83815
|
||||||
|
|
||||||
# FreeBSD 9.3 drivers
|
|
||||||
SubInclude HAIKU_TOP src add-ons kernel drivers network jmicron2x0 ;
|
|
||||||
|
|
||||||
# FreeBSD 11.1 drivers
|
# FreeBSD 11.1 drivers
|
||||||
SubInclude HAIKU_TOP src add-ons kernel drivers network 3com ;
|
SubInclude HAIKU_TOP src add-ons kernel drivers network 3com ;
|
||||||
SubInclude HAIKU_TOP src add-ons kernel drivers network ar81xx ;
|
SubInclude HAIKU_TOP src add-ons kernel drivers network ar81xx ;
|
||||||
|
@ -32,6 +29,7 @@ SubInclude HAIKU_TOP src add-ons kernel drivers network broadcom570x ;
|
||||||
SubInclude HAIKU_TOP src add-ons kernel drivers network dec21xxx ;
|
SubInclude HAIKU_TOP src add-ons kernel drivers network dec21xxx ;
|
||||||
SubInclude HAIKU_TOP src add-ons kernel drivers network ipro100 ;
|
SubInclude HAIKU_TOP src add-ons kernel drivers network ipro100 ;
|
||||||
SubInclude HAIKU_TOP src add-ons kernel drivers network ipro1000 ;
|
SubInclude HAIKU_TOP src add-ons kernel drivers network ipro1000 ;
|
||||||
|
SubInclude HAIKU_TOP src add-ons kernel drivers network jmicron2x0 ;
|
||||||
SubInclude HAIKU_TOP src add-ons kernel drivers network marvell_yukon ;
|
SubInclude HAIKU_TOP src add-ons kernel drivers network marvell_yukon ;
|
||||||
SubInclude HAIKU_TOP src add-ons kernel drivers network nforce ;
|
SubInclude HAIKU_TOP src add-ons kernel drivers network nforce ;
|
||||||
SubInclude HAIKU_TOP src add-ons kernel drivers network pcnet ;
|
SubInclude HAIKU_TOP src add-ons kernel drivers network pcnet ;
|
||||||
|
|
|
@ -1,3 +1,25 @@
|
||||||
SubDir HAIKU_TOP src add-ons kernel drivers network jmicron2x0 ;
|
SubDir HAIKU_TOP src add-ons kernel drivers network jmicron2x0 ;
|
||||||
|
|
||||||
SubInclude HAIKU_TOP src add-ons kernel drivers network jmicron2x0 dev ;
|
UseHeaders [ FDirName $(HAIKU_TOP) src libs compat freebsd11_network compat ]
|
||||||
|
: true ;
|
||||||
|
UsePrivateHeaders net system ;
|
||||||
|
UsePrivateKernelHeaders ;
|
||||||
|
|
||||||
|
SubDirCcFlags [ FDefines _KERNEL=1 FBSD_DRIVER=1 ] ;
|
||||||
|
|
||||||
|
UseHeaders [ FDirName $(SUBDIR) ] : true ;
|
||||||
|
|
||||||
|
SEARCH_SOURCE += [ FDirName $(SUBDIR) dev mii ] ;
|
||||||
|
SEARCH_SOURCE += [ FDirName $(SUBDIR) dev jme ] ;
|
||||||
|
|
||||||
|
KernelAddon jmicron2x0 :
|
||||||
|
glue.c
|
||||||
|
if_jme.c
|
||||||
|
jmphy.c
|
||||||
|
: libfreebsd11_network.a
|
||||||
|
;
|
||||||
|
|
||||||
|
ObjectHdrs [ FGristFiles jmphy$(SUFOBJ) ]
|
||||||
|
: [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) libs
|
||||||
|
compat freebsd11_network ] ;
|
||||||
|
Includes [ FGristFiles jmphy.c ] : <src!libs!compat!freebsd11_network>miidevs.h ;
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
SubDir HAIKU_TOP src add-ons kernel drivers network jmicron2x0 dev ;
|
|
||||||
|
|
||||||
SubInclude HAIKU_TOP src add-ons kernel drivers network jmicron2x0 dev jme ;
|
|
||||||
SubInclude HAIKU_TOP src add-ons kernel drivers network jmicron2x0 dev mii ;
|
|
|
@ -1,20 +0,0 @@
|
||||||
SubDir HAIKU_TOP src add-ons kernel drivers network jmicron2x0 dev jme ;
|
|
||||||
|
|
||||||
UseHeaders [ FDirName $(SUBDIR) .. .. ] : true ;
|
|
||||||
UseHeaders [ FDirName $(SUBDIR) .. mii ] : true ;
|
|
||||||
UseHeaders [ FDirName $(HAIKU_TOP) src libs compat freebsd_network compat ] : true ;
|
|
||||||
|
|
||||||
UsePrivateHeaders net ;
|
|
||||||
UsePrivateKernelHeaders ;
|
|
||||||
|
|
||||||
# Enabling C++ structures in C only code
|
|
||||||
Includes [ FGristFiles kernel_c++_structs.h ]
|
|
||||||
: <src!system!kernel>kernel_c++_struct_sizes.h ;
|
|
||||||
|
|
||||||
SubDirCcFlags [ FDefines _KERNEL=1 FBSD_DRIVER=1 ] ;
|
|
||||||
|
|
||||||
KernelAddon jmicron2x0 :
|
|
||||||
if_jme.c
|
|
||||||
glue.c
|
|
||||||
: libfreebsd_network.a jmicron2x0_mii.a
|
|
||||||
;
|
|
|
@ -26,7 +26,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__FBSDID("$FreeBSD$");
|
__FBSDID("$FreeBSD: releng/11.1/sys/dev/jme/if_jme.c 298646 2016-04-26 15:03:15Z pfg $");
|
||||||
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <sys/systm.h>
|
#include <sys/systm.h>
|
||||||
|
@ -46,6 +46,7 @@ __FBSDID("$FreeBSD$");
|
||||||
|
|
||||||
#include <net/bpf.h>
|
#include <net/bpf.h>
|
||||||
#include <net/if.h>
|
#include <net/if.h>
|
||||||
|
#include <net/if_var.h>
|
||||||
#include <net/if_arp.h>
|
#include <net/if_arp.h>
|
||||||
#include <net/ethernet.h>
|
#include <net/ethernet.h>
|
||||||
#include <net/if_dl.h>
|
#include <net/if_dl.h>
|
||||||
|
@ -336,8 +337,7 @@ jme_probe(device_t dev)
|
||||||
vendor = pci_get_vendor(dev);
|
vendor = pci_get_vendor(dev);
|
||||||
devid = pci_get_device(dev);
|
devid = pci_get_device(dev);
|
||||||
sp = jme_devs;
|
sp = jme_devs;
|
||||||
for (i = 0; i < sizeof(jme_devs) / sizeof(jme_devs[0]);
|
for (i = 0; i < nitems(jme_devs); i++, sp++) {
|
||||||
i++, sp++) {
|
|
||||||
if (vendor == sp->jme_vendorid &&
|
if (vendor == sp->jme_vendorid &&
|
||||||
devid == sp->jme_deviceid) {
|
devid == sp->jme_deviceid) {
|
||||||
device_set_desc(dev, sp->jme_name);
|
device_set_desc(dev, sp->jme_name);
|
||||||
|
@ -803,7 +803,7 @@ jme_attach(device_t dev)
|
||||||
}
|
}
|
||||||
/* Create coalescing sysctl node. */
|
/* Create coalescing sysctl node. */
|
||||||
jme_sysctl_node(sc);
|
jme_sysctl_node(sc);
|
||||||
if ((error = jme_dma_alloc(sc) != 0))
|
if ((error = jme_dma_alloc(sc)) != 0)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
ifp = sc->jme_ifp = if_alloc(IFT_ETHER);
|
ifp = sc->jme_ifp = if_alloc(IFT_ETHER);
|
||||||
|
@ -877,7 +877,7 @@ jme_attach(device_t dev)
|
||||||
ifp->if_capenable = ifp->if_capabilities;
|
ifp->if_capenable = ifp->if_capabilities;
|
||||||
|
|
||||||
/* Tell the upper layer(s) we support long frames. */
|
/* Tell the upper layer(s) we support long frames. */
|
||||||
ifp->if_data.ifi_hdrlen = sizeof(struct ether_vlan_header);
|
ifp->if_hdrlen = sizeof(struct ether_vlan_header);
|
||||||
|
|
||||||
/* Create local taskq. */
|
/* Create local taskq. */
|
||||||
sc->jme_tq = taskqueue_create_fast("jme_taskq", M_WAITOK,
|
sc->jme_tq = taskqueue_create_fast("jme_taskq", M_WAITOK,
|
||||||
|
@ -1407,31 +1407,29 @@ jme_dma_free(struct jme_softc *sc)
|
||||||
|
|
||||||
/* Tx ring */
|
/* Tx ring */
|
||||||
if (sc->jme_cdata.jme_tx_ring_tag != NULL) {
|
if (sc->jme_cdata.jme_tx_ring_tag != NULL) {
|
||||||
if (sc->jme_cdata.jme_tx_ring_map)
|
if (sc->jme_rdata.jme_tx_ring_paddr)
|
||||||
bus_dmamap_unload(sc->jme_cdata.jme_tx_ring_tag,
|
bus_dmamap_unload(sc->jme_cdata.jme_tx_ring_tag,
|
||||||
sc->jme_cdata.jme_tx_ring_map);
|
sc->jme_cdata.jme_tx_ring_map);
|
||||||
if (sc->jme_cdata.jme_tx_ring_map &&
|
if (sc->jme_rdata.jme_tx_ring)
|
||||||
sc->jme_rdata.jme_tx_ring)
|
|
||||||
bus_dmamem_free(sc->jme_cdata.jme_tx_ring_tag,
|
bus_dmamem_free(sc->jme_cdata.jme_tx_ring_tag,
|
||||||
sc->jme_rdata.jme_tx_ring,
|
sc->jme_rdata.jme_tx_ring,
|
||||||
sc->jme_cdata.jme_tx_ring_map);
|
sc->jme_cdata.jme_tx_ring_map);
|
||||||
sc->jme_rdata.jme_tx_ring = NULL;
|
sc->jme_rdata.jme_tx_ring = NULL;
|
||||||
sc->jme_cdata.jme_tx_ring_map = NULL;
|
sc->jme_rdata.jme_tx_ring_paddr = 0;
|
||||||
bus_dma_tag_destroy(sc->jme_cdata.jme_tx_ring_tag);
|
bus_dma_tag_destroy(sc->jme_cdata.jme_tx_ring_tag);
|
||||||
sc->jme_cdata.jme_tx_ring_tag = NULL;
|
sc->jme_cdata.jme_tx_ring_tag = NULL;
|
||||||
}
|
}
|
||||||
/* Rx ring */
|
/* Rx ring */
|
||||||
if (sc->jme_cdata.jme_rx_ring_tag != NULL) {
|
if (sc->jme_cdata.jme_rx_ring_tag != NULL) {
|
||||||
if (sc->jme_cdata.jme_rx_ring_map)
|
if (sc->jme_rdata.jme_rx_ring_paddr)
|
||||||
bus_dmamap_unload(sc->jme_cdata.jme_rx_ring_tag,
|
bus_dmamap_unload(sc->jme_cdata.jme_rx_ring_tag,
|
||||||
sc->jme_cdata.jme_rx_ring_map);
|
sc->jme_cdata.jme_rx_ring_map);
|
||||||
if (sc->jme_cdata.jme_rx_ring_map &&
|
if (sc->jme_rdata.jme_rx_ring)
|
||||||
sc->jme_rdata.jme_rx_ring)
|
|
||||||
bus_dmamem_free(sc->jme_cdata.jme_rx_ring_tag,
|
bus_dmamem_free(sc->jme_cdata.jme_rx_ring_tag,
|
||||||
sc->jme_rdata.jme_rx_ring,
|
sc->jme_rdata.jme_rx_ring,
|
||||||
sc->jme_cdata.jme_rx_ring_map);
|
sc->jme_cdata.jme_rx_ring_map);
|
||||||
sc->jme_rdata.jme_rx_ring = NULL;
|
sc->jme_rdata.jme_rx_ring = NULL;
|
||||||
sc->jme_cdata.jme_rx_ring_map = NULL;
|
sc->jme_rdata.jme_rx_ring_paddr = 0;
|
||||||
bus_dma_tag_destroy(sc->jme_cdata.jme_rx_ring_tag);
|
bus_dma_tag_destroy(sc->jme_cdata.jme_rx_ring_tag);
|
||||||
sc->jme_cdata.jme_rx_ring_tag = NULL;
|
sc->jme_cdata.jme_rx_ring_tag = NULL;
|
||||||
}
|
}
|
||||||
|
@ -1469,15 +1467,15 @@ jme_dma_free(struct jme_softc *sc)
|
||||||
|
|
||||||
/* Shared status block. */
|
/* Shared status block. */
|
||||||
if (sc->jme_cdata.jme_ssb_tag != NULL) {
|
if (sc->jme_cdata.jme_ssb_tag != NULL) {
|
||||||
if (sc->jme_cdata.jme_ssb_map)
|
if (sc->jme_rdata.jme_ssb_block_paddr)
|
||||||
bus_dmamap_unload(sc->jme_cdata.jme_ssb_tag,
|
bus_dmamap_unload(sc->jme_cdata.jme_ssb_tag,
|
||||||
sc->jme_cdata.jme_ssb_map);
|
sc->jme_cdata.jme_ssb_map);
|
||||||
if (sc->jme_cdata.jme_ssb_map && sc->jme_rdata.jme_ssb_block)
|
if (sc->jme_rdata.jme_ssb_block)
|
||||||
bus_dmamem_free(sc->jme_cdata.jme_ssb_tag,
|
bus_dmamem_free(sc->jme_cdata.jme_ssb_tag,
|
||||||
sc->jme_rdata.jme_ssb_block,
|
sc->jme_rdata.jme_ssb_block,
|
||||||
sc->jme_cdata.jme_ssb_map);
|
sc->jme_cdata.jme_ssb_map);
|
||||||
sc->jme_rdata.jme_ssb_block = NULL;
|
sc->jme_rdata.jme_ssb_block = NULL;
|
||||||
sc->jme_cdata.jme_ssb_map = NULL;
|
sc->jme_rdata.jme_ssb_block_paddr = 0;
|
||||||
bus_dma_tag_destroy(sc->jme_cdata.jme_ssb_tag);
|
bus_dma_tag_destroy(sc->jme_cdata.jme_ssb_tag);
|
||||||
sc->jme_cdata.jme_ssb_tag = NULL;
|
sc->jme_cdata.jme_ssb_tag = NULL;
|
||||||
}
|
}
|
||||||
|
@ -1690,7 +1688,7 @@ jme_encap(struct jme_softc *sc, struct mbuf **m_head)
|
||||||
struct mbuf *m;
|
struct mbuf *m;
|
||||||
bus_dma_segment_t txsegs[JME_MAXTXSEGS];
|
bus_dma_segment_t txsegs[JME_MAXTXSEGS];
|
||||||
int error, i, nsegs, prod;
|
int error, i, nsegs, prod;
|
||||||
uint32_t cflags, tso_segsz;
|
uint32_t cflags, tsosegsz;
|
||||||
|
|
||||||
JME_LOCK_ASSERT(sc);
|
JME_LOCK_ASSERT(sc);
|
||||||
|
|
||||||
|
@ -1808,10 +1806,10 @@ jme_encap(struct jme_softc *sc, struct mbuf **m_head)
|
||||||
|
|
||||||
m = *m_head;
|
m = *m_head;
|
||||||
cflags = 0;
|
cflags = 0;
|
||||||
tso_segsz = 0;
|
tsosegsz = 0;
|
||||||
/* Configure checksum offload and TSO. */
|
/* Configure checksum offload and TSO. */
|
||||||
if ((m->m_pkthdr.csum_flags & CSUM_TSO) != 0) {
|
if ((m->m_pkthdr.csum_flags & CSUM_TSO) != 0) {
|
||||||
tso_segsz = (uint32_t)m->m_pkthdr.tso_segsz <<
|
tsosegsz = (uint32_t)m->m_pkthdr.tso_segsz <<
|
||||||
JME_TD_MSS_SHIFT;
|
JME_TD_MSS_SHIFT;
|
||||||
cflags |= JME_TD_TSO;
|
cflags |= JME_TD_TSO;
|
||||||
} else {
|
} else {
|
||||||
|
@ -1830,7 +1828,7 @@ jme_encap(struct jme_softc *sc, struct mbuf **m_head)
|
||||||
|
|
||||||
desc = &sc->jme_rdata.jme_tx_ring[prod];
|
desc = &sc->jme_rdata.jme_tx_ring[prod];
|
||||||
desc->flags = htole32(cflags);
|
desc->flags = htole32(cflags);
|
||||||
desc->buflen = htole32(tso_segsz);
|
desc->buflen = htole32(tsosegsz);
|
||||||
desc->addr_hi = htole32(m->m_pkthdr.len);
|
desc->addr_hi = htole32(m->m_pkthdr.len);
|
||||||
desc->addr_lo = 0;
|
desc->addr_lo = 0;
|
||||||
sc->jme_cdata.jme_tx_cnt++;
|
sc->jme_cdata.jme_tx_cnt++;
|
||||||
|
@ -1948,7 +1946,7 @@ jme_watchdog(struct jme_softc *sc)
|
||||||
ifp = sc->jme_ifp;
|
ifp = sc->jme_ifp;
|
||||||
if ((sc->jme_flags & JME_FLAG_LINK) == 0) {
|
if ((sc->jme_flags & JME_FLAG_LINK) == 0) {
|
||||||
if_printf(sc->jme_ifp, "watchdog timeout (missed link)\n");
|
if_printf(sc->jme_ifp, "watchdog timeout (missed link)\n");
|
||||||
ifp->if_oerrors++;
|
if_inc_counter(ifp, IFCOUNTER_OERRORS, 1);
|
||||||
ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
|
ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
|
||||||
jme_init_locked(sc);
|
jme_init_locked(sc);
|
||||||
return;
|
return;
|
||||||
|
@ -1963,7 +1961,7 @@ jme_watchdog(struct jme_softc *sc)
|
||||||
}
|
}
|
||||||
|
|
||||||
if_printf(sc->jme_ifp, "watchdog timeout\n");
|
if_printf(sc->jme_ifp, "watchdog timeout\n");
|
||||||
ifp->if_oerrors++;
|
if_inc_counter(ifp, IFCOUNTER_OERRORS, 1);
|
||||||
ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
|
ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
|
||||||
jme_init_locked(sc);
|
jme_init_locked(sc);
|
||||||
if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd))
|
if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd))
|
||||||
|
@ -2282,7 +2280,7 @@ jme_link_task(void *arg, int pending)
|
||||||
m_freem(txd->tx_m);
|
m_freem(txd->tx_m);
|
||||||
txd->tx_m = NULL;
|
txd->tx_m = NULL;
|
||||||
txd->tx_ndesc = 0;
|
txd->tx_ndesc = 0;
|
||||||
ifp->if_oerrors++;
|
if_inc_counter(ifp, IFCOUNTER_OERRORS, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2450,13 +2448,13 @@ jme_txeof(struct jme_softc *sc)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if ((status & (JME_TD_TMOUT | JME_TD_RETRY_EXP)) != 0)
|
if ((status & (JME_TD_TMOUT | JME_TD_RETRY_EXP)) != 0)
|
||||||
ifp->if_oerrors++;
|
if_inc_counter(ifp, IFCOUNTER_OERRORS, 1);
|
||||||
else {
|
else {
|
||||||
ifp->if_opackets++;
|
if_inc_counter(ifp, IFCOUNTER_OPACKETS, 1);
|
||||||
if ((status & JME_TD_COLLISION) != 0)
|
if ((status & JME_TD_COLLISION) != 0)
|
||||||
ifp->if_collisions +=
|
if_inc_counter(ifp, IFCOUNTER_COLLISIONS,
|
||||||
le32toh(txd->tx_desc->buflen) &
|
le32toh(txd->tx_desc->buflen) &
|
||||||
JME_TD_BUF_LEN_MASK;
|
JME_TD_BUF_LEN_MASK);
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* Only the first descriptor of multi-descriptor
|
* Only the first descriptor of multi-descriptor
|
||||||
|
@ -2527,7 +2525,7 @@ jme_rxeof(struct jme_softc *sc)
|
||||||
nsegs = JME_RX_NSEGS(status);
|
nsegs = JME_RX_NSEGS(status);
|
||||||
sc->jme_cdata.jme_rxlen = JME_RX_BYTES(status) - JME_RX_PAD_BYTES;
|
sc->jme_cdata.jme_rxlen = JME_RX_BYTES(status) - JME_RX_PAD_BYTES;
|
||||||
if ((status & JME_RX_ERR_STAT) != 0) {
|
if ((status & JME_RX_ERR_STAT) != 0) {
|
||||||
ifp->if_ierrors++;
|
if_inc_counter(ifp, IFCOUNTER_IERRORS, 1);
|
||||||
jme_discard_rxbuf(sc, sc->jme_cdata.jme_rx_cons);
|
jme_discard_rxbuf(sc, sc->jme_cdata.jme_rx_cons);
|
||||||
#ifdef JME_SHOW_ERRORS
|
#ifdef JME_SHOW_ERRORS
|
||||||
device_printf(sc->jme_dev, "%s : receive error = 0x%b\n",
|
device_printf(sc->jme_dev, "%s : receive error = 0x%b\n",
|
||||||
|
@ -2544,7 +2542,7 @@ jme_rxeof(struct jme_softc *sc)
|
||||||
mp = rxd->rx_m;
|
mp = rxd->rx_m;
|
||||||
/* Add a new receive buffer to the ring. */
|
/* Add a new receive buffer to the ring. */
|
||||||
if (jme_newbuf(sc, rxd) != 0) {
|
if (jme_newbuf(sc, rxd) != 0) {
|
||||||
ifp->if_iqdrops++;
|
if_inc_counter(ifp, IFCOUNTER_IQDROPS, 1);
|
||||||
/* Reuse buffer. */
|
/* Reuse buffer. */
|
||||||
for (; count < nsegs; count++) {
|
for (; count < nsegs; count++) {
|
||||||
jme_discard_rxbuf(sc, cons);
|
jme_discard_rxbuf(sc, cons);
|
||||||
|
@ -2627,7 +2625,7 @@ jme_rxeof(struct jme_softc *sc)
|
||||||
m->m_flags |= M_VLANTAG;
|
m->m_flags |= M_VLANTAG;
|
||||||
}
|
}
|
||||||
|
|
||||||
ifp->if_ipackets++;
|
if_inc_counter(ifp, IFCOUNTER_IPACKETS, 1);
|
||||||
/* Pass it on. */
|
/* Pass it on. */
|
||||||
JME_UNLOCK(sc);
|
JME_UNLOCK(sc);
|
||||||
(*ifp->if_input)(ifp, m);
|
(*ifp->if_input)(ifp, m);
|
||||||
|
@ -2666,7 +2664,7 @@ jme_rxintr(struct jme_softc *sc, int count)
|
||||||
* sure whether this check is needed.
|
* sure whether this check is needed.
|
||||||
*/
|
*/
|
||||||
pktlen = JME_RX_BYTES(le32toh(desc->buflen));
|
pktlen = JME_RX_BYTES(le32toh(desc->buflen));
|
||||||
if (nsegs != ((pktlen + (MCLBYTES - 1)) / MCLBYTES))
|
if (nsegs != howmany(pktlen, MCLBYTES))
|
||||||
break;
|
break;
|
||||||
prog++;
|
prog++;
|
||||||
/* Received a frame. */
|
/* Received a frame. */
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
* $FreeBSD$
|
* $FreeBSD: releng/11.1/sys/dev/jme/if_jmereg.h 298955 2016-05-03 03:41:25Z pfg $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _IF_JMEREG_H
|
#ifndef _IF_JMEREG_H
|
||||||
|
@ -925,7 +925,7 @@
|
||||||
#define TIMER3_TIMEOUT_COUNT_SHIFT 8
|
#define TIMER3_TIMEOUT_COUNT_SHIFT 8
|
||||||
#define TIMER3_TIMEOUT_VALUE_SHIFT 1
|
#define TIMER3_TIMEOUT_VALUE_SHIFT 1
|
||||||
|
|
||||||
/* Aggresive power mode control. */
|
/* Aggressive power mode control. */
|
||||||
#define JME_APMC 0x087C
|
#define JME_APMC 0x087C
|
||||||
#define APMC_PCIE_SDOWN_STAT 0x80000000
|
#define APMC_PCIE_SDOWN_STAT 0x80000000
|
||||||
#define APMC_PCIE_SDOWN_ENB 0x40000000
|
#define APMC_PCIE_SDOWN_ENB 0x40000000
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
* $FreeBSD$
|
* $FreeBSD: releng/11.1/sys/dev/jme/if_jmevar.h 298955 2016-05-03 03:41:25Z pfg $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _IF_JMEVAR_H
|
#ifndef _IF_JMEVAR_H
|
||||||
|
@ -35,7 +35,7 @@
|
||||||
#include <sys/taskqueue.h>
|
#include <sys/taskqueue.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* JMC250 supports upto 1024 descriptors and the number of
|
* JMC250 supports up to 1024 descriptors and the number of
|
||||||
* descriptors should be multiple of 16.
|
* descriptors should be multiple of 16.
|
||||||
*/
|
*/
|
||||||
#define JME_TX_RING_CNT 384
|
#define JME_TX_RING_CNT 384
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
SubDir HAIKU_TOP src add-ons kernel drivers network jmicron2x0 dev mii ;
|
|
||||||
|
|
||||||
UseHeaders [ FDirName $(SUBDIR) .. .. ] : true ;
|
|
||||||
UseHeaders [ FDirName $(HAIKU_TOP) src libs compat freebsd_network compat ] : true ;
|
|
||||||
|
|
||||||
UsePrivateHeaders net ;
|
|
||||||
UsePrivateKernelHeaders ;
|
|
||||||
|
|
||||||
SubDirCcFlags [ FDefines _KERNEL=1 FBSD_DRIVER=1 ] ;
|
|
||||||
|
|
||||||
KernelStaticLibrary jmicron2x0_mii.a
|
|
||||||
:
|
|
||||||
jmphy.c
|
|
||||||
;
|
|
||||||
|
|
||||||
ObjectHdrs [ FGristFiles jmphy$(SUFOBJ) ]
|
|
||||||
: [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) libs
|
|
||||||
compat freebsd_network ] ;
|
|
||||||
Includes [ FGristFiles jmphy.c ] : <src!libs!compat!freebsd_network>miidevs.h ;
|
|
|
@ -26,7 +26,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__FBSDID("$FreeBSD$");
|
__FBSDID("$FreeBSD: releng/11.1/sys/dev/mii/jmphy.c 277108 2015-01-13 06:56:04Z glebius $");
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Driver for the JMicron JMP211 10/100/1000, JMP202 10/100 PHY.
|
* Driver for the JMicron JMP211 10/100/1000, JMP202 10/100 PHY.
|
||||||
|
@ -40,6 +40,7 @@ __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_media.h>
|
#include <net/if_media.h>
|
||||||
|
|
||||||
#include <dev/mii/mii.h>
|
#include <dev/mii/mii.h>
|
||||||
|
@ -99,12 +100,10 @@ jmphy_probe(device_t dev)
|
||||||
static int
|
static int
|
||||||
jmphy_attach(device_t dev)
|
jmphy_attach(device_t dev)
|
||||||
{
|
{
|
||||||
struct mii_attach_args *ma;
|
|
||||||
u_int flags;
|
u_int flags;
|
||||||
|
|
||||||
ma = device_get_ivars(dev);
|
|
||||||
flags = 0;
|
flags = 0;
|
||||||
if (strcmp(ma->mii_data->mii_ifp->if_dname, "jme") == 0 &&
|
if (mii_dev_mac_match(dev, "jme") &&
|
||||||
(miibus_get_flags(dev) & MIIF_MACPRIV0) != 0)
|
(miibus_get_flags(dev) & MIIF_MACPRIV0) != 0)
|
||||||
flags |= MIIF_PHYPRIV0;
|
flags |= MIIF_PHYPRIV0;
|
||||||
mii_phy_dev_attach(dev, flags, &jmphy_funcs, 1);
|
mii_phy_dev_attach(dev, flags, &jmphy_funcs, 1);
|
||||||
|
@ -121,23 +120,11 @@ jmphy_service(struct mii_softc *sc, struct mii_data *mii, int cmd)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MII_MEDIACHG:
|
case MII_MEDIACHG:
|
||||||
/*
|
|
||||||
* If the interface is not up, don't do anything.
|
|
||||||
*/
|
|
||||||
if ((mii->mii_ifp->if_flags & IFF_UP) == 0)
|
|
||||||
break;
|
|
||||||
|
|
||||||
if (jmphy_setmedia(sc, ife) != EJUSTRETURN)
|
if (jmphy_setmedia(sc, ife) != EJUSTRETURN)
|
||||||
return (EINVAL);
|
return (EINVAL);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MII_TICK:
|
case MII_TICK:
|
||||||
/*
|
|
||||||
* Is the interface even up?
|
|
||||||
*/
|
|
||||||
if ((mii->mii_ifp->if_flags & IFF_UP) == 0)
|
|
||||||
return (0);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Only used for autonegotiation.
|
* Only used for autonegotiation.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
* $FreeBSD$
|
* $FreeBSD: releng/11.1/sys/dev/mii/jmphyreg.h 216551 2010-12-18 23:52:50Z yongari $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _DEV_MII_JMPHYREG_H_
|
#ifndef _DEV_MII_JMPHYREG_H_
|
||||||
|
|
Loading…
Reference in New Issue