diff options
author | joe <joe@FreeBSD.org> | 2002-04-06 20:50:21 +0000 |
---|---|---|
committer | joe <joe@FreeBSD.org> | 2002-04-06 20:50:21 +0000 |
commit | 6acac88074c7f94c902b7197828376b2d276fe87 (patch) | |
tree | 4dba9fb3973da21cba4988e493fc6b4394a045d9 /sys/dev/usb | |
parent | 30f86800413b1dc7e831ab51a288fb9c62d42ffd (diff) | |
download | FreeBSD-src-6acac88074c7f94c902b7197828376b2d276fe87.zip FreeBSD-src-6acac88074c7f94c902b7197828376b2d276fe87.tar.gz |
Another step in merging our if_aue driver with NetBSD's.
Diffstat (limited to 'sys/dev/usb')
-rw-r--r-- | sys/dev/usb/if_aue.c | 29 | ||||
-rw-r--r-- | sys/dev/usb/if_auereg.h | 7 | ||||
-rw-r--r-- | sys/dev/usb/usb_port.h | 3 |
3 files changed, 19 insertions, 20 deletions
diff --git a/sys/dev/usb/if_aue.c b/sys/dev/usb/if_aue.c index a520099..17d2ef6 100644 --- a/sys/dev/usb/if_aue.c +++ b/sys/dev/usb/if_aue.c @@ -405,12 +405,10 @@ aue_read_eeprom(struct aue_softc *sc, caddr_t dest, int off, int cnt, int swap) Static int aue_miibus_readreg(device_ptr_t dev, int phy, int reg) { - struct aue_softc *sc; + struct aue_softc *sc = USBGETSOFTC(dev); int i; u_int16_t val = 0; - sc = device_get_softc(dev); - /* * The Am79C901 HomePNA PHY actually contains * two transceivers: a 1Mbps HomePNA PHY and a @@ -451,14 +449,12 @@ aue_miibus_readreg(device_ptr_t dev, int phy, int reg) Static int aue_miibus_writereg(device_ptr_t dev, int phy, int reg, int data) { - struct aue_softc *sc; + struct aue_softc *sc = USBGETSOFTC(dev); int i; if (phy == 3) return (0); - sc = device_get_softc(dev); - aue_csr_write_2(sc, AUE_PHY_DATA, data); aue_csr_write_1(sc, AUE_PHY_ADDR, phy); aue_csr_write_1(sc, AUE_PHY_CTL, reg | AUE_PHYCTL_WRITE); @@ -479,11 +475,8 @@ aue_miibus_writereg(device_ptr_t dev, int phy, int reg, int data) Static void aue_miibus_statchg(device_ptr_t dev) { - struct aue_softc *sc; - struct mii_data *mii; - - sc = device_get_softc(dev); - mii = device_get_softc(sc->aue_miibus); + struct aue_softc *sc = USBGETSOFTC(dev); + struct mii_data *mii = GET_MII(sc); AUE_CLRBIT(sc, AUE_CTL0, AUE_CTL0_RX_ENB | AUE_CTL0_TX_ENB); if (IFM_SUBTYPE(mii->mii_media_active) == IFM_100_TX) { @@ -1097,7 +1090,7 @@ aue_tick(void *xsc) AUE_LOCK(sc); ifp = &sc->arpcom.ac_if; - mii = device_get_softc(sc->aue_miibus); + mii = GET_MII(sc); if (mii == NULL) { AUE_UNLOCK(sc); return; @@ -1215,7 +1208,7 @@ aue_init(void *xsc) { struct aue_softc *sc = xsc; struct ifnet *ifp = &sc->arpcom.ac_if; - struct mii_data *mii; + struct mii_data *mii = GET_MII(sc); struct aue_chain *c; usbd_status err; int i; @@ -1232,8 +1225,6 @@ aue_init(void *xsc) */ aue_reset(sc); - mii = device_get_softc(sc->aue_miibus); - /* Set MAC address */ for (i = 0; i < ETHER_ADDR_LEN; i++) aue_csr_write_1(sc, AUE_PAR0 + i, sc->arpcom.ac_enaddr[i]); @@ -1329,9 +1320,8 @@ Static int aue_ifmedia_upd(struct ifnet *ifp) { struct aue_softc *sc = ifp->if_softc; - struct mii_data *mii; + struct mii_data *mii = GET_MII(sc); - mii = device_get_softc(sc->aue_miibus); sc->aue_link = 0; if (mii->mii_instance) { struct mii_softc *miisc; @@ -1350,9 +1340,8 @@ Static void aue_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr) { struct aue_softc *sc = ifp->if_softc; - struct mii_data *mii; + struct mii_data *mii = GET_MII(sc); - mii = device_get_softc(sc->aue_miibus); mii_pollstat(mii); ifmr->ifm_active = mii->mii_media_active; ifmr->ifm_status = mii->mii_media_status; @@ -1402,7 +1391,7 @@ aue_ioctl(struct ifnet *ifp, u_long command, caddr_t data) break; case SIOCGIFMEDIA: case SIOCSIFMEDIA: - mii = device_get_softc(sc->aue_miibus); + mii = GET_MII(sc); error = ifmedia_ioctl(ifp, ifr, &mii->mii_media, command); break; default: diff --git a/sys/dev/usb/if_auereg.h b/sys/dev/usb/if_auereg.h index 2988314..57fce4a 100644 --- a/sys/dev/usb/if_auereg.h +++ b/sys/dev/usb/if_auereg.h @@ -240,6 +240,13 @@ struct aue_cdata { #define AUE_INC(x, y) (x) = (x + 1) % y struct aue_softc { +#if defined(__FreeBSD__) +#define GET_MII(sc) (device_get_softc((sc)->aue_miibus)) +#elif defined(__NetBSD__) +#define GET_MII(sc) (&(sc)->aue_mii) +#elif defined(__OpenBSD__) +#define GET_MII(sc) (&(sc)->aue_mii) +#endif struct arpcom arpcom; device_t aue_miibus; usbd_device_handle aue_udev; diff --git a/sys/dev/usb/usb_port.h b/sys/dev/usb/usb_port.h index 8c0ddae..0737d94 100644 --- a/sys/dev/usb/usb_port.h +++ b/sys/dev/usb/usb_port.h @@ -75,6 +75,7 @@ typedef struct device *device_ptr_t; #define USBDEVUNIT(bdev) ((bdev).dv_unit) #define USBDEVPTRNAME(bdevptr) ((bdevptr)->dv_xname) #define USBDEVUNIT(bdev) ((bdev).dv_unit) +#define USBGETSOFTC(d) ((void *)(d)) #define DECLARE_USB_DMA_T \ struct usb_dma_block; \ @@ -206,6 +207,7 @@ typedef struct device *device_ptr_t; #define USBDEVUNIT(bdev) ((bdev).dv_unit) #define USBDEVPTRNAME(bdevptr) ((bdevptr)->dv_xname) #define USBDEVUNIT(bdev) ((bdev).dv_unit) +#define USBGETSOFTC(d) ((void *)(d)) #define DECLARE_USB_DMA_T \ struct usb_dma_block; \ @@ -317,6 +319,7 @@ MALLOC_DECLARE(M_USBHC); #define USBDEVUNIT(bdev) device_get_unit(bdev) #define USBDEVPTRNAME(bdev) device_get_nameunit(bdev) #define USBDEVUNIT(bdev) device_get_unit(bdev) +#define USBGETSOFTC(bdev) (device_get_softc(bdev)) #define DECLARE_USB_DMA_T typedef char * usb_dma_t |