diff options
author | marius <marius@FreeBSD.org> | 2006-12-02 15:32:34 +0000 |
---|---|---|
committer | marius <marius@FreeBSD.org> | 2006-12-02 15:32:34 +0000 |
commit | 923629baa0e29adb56de97ed5d8fd54e71cd3b49 (patch) | |
tree | 25749fe19f52ff6e7be4f3431382ac173c7c08fc /sys/dev/mii/amphy.c | |
parent | 2db40ccfce7ea070a08fa10f3969ee21f4d49779 (diff) | |
download | FreeBSD-src-923629baa0e29adb56de97ed5d8fd54e71cd3b49.zip FreeBSD-src-923629baa0e29adb56de97ed5d8fd54e71cd3b49.tar.gz |
Add a helper function mii_phy_dev_probe(), which wraps around the
mii_phy_match() API and takes care of the PHY device probe based on
the struct mii_phydesc array and the match return value provided.
Convert PHY drivers to take advantage of mii_phy_dev_probe(),
converting drivers to provide a mii_phydesc table in the first
place where necessary.
Reviewed by: yongari
MFC after: 2 weeks
Diffstat (limited to 'sys/dev/mii/amphy.c')
-rw-r--r-- | sys/dev/mii/amphy.c | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/sys/dev/mii/amphy.c b/sys/dev/mii/amphy.c index f50b0b7..cb32f13 100644 --- a/sys/dev/mii/amphy.c +++ b/sys/dev/mii/amphy.c @@ -82,25 +82,17 @@ DRIVER_MODULE(amphy, miibus, amphy_driver, amphy_devclass, 0, 0); static int amphy_service(struct mii_softc *, struct mii_data *, int); static void amphy_status(struct mii_softc *); +static const struct mii_phydesc amphys[] = { + MII_PHY_DESC(xxAMD, 79C873), + MII_PHY_DESC(xxDAVICOM, DM9101), + MII_PHY_END +}; + static int amphy_probe(device_t dev) { - struct mii_attach_args *ma; - - ma = device_get_ivars(dev); - - if ((MII_OUI(ma->mii_id1, ma->mii_id2) != MII_OUI_xxAMD || - MII_MODEL(ma->mii_id2) != MII_MODEL_xxAMD_79C873) && - (MII_OUI(ma->mii_id1, ma->mii_id2) != MII_OUI_xxDAVICOM || - MII_MODEL(ma->mii_id2) != MII_MODEL_xxDAVICOM_DM9101)) - return(ENXIO); - - if (MII_OUI(ma->mii_id1, ma->mii_id2) == MII_OUI_xxAMD) - device_set_desc(dev, MII_STR_xxAMD_79C873); - else if (MII_OUI(ma->mii_id1, ma->mii_id2) == MII_OUI_xxDAVICOM) - device_set_desc(dev, MII_STR_xxDAVICOM_DM9101); - return(BUS_PROBE_DEFAULT); + return (mii_phy_dev_probe(dev, amphys, BUS_PROBE_DEFAULT)); } static int |