3com: Sync with FreeBSD 11.1.
No functional changes to the actual driver, it seems.
This commit is contained in:
@@ -1,3 +1,29 @@
|
|||||||
SubDir HAIKU_TOP src add-ons kernel drivers network 3com ;
|
SubDir HAIKU_TOP src add-ons kernel drivers network 3com ;
|
||||||
|
|
||||||
SubInclude HAIKU_TOP src add-ons kernel drivers network 3com 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 xl ] ;
|
||||||
|
|
||||||
|
KernelAddon 3com :
|
||||||
|
glue.c
|
||||||
|
if_xl.c
|
||||||
|
xlphy.c
|
||||||
|
bmtphy.c
|
||||||
|
ukphy.c
|
||||||
|
ukphy_subr.c
|
||||||
|
: libfreebsd11_network.a
|
||||||
|
;
|
||||||
|
|
||||||
|
ObjectHdrs [ FGristFiles bmtphy$(SUFOBJ) ukphy$(SUFOBJ) xlphy$(SUFOBJ) ]
|
||||||
|
: [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) libs
|
||||||
|
compat freebsd_network ] ;
|
||||||
|
Includes [ FGristFiles bmtphy.c ukphy.c xlphy.c ]
|
||||||
|
: <src!libs!compat!freebsd_network>miidevs.h ;
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
SubDir HAIKU_TOP src add-ons kernel drivers network 3com dev ;
|
|
||||||
|
|
||||||
SubInclude HAIKU_TOP src add-ons kernel drivers network 3com dev mii ;
|
|
||||||
SubInclude HAIKU_TOP src add-ons kernel drivers network 3com dev xl ;
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
SubDir HAIKU_TOP src add-ons kernel drivers network 3com dev mii ;
|
|
||||||
|
|
||||||
UseHeaders [ FDirName $(SUBDIR) .. .. ] : true ;
|
|
||||||
UseHeaders [ FDirName $(HAIKU_TOP) src libs compat freebsd_network compat ]
|
|
||||||
: true ;
|
|
||||||
|
|
||||||
UsePrivateHeaders net system ;
|
|
||||||
UsePrivateKernelHeaders ;
|
|
||||||
|
|
||||||
SubDirCcFlags [ FDefines _KERNEL=1 FBSD_DRIVER=1 ] ;
|
|
||||||
|
|
||||||
KernelStaticLibrary 3com_mii.a
|
|
||||||
:
|
|
||||||
bmtphy.c
|
|
||||||
ukphy.c
|
|
||||||
ukphy_subr.c
|
|
||||||
;
|
|
||||||
|
|
||||||
ObjectHdrs [ FGristFiles bmtphy$(SUFOBJ) ukphy$(SUFOBJ) ]
|
|
||||||
: [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) libs
|
|
||||||
compat freebsd_network ] ;
|
|
||||||
Includes [ FGristFiles bmtphy.c ukphy.c ]
|
|
||||||
: <src!libs!compat!freebsd_network>miidevs.h ;
|
|
||||||
@@ -56,7 +56,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__FBSDID("$FreeBSD$");
|
__FBSDID("$FreeBSD: releng/11.1/sys/dev/mii/bmtphy.c 257184 2013-10-26 18:40:17Z glebius $");
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Driver for the Broadcom BCM5201/BCM5202 "Mini-Theta" PHYs. This also
|
* Driver for the Broadcom BCM5201/BCM5202 "Mini-Theta" PHYs. This also
|
||||||
@@ -159,12 +159,6 @@ bmtphy_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;
|
|
||||||
|
|
||||||
mii_phy_setmedia(sc);
|
mii_phy_setmedia(sc);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
*
|
*
|
||||||
* from NetBSD: bmtphyreg.h,v 1.1 2001/06/02 21:42:10 thorpej Exp
|
* from NetBSD: bmtphyreg.h,v 1.1 2001/06/02 21:42:10 thorpej Exp
|
||||||
*
|
*
|
||||||
* $FreeBSD$
|
* $FreeBSD: releng/11.1/sys/dev/mii/bmtphyreg.h 204646 2010-03-03 17:55:51Z joel $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _DEV_MII_BMTPHYREG_H_
|
#ifndef _DEV_MII_BMTPHYREG_H_
|
||||||
|
|||||||
@@ -55,7 +55,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__FBSDID("$FreeBSD$");
|
__FBSDID("$FreeBSD: releng/11.1/sys/dev/mii/ukphy.c 257184 2013-10-26 18:40:17Z glebius $");
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* driver for generic unknown PHYs
|
* driver for generic unknown PHYs
|
||||||
@@ -140,12 +140,6 @@ ukphy_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;
|
|
||||||
|
|
||||||
mii_phy_setmedia(sc);
|
mii_phy_setmedia(sc);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__FBSDID("$FreeBSD$");
|
__FBSDID("$FreeBSD: releng/11.1/sys/dev/mii/ukphy_subr.c 215297 2010-11-14 13:26:10Z marius $");
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Subroutines shared by the ukphy driver and other PHY drivers.
|
* Subroutines shared by the ukphy driver and other PHY drivers.
|
||||||
|
|||||||
@@ -1,22 +0,0 @@
|
|||||||
SubDir HAIKU_TOP src add-ons kernel drivers network 3com dev xl ;
|
|
||||||
|
|
||||||
UseHeaders [ FDirName $(SUBDIR) .. .. ] : true ;
|
|
||||||
UseHeaders [ FDirName $(HAIKU_TOP) src libs compat freebsd_network compat ] : true ;
|
|
||||||
|
|
||||||
UsePrivateHeaders net system ;
|
|
||||||
UsePrivateKernelHeaders ;
|
|
||||||
|
|
||||||
SubDirCcFlags [ FDefines _KERNEL=1 FBSD_DRIVER=1 ] ;
|
|
||||||
|
|
||||||
KernelAddon 3com :
|
|
||||||
if_xl.c
|
|
||||||
glue.c
|
|
||||||
xlphy.c
|
|
||||||
: libfreebsd_network.a 3com_mii.a
|
|
||||||
;
|
|
||||||
|
|
||||||
ObjectHdrs [ FGristFiles xlphy$(SUFOBJ) ]
|
|
||||||
: [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) libs
|
|
||||||
compat freebsd_network ] ;
|
|
||||||
Includes [ FGristFiles xlphy.c ]
|
|
||||||
: <src!libs!compat!freebsd_network>miidevs.h ;
|
|
||||||
@@ -1873,7 +1873,7 @@ again:
|
|||||||
* comes up in the ring.
|
* comes up in the ring.
|
||||||
*/
|
*/
|
||||||
if (rxstat & XL_RXSTAT_UP_ERROR) {
|
if (rxstat & XL_RXSTAT_UP_ERROR) {
|
||||||
ifp->if_ierrors++;
|
if_inc_counter(ifp, IFCOUNTER_IERRORS, 1);
|
||||||
cur_rx->xl_ptr->xl_status = 0;
|
cur_rx->xl_ptr->xl_status = 0;
|
||||||
bus_dmamap_sync(sc->xl_ldata.xl_rx_tag,
|
bus_dmamap_sync(sc->xl_ldata.xl_rx_tag,
|
||||||
sc->xl_ldata.xl_rx_dmamap, BUS_DMASYNC_PREWRITE);
|
sc->xl_ldata.xl_rx_dmamap, BUS_DMASYNC_PREWRITE);
|
||||||
@@ -1888,7 +1888,7 @@ again:
|
|||||||
if (!(rxstat & XL_RXSTAT_UP_CMPLT)) {
|
if (!(rxstat & XL_RXSTAT_UP_CMPLT)) {
|
||||||
device_printf(sc->xl_dev,
|
device_printf(sc->xl_dev,
|
||||||
"bad receive status -- packet dropped\n");
|
"bad receive status -- packet dropped\n");
|
||||||
ifp->if_ierrors++;
|
if_inc_counter(ifp, IFCOUNTER_IERRORS, 1);
|
||||||
cur_rx->xl_ptr->xl_status = 0;
|
cur_rx->xl_ptr->xl_status = 0;
|
||||||
bus_dmamap_sync(sc->xl_ldata.xl_rx_tag,
|
bus_dmamap_sync(sc->xl_ldata.xl_rx_tag,
|
||||||
sc->xl_ldata.xl_rx_dmamap, BUS_DMASYNC_PREWRITE);
|
sc->xl_ldata.xl_rx_dmamap, BUS_DMASYNC_PREWRITE);
|
||||||
@@ -1908,7 +1908,7 @@ again:
|
|||||||
* can do in this situation.
|
* can do in this situation.
|
||||||
*/
|
*/
|
||||||
if (xl_newbuf(sc, cur_rx)) {
|
if (xl_newbuf(sc, cur_rx)) {
|
||||||
ifp->if_ierrors++;
|
if_inc_counter(ifp, IFCOUNTER_IERRORS, 1);
|
||||||
cur_rx->xl_ptr->xl_status = 0;
|
cur_rx->xl_ptr->xl_status = 0;
|
||||||
bus_dmamap_sync(sc->xl_ldata.xl_rx_tag,
|
bus_dmamap_sync(sc->xl_ldata.xl_rx_tag,
|
||||||
sc->xl_ldata.xl_rx_dmamap, BUS_DMASYNC_PREWRITE);
|
sc->xl_ldata.xl_rx_dmamap, BUS_DMASYNC_PREWRITE);
|
||||||
@@ -1917,7 +1917,7 @@ again:
|
|||||||
bus_dmamap_sync(sc->xl_ldata.xl_rx_tag,
|
bus_dmamap_sync(sc->xl_ldata.xl_rx_tag,
|
||||||
sc->xl_ldata.xl_rx_dmamap, BUS_DMASYNC_PREWRITE);
|
sc->xl_ldata.xl_rx_dmamap, BUS_DMASYNC_PREWRITE);
|
||||||
|
|
||||||
ifp->if_ipackets++;
|
if_inc_counter(ifp, IFCOUNTER_IPACKETS, 1);
|
||||||
m->m_pkthdr.rcvif = ifp;
|
m->m_pkthdr.rcvif = ifp;
|
||||||
m->m_pkthdr.len = m->m_len = total_len;
|
m->m_pkthdr.len = m->m_len = total_len;
|
||||||
|
|
||||||
@@ -2021,7 +2021,7 @@ xl_txeof(struct xl_softc *sc)
|
|||||||
bus_dmamap_unload(sc->xl_mtag, cur_tx->xl_map);
|
bus_dmamap_unload(sc->xl_mtag, cur_tx->xl_map);
|
||||||
m_freem(cur_tx->xl_mbuf);
|
m_freem(cur_tx->xl_mbuf);
|
||||||
cur_tx->xl_mbuf = NULL;
|
cur_tx->xl_mbuf = NULL;
|
||||||
ifp->if_opackets++;
|
if_inc_counter(ifp, IFCOUNTER_OPACKETS, 1);
|
||||||
ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
|
ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
|
||||||
|
|
||||||
cur_tx->xl_next = sc->xl_cdata.xl_tx_free;
|
cur_tx->xl_next = sc->xl_cdata.xl_tx_free;
|
||||||
@@ -2068,7 +2068,7 @@ xl_txeof_90xB(struct xl_softc *sc)
|
|||||||
cur_tx->xl_mbuf = NULL;
|
cur_tx->xl_mbuf = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
ifp->if_opackets++;
|
if_inc_counter(ifp, IFCOUNTER_OPACKETS, 1);
|
||||||
|
|
||||||
sc->xl_cdata.xl_tx_cnt--;
|
sc->xl_cdata.xl_tx_cnt--;
|
||||||
XL_INC(idx, XL_TX_LIST_CNT);
|
XL_INC(idx, XL_TX_LIST_CNT);
|
||||||
@@ -2198,7 +2198,7 @@ xl_intr(void *arg)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (status & XL_STAT_TX_COMPLETE) {
|
if (status & XL_STAT_TX_COMPLETE) {
|
||||||
ifp->if_oerrors++;
|
if_inc_counter(ifp, IFCOUNTER_OERRORS, 1);
|
||||||
xl_txeoc(sc);
|
xl_txeoc(sc);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2275,7 +2275,7 @@ xl_poll_locked(struct ifnet *ifp, enum poll_cmd cmd, int count)
|
|||||||
XL_CMD_INTR_ACK|(status & XL_INTRS));
|
XL_CMD_INTR_ACK|(status & XL_INTRS));
|
||||||
|
|
||||||
if (status & XL_STAT_TX_COMPLETE) {
|
if (status & XL_STAT_TX_COMPLETE) {
|
||||||
ifp->if_oerrors++;
|
if_inc_counter(ifp, IFCOUNTER_OERRORS, 1);
|
||||||
xl_txeoc(sc);
|
xl_txeoc(sc);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2332,10 +2332,12 @@ xl_stats_update(struct xl_softc *sc)
|
|||||||
for (i = 0; i < 16; i++)
|
for (i = 0; i < 16; i++)
|
||||||
*p++ = CSR_READ_1(sc, XL_W6_CARRIER_LOST + i);
|
*p++ = CSR_READ_1(sc, XL_W6_CARRIER_LOST + i);
|
||||||
|
|
||||||
ifp->if_ierrors += xl_stats.xl_rx_overrun;
|
if_inc_counter(ifp, IFCOUNTER_IERRORS, xl_stats.xl_rx_overrun);
|
||||||
|
|
||||||
ifp->if_collisions += xl_stats.xl_tx_multi_collision +
|
if_inc_counter(ifp, IFCOUNTER_COLLISIONS,
|
||||||
xl_stats.xl_tx_single_collision + xl_stats.xl_tx_late_collision;
|
xl_stats.xl_tx_multi_collision +
|
||||||
|
xl_stats.xl_tx_single_collision +
|
||||||
|
xl_stats.xl_tx_late_collision);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Boomerang and cyclone chips have an extra stats counter
|
* Boomerang and cyclone chips have an extra stats counter
|
||||||
@@ -3141,7 +3143,7 @@ xl_watchdog(struct xl_softc *sc)
|
|||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
ifp->if_oerrors++;
|
if_inc_counter(ifp, IFCOUNTER_OERRORS, 1);
|
||||||
XL_SEL_WIN(4);
|
XL_SEL_WIN(4);
|
||||||
status = CSR_READ_2(sc, XL_W4_MEDIA_STATUS);
|
status = CSR_READ_2(sc, XL_W4_MEDIA_STATUS);
|
||||||
device_printf(sc->xl_dev, "watchdog timeout\n");
|
device_printf(sc->xl_dev, "watchdog timeout\n");
|
||||||
|
|||||||
@@ -55,7 +55,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__FBSDID("$FreeBSD$");
|
__FBSDID("$FreeBSD: releng/11.1/sys/dev/xl/xlphy.c 257184 2013-10-26 18:40:17Z glebius $");
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* driver for 3Com internal PHYs
|
* driver for 3Com internal PHYs
|
||||||
@@ -152,22 +152,10 @@ xlphy_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;
|
|
||||||
|
|
||||||
mii_phy_setmedia(sc);
|
mii_phy_setmedia(sc);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MII_TICK:
|
case MII_TICK:
|
||||||
/*
|
|
||||||
* Is the interface even up?
|
|
||||||
*/
|
|
||||||
if ((mii->mii_ifp->if_flags & IFF_UP) == 0)
|
|
||||||
return (0);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The 3Com PHY's autonegotiation doesn't need to be
|
* The 3Com PHY's autonegotiation doesn't need to be
|
||||||
* kicked; it continues in the background.
|
* kicked; it continues in the background.
|
||||||
|
|||||||
+3
-5
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
|
|
||||||
HAIKU_FBSD_DRIVER_GLUE(3com, xl, pci);
|
HAIKU_FBSD_DRIVER_GLUE(3com, xl, pci);
|
||||||
|
HAIKU_DRIVER_REQUIREMENTS(FBSD_TASKQUEUES | FBSD_SWI_TASKQUEUE);
|
||||||
|
|
||||||
extern driver_t *DRIVER_MODULE_NAME(bmtphy, miibus);
|
extern driver_t *DRIVER_MODULE_NAME(bmtphy, miibus);
|
||||||
extern driver_t *DRIVER_MODULE_NAME(ukphy, miibus);
|
extern driver_t *DRIVER_MODULE_NAME(ukphy, miibus);
|
||||||
@@ -37,7 +38,7 @@ __haiku_select_miibus_driver(device_t dev)
|
|||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
__haiku_disable_interrupts(device_t dev)
|
HAIKU_CHECK_DISABLE_INTERRUPTS(device_t dev)
|
||||||
{
|
{
|
||||||
struct xl_softc *sc = device_get_softc(dev);
|
struct xl_softc *sc = device_get_softc(dev);
|
||||||
u_int16_t status = CSR_READ_2(sc, XL_STATUS);
|
u_int16_t status = CSR_READ_2(sc, XL_STATUS);
|
||||||
@@ -53,11 +54,8 @@ __haiku_disable_interrupts(device_t dev)
|
|||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
__haiku_reenable_interrupts(device_t dev)
|
HAIKU_REENABLE_INTERRUPTS(device_t dev)
|
||||||
{
|
{
|
||||||
struct xl_softc *sc = device_get_softc(dev);
|
struct xl_softc *sc = device_get_softc(dev);
|
||||||
CSR_WRITE_2(sc, XL_COMMAND, XL_CMD_STAT_ENB | XL_INTRS);
|
CSR_WRITE_2(sc, XL_COMMAND, XL_CMD_STAT_ENB | XL_INTRS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
HAIKU_DRIVER_REQUIREMENTS(FBSD_TASKQUEUES | FBSD_SWI_TASKQUEUE);
|
|
||||||
@@ -19,13 +19,13 @@ 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.2 drivers
|
# FreeBSD 9.2 drivers
|
||||||
SubInclude HAIKU_TOP src add-ons kernel drivers network 3com ;
|
|
||||||
SubInclude HAIKU_TOP src add-ons kernel drivers network dec21xxx ;
|
SubInclude HAIKU_TOP src add-ons kernel drivers network dec21xxx ;
|
||||||
|
|
||||||
# FreeBSD 9.3 drivers
|
# FreeBSD 9.3 drivers
|
||||||
SubInclude HAIKU_TOP src add-ons kernel drivers network jmicron2x0 ;
|
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 ar81xx ;
|
SubInclude HAIKU_TOP src add-ons kernel drivers network ar81xx ;
|
||||||
SubInclude HAIKU_TOP src add-ons kernel drivers network atheros813x ;
|
SubInclude HAIKU_TOP src add-ons kernel drivers network atheros813x ;
|
||||||
SubInclude HAIKU_TOP src add-ons kernel drivers network attansic_l1 ;
|
SubInclude HAIKU_TOP src add-ons kernel drivers network attansic_l1 ;
|
||||||
|
|||||||
Reference in New Issue
Block a user