diff options
author | imp <imp@FreeBSD.org> | 2005-09-18 20:51:34 +0000 |
---|---|---|
committer | imp <imp@FreeBSD.org> | 2005-09-18 20:51:34 +0000 |
commit | 0fa86d9cb5a02270dc33ae4359c756ad82b6d43e (patch) | |
tree | 1473f976a8ea5fd0c3df4189e61390ca888762c4 /sys/dev/ed/if_edvar.h | |
parent | cbeddbcc36a506db16de76f805b78fab65f5311a (diff) | |
download | FreeBSD-src-0fa86d9cb5a02270dc33ae4359c756ad82b6d43e.zip FreeBSD-src-0fa86d9cb5a02270dc33ae4359c756ad82b6d43e.tar.gz |
MFp4:
o eliminate the ED_NO_MIIBUS option. Now, you need miibus to use ed with
pccard. If you have an old ISA or PCI card w/o a miibus, then you'll still
be able to use the ed driver w/o miibus in the kernel. If you have pccard
you'll need mii now. Most pccards these days have miibus, and many
cards have ISSUES if you don't attach miibus. issues I don't want to
constantly rediagnose.
- Add new media_ioctl, mediachg and tick function pointers. The core
driver will call these if they aren't NULL, or return an error if they
are.
- migrate remaining mii code into if_ed_pccard.
o include some notes from my datasheet fishing. this may allow us to
get media status from some pccards.
o Fix one bug that's common to many drivers. call if_free(ifp) after
we tear down the interrupt. ed_intr() depends on ifp being there and
freeing it while interrupts can still happen is, ummm, bad.
Diffstat (limited to 'sys/dev/ed/if_edvar.h')
-rw-r--r-- | sys/dev/ed/if_edvar.h | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/sys/dev/ed/if_edvar.h b/sys/dev/ed/if_edvar.h index f03b385..4e8afe8 100644 --- a/sys/dev/ed/if_edvar.h +++ b/sys/dev/ed/if_edvar.h @@ -61,10 +61,14 @@ struct ed_softc { struct resource* irq_res; /* resource for irq */ void* irq_handle; /* handle for irq handler */ int modem_rid; /* resource ID for modem part of device */ + int (*sc_media_ioctl)(struct ed_softc *sc, struct ifreq *ifr, + u_long command); + void (*sc_mediachg)(struct ed_softc *); device_t miibus; /* MII bus for cards with MII. */ void (*mii_writebits)(struct ed_softc *, u_int, int); u_int (*mii_readbits)(struct ed_softc *, int); struct callout tick_ch; + void (*sc_tick)(void *); void (*readmem)(struct ed_softc *sc, bus_size_t src, uint8_t *dst, uint16_t amount); @@ -212,11 +216,6 @@ void ed_shmem_readmem16(struct ed_softc *, bus_size_t, uint8_t *, uint16_t); void ed_shmem_readmem8(struct ed_softc *, bus_size_t, uint8_t *, uint16_t); void ed_pio_readmem(struct ed_softc *, bus_size_t, uint8_t *, uint16_t); void ed_pio_writemem(struct ed_softc *, uint8_t *, uint16_t, uint16_t); -#ifndef ED_NO_MIIBUS -int ed_ifmedia_upd(struct ifnet *); -void ed_ifmedia_sts(struct ifnet *, struct ifmediareq *); -void ed_child_detached(device_t, device_t); -#endif /* The following is unsatisfying XXX */ #ifdef ED_HPP |