aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/ed
diff options
context:
space:
mode:
authorIan Dowse <iedowse@FreeBSD.org>2001-09-29 22:32:03 +0000
committerIan Dowse <iedowse@FreeBSD.org>2001-09-29 22:32:03 +0000
commit9b04180c2ce21ea28f108f132cdcd7b097c4f01d (patch)
treecdf110a344a46525cacedd0ee2b8df0a25bfd52d /sys/dev/ed
parent2bb3ce0c475e84c6174b8c4e13017a99a16f216f (diff)
Notes
Diffstat (limited to 'sys/dev/ed')
-rw-r--r--sys/dev/ed/if_ed.c20
-rw-r--r--sys/dev/ed/if_ed_pccard.c16
-rw-r--r--sys/dev/ed/if_edvar.h2
3 files changed, 38 insertions, 0 deletions
diff --git a/sys/dev/ed/if_ed.c b/sys/dev/ed/if_ed.c
index 490837269b91..05008327243b 100644
--- a/sys/dev/ed/if_ed.c
+++ b/sys/dev/ed/if_ed.c
@@ -37,6 +37,8 @@
*
*/
+#include "opt_ed.h"
+
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/sockio.h>
@@ -58,8 +60,10 @@
#include <net/if_mib.h>
#include <net/if_media.h>
+#ifndef ED_NO_MIIBUS
#include <dev/mii/mii.h>
#include <dev/mii/miivar.h>
+#endif
#include <net/bpf.h>
#include "opt_bdg.h"
@@ -79,7 +83,9 @@ static int ed_ioctl __P((struct ifnet *, u_long, caddr_t));
static void ed_start __P((struct ifnet *));
static void ed_reset __P((struct ifnet *));
static void ed_watchdog __P((struct ifnet *));
+#ifndef ED_NO_MIIBUS
static void ed_tick __P((void *));
+#endif
static void ds_getmcaf __P((struct ed_softc *, u_int32_t *));
@@ -1702,8 +1708,10 @@ ed_stop(sc)
{
int n = 5000;
+#ifndef ED_NO_MIIBUS
untimeout(ed_tick, sc, sc->tick_ch);
callout_handle_init(&sc->tick_ch);
+#endif
if (sc->gone)
return;
/*
@@ -1738,6 +1746,7 @@ ed_watchdog(ifp)
ed_reset(ifp);
}
+#ifndef ED_NO_MIIBUS
static void
ed_tick(arg)
void *arg;
@@ -1758,6 +1767,7 @@ ed_tick(arg)
sc->tick_ch = timeout(ed_tick, sc, hz);
splx(s);
}
+#endif
/*
* Initialize device.
@@ -1900,11 +1910,13 @@ ed_init(xsc)
}
}
+#ifndef ED_NO_MIIBUS
if (sc->miibus != NULL) {
struct mii_data *mii;
mii = device_get_softc(sc->miibus);
mii_mediachg(mii);
}
+#endif
/*
* Set 'running' flag, and clear output active flag.
*/
@@ -1916,8 +1928,10 @@ ed_init(xsc)
*/
ed_start(ifp);
+#ifndef ED_NO_MIIBUS
untimeout(ed_tick, sc, sc->tick_ch);
sc->tick_ch = timeout(ed_tick, sc, hz);
+#endif
(void) splx(s);
}
@@ -2529,8 +2543,10 @@ ed_ioctl(ifp, command, data)
caddr_t data;
{
struct ed_softc *sc = ifp->if_softc;
+#ifndef ED_NO_MIIBUS
struct ifreq *ifr = (struct ifreq *)data;
struct mii_data *mii;
+#endif
int s, error = 0;
if (sc == NULL || sc->gone) {
@@ -2593,6 +2609,7 @@ ed_ioctl(ifp, command, data)
error = 0;
break;
+#ifndef ED_NO_MIIBUS
case SIOCGIFMEDIA:
case SIOCSIFMEDIA:
if (sc->miibus == NULL) {
@@ -2602,6 +2619,7 @@ ed_ioctl(ifp, command, data)
mii = device_get_softc(sc->miibus);
error = ifmedia_ioctl(ifp, ifr, &mii->mii_media, command);
break;
+#endif
default:
error = EINVAL;
@@ -3222,6 +3240,7 @@ ed_hpp_write_mbufs(struct ed_softc *sc, struct mbuf *m, int dst)
return (total_len);
}
+#ifndef ED_NO_MIIBUS
/*
* MII bus support routines.
*/
@@ -3325,6 +3344,7 @@ ed_child_detached(dev, child)
if (child == sc->miibus)
sc->miibus = NULL;
}
+#endif
static void
ed_setrcr(sc)
diff --git a/sys/dev/ed/if_ed_pccard.c b/sys/dev/ed/if_ed_pccard.c
index d118d7c3b638..2b342a360ca2 100644
--- a/sys/dev/ed/if_ed_pccard.c
+++ b/sys/dev/ed/if_ed_pccard.c
@@ -27,6 +27,8 @@
* $FreeBSD$
*/
+#include "opt_ed.h"
+
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/socket.h>
@@ -50,14 +52,18 @@
#include <dev/ed/if_edvar.h>
#include <dev/pccard/pccardvar.h>
#include <dev/pccard/pccarddevs.h>
+#ifndef ED_NO_MIIBUS
#include <dev/mii/mii.h>
#include <dev/mii/miivar.h>
+#endif
#include "card_if.h"
+#ifndef ED_NO_MIIBUS
/* "device miibus" required. See GENERIC if you get errors here. */
#include "miibus_if.h"
MODULE_DEPEND(ed, miibus, 1, 1, 1);
+#endif
/*
* PC-Card (PCMCIA) specific code.
@@ -72,10 +78,12 @@ static int ed_pccard_ax88190(device_t dev);
static void ax88190_geteprom(struct ed_softc *);
static int ed_pccard_memwrite(device_t dev, off_t offset, u_char byte);
+#ifndef ED_NO_MIIBUS
static void ed_pccard_dlink_mii_reset(struct ed_softc *sc);
static u_int ed_pccard_dlink_mii_readbits(struct ed_softc *sc, int nbits);
static void ed_pccard_dlink_mii_writebits(struct ed_softc *sc, u_int val,
int nbits);
+#endif
/*
* ed_pccard_detach - unload the driver and clear the table.
@@ -561,6 +569,7 @@ ed_pccard_attach(device_t dev)
}
error = ed_attach(sc, device_get_unit(dev), flags);
+#ifndef ED_NO_MIIBUS
if (error == 0 && sc->vendor == ED_VENDOR_LINKSYS) {
/* Probe for an MII bus, but ignore errors. */
ed_pccard_dlink_mii_reset(sc);
@@ -569,6 +578,7 @@ ed_pccard_attach(device_t dev)
mii_phy_probe(dev, &sc->miibus, ed_ifmedia_upd,
ed_ifmedia_sts);
}
+#endif
return (error);
}
@@ -712,6 +722,7 @@ ed_pccard_ax88190(device_t dev)
return (error);
}
+#ifndef ED_NO_MIIBUS
/* MII bit-twiddling routines for cards using Dlink chipset */
#define DLINK_MIISET(sc, x) ed_asic_outb(sc, ED_DLINK_MIIBUS, \
ed_asic_inb(sc, ED_DLINK_MIIBUS) | (x))
@@ -779,6 +790,7 @@ ed_pccard_dlink_mii_readbits(sc, nbits)
return val;
}
+#endif
static device_method_t ed_pccard_methods[] = {
/* Device interface */
@@ -786,12 +798,14 @@ static device_method_t ed_pccard_methods[] = {
DEVMETHOD(device_attach, pccard_compat_attach),
DEVMETHOD(device_detach, ed_pccard_detach),
+#ifndef ED_NO_MIIBUS
/* Bus interface */
DEVMETHOD(bus_child_detached, ed_child_detached),
/* MII interface */
DEVMETHOD(miibus_readreg, ed_miibus_readreg),
DEVMETHOD(miibus_writereg, ed_miibus_writereg),
+#endif
/* Card interface */
DEVMETHOD(card_compat_match, ed_pccard_match),
@@ -807,4 +821,6 @@ static driver_t ed_pccard_driver = {
};
DRIVER_MODULE(if_ed, pccard, ed_pccard_driver, ed_devclass, 0, 0);
+#ifndef ED_NO_MIIBUS
DRIVER_MODULE(miibus, ed, miibus_driver, miibus_devclass, 0, 0);
+#endif
diff --git a/sys/dev/ed/if_edvar.h b/sys/dev/ed/if_edvar.h
index 8c58b64b8aaa..06791981cf8e 100644
--- a/sys/dev/ed/if_edvar.h
+++ b/sys/dev/ed/if_edvar.h
@@ -209,11 +209,13 @@ void ed_pio_readmem __P((struct ed_softc *, int, unsigned char *,
unsigned short));
void ed_pio_writemem __P((struct ed_softc *, char *,
unsigned short, unsigned short));
+#ifndef ED_NO_MIIBUS
int ed_miibus_readreg __P((device_t, int, int));
void ed_miibus_writereg __P((device_t, int, int, int));
int ed_ifmedia_upd __P((struct ifnet *));
void ed_ifmedia_sts __P((struct ifnet *, struct ifmediareq *));
void ed_child_detached __P((device_t, device_t));
+#endif
driver_intr_t edintr;