From f14119a8e0cba92b1b7684be0e1b281c910c3a9b Mon Sep 17 00:00:00 2001 From: Pyun YongHyeon Date: Mon, 3 Jul 2006 08:01:27 +0000 Subject: [PATCH] Use mii_phy_match to reduce duplicated code. Reviewed by: glebius --- sys/dev/mii/brgphy.c | 92 ++++++++++---------------------------------- 1 file changed, 21 insertions(+), 71 deletions(-) diff --git a/sys/dev/mii/brgphy.c b/sys/dev/mii/brgphy.c index 26230e59269e..15140e4ada1b 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