diff options
author | yongari <yongari@FreeBSD.org> | 2006-07-03 08:01:27 +0000 |
---|---|---|
committer | yongari <yongari@FreeBSD.org> | 2006-07-03 08:01:27 +0000 |
commit | 2ca3518e2ad4989e6b79f2eaa0e1e895fa5dab6d (patch) | |
tree | 7d935298aa35a7d4a1f6f73c7953a212c1ee6bd6 /sys/dev/mii/brgphy.c | |
parent | 5fe63e39e85c05f49c9c4e4bb6d46b012481331a (diff) | |
download | FreeBSD-src-2ca3518e2ad4989e6b79f2eaa0e1e895fa5dab6d.zip FreeBSD-src-2ca3518e2ad4989e6b79f2eaa0e1e895fa5dab6d.tar.gz |
Use mii_phy_match to reduce duplicated code.
Reviewed by: glebius
Diffstat (limited to 'sys/dev/mii/brgphy.c')
-rw-r--r-- | sys/dev/mii/brgphy.c | 92 |
1 files changed, 21 insertions, 71 deletions
diff --git a/sys/dev/mii/brgphy.c b/sys/dev/mii/brgphy.c index 26230e5..15140e4 100644 --- a/sys/dev/mii/brgphy.c +++ b/sys/dev/mii/brgphy.c @@ -98,86 +98,36 @@ static void bcm5703_load_dspcode(struct mii_softc *); static void bcm5750_load_dspcode(struct mii_softc *); static int brgphy_mii_model; +static const struct mii_phydesc brgphys[] = { + MII_PHY_DESC(xxBROADCOM, BCM5400), + MII_PHY_DESC(xxBROADCOM, BCM5401), + MII_PHY_DESC(xxBROADCOM, BCM5411), + MII_PHY_DESC(xxBROADCOM, BCM5701), + MII_PHY_DESC(xxBROADCOM, BCM5703), + MII_PHY_DESC(xxBROADCOM, BCM5704), + MII_PHY_DESC(xxBROADCOM, BCM5705), + MII_PHY_DESC(xxBROADCOM, BCM5750), + MII_PHY_DESC(xxBROADCOM, BCM5714), + MII_PHY_DESC(xxBROADCOM, BCM5780), + MII_PHY_DESC(xxBROADCOM, BCM5706C), + MII_PHY_DESC(xxBROADCOM, BCM5708C), + MII_PHY_END +}; + static int brgphy_probe(device_t dev) { struct mii_attach_args *ma; + const struct mii_phydesc *mpd; ma = device_get_ivars(dev); - - if (MII_OUI(ma->mii_id1, ma->mii_id2) == MII_OUI_xxBROADCOM && - MII_MODEL(ma->mii_id2) == MII_MODEL_xxBROADCOM_BCM5400) { - device_set_desc(dev, MII_STR_xxBROADCOM_BCM5400); - return(BUS_PROBE_DEFAULT); - } - - if (MII_OUI(ma->mii_id1, ma->mii_id2) == MII_OUI_xxBROADCOM && - MII_MODEL(ma->mii_id2) == MII_MODEL_xxBROADCOM_BCM5401) { - device_set_desc(dev, MII_STR_xxBROADCOM_BCM5401); - return(BUS_PROBE_DEFAULT); - } - - if (MII_OUI(ma->mii_id1, ma->mii_id2) == MII_OUI_xxBROADCOM && - MII_MODEL(ma->mii_id2) == MII_MODEL_xxBROADCOM_BCM5411) { - device_set_desc(dev, MII_STR_xxBROADCOM_BCM5411); - return(BUS_PROBE_DEFAULT); - } - - if (MII_OUI(ma->mii_id1, ma->mii_id2) == MII_OUI_xxBROADCOM && - MII_MODEL(ma->mii_id2) == MII_MODEL_xxBROADCOM_BCM5701) { - device_set_desc(dev, MII_STR_xxBROADCOM_BCM5701); - return(BUS_PROBE_DEFAULT); - } - - if (MII_OUI(ma->mii_id1, ma->mii_id2) == MII_OUI_xxBROADCOM && - MII_MODEL(ma->mii_id2) == MII_MODEL_xxBROADCOM_BCM5703) { - device_set_desc(dev, MII_STR_xxBROADCOM_BCM5703); - return(BUS_PROBE_DEFAULT); - } - - if (MII_OUI(ma->mii_id1, ma->mii_id2) == MII_OUI_xxBROADCOM && - MII_MODEL(ma->mii_id2) == MII_MODEL_xxBROADCOM_BCM5704) { - device_set_desc(dev, MII_STR_xxBROADCOM_BCM5704); - return(BUS_PROBE_DEFAULT); - } - - if (MII_OUI(ma->mii_id1, ma->mii_id2) == MII_OUI_xxBROADCOM && - MII_MODEL(ma->mii_id2) == MII_MODEL_xxBROADCOM_BCM5705) { - device_set_desc(dev, MII_STR_xxBROADCOM_BCM5705); - return(BUS_PROBE_DEFAULT); - } - - if (MII_OUI(ma->mii_id1, ma->mii_id2) == MII_OUI_xxBROADCOM && - MII_MODEL(ma->mii_id2) == MII_MODEL_xxBROADCOM_BCM5750) { - device_set_desc(dev, MII_STR_xxBROADCOM_BCM5750); - return(BUS_PROBE_DEFAULT); - } - - if (MII_OUI(ma->mii_id1, ma->mii_id2) == MII_OUI_xxBROADCOM && - MII_MODEL(ma->mii_id2) == MII_MODEL_xxBROADCOM_BCM5714) { - device_set_desc(dev, MII_STR_xxBROADCOM_BCM5714); - return(BUS_PROBE_DEFAULT); - } - - if (MII_OUI(ma->mii_id1, ma->mii_id2) == MII_OUI_xxBROADCOM && - MII_MODEL(ma->mii_id2) == MII_MODEL_xxBROADCOM_BCM5780) { - device_set_desc(dev, MII_STR_xxBROADCOM_BCM5780); + mpd = mii_phy_match(ma, brgphys); + if (mpd != NULL) { + device_set_desc(dev, mpd->mpd_name); return (BUS_PROBE_DEFAULT); } - if (MII_OUI(ma->mii_id1, ma->mii_id2) == MII_OUI_xxBROADCOM && - MII_MODEL(ma->mii_id2) == MII_MODEL_xxBROADCOM_BCM5706C) { - device_set_desc(dev, MII_STR_xxBROADCOM_BCM5706C); - return(BUS_PROBE_DEFAULT); - } - - if (MII_OUI(ma->mii_id1, ma->mii_id2) == MII_OUI_xxBROADCOM && - MII_MODEL(ma->mii_id2) == MII_MODEL_xxBROADCOM_BCM5708C) { - device_set_desc(dev, MII_STR_xxBROADCOM_BCM5708C); - return(BUS_PROBE_DEFAULT); - } - - return(ENXIO); + return (ENXIO); } static int |