diff options
author | wpaul <wpaul@FreeBSD.org> | 1999-09-19 21:56:08 +0000 |
---|---|---|
committer | wpaul <wpaul@FreeBSD.org> | 1999-09-19 21:56:08 +0000 |
commit | 6b45152ee9c956cc4d4653caa6ee355eb079f588 (patch) | |
tree | f8d8ddb9dad131b55ab3075e9291f4011d3e997c | |
parent | ec09929389ced92c6c15bcd643bc57d9ad216514 (diff) | |
download | FreeBSD-src-6b45152ee9c956cc4d4653caa6ee355eb079f588.zip FreeBSD-src-6b45152ee9c956cc4d4653caa6ee355eb079f588.tar.gz |
Allow the AMD PHY driver to support the DM9101 PHY. The DM9101 and the
AMD AM79c873 have identical registers. I'm not sure why; one is probably
a clone of the other.
-rw-r--r-- | sys/dev/mii/amphy.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/sys/dev/mii/amphy.c b/sys/dev/mii/amphy.c index 8521f32..91eb707 100644 --- a/sys/dev/mii/amphy.c +++ b/sys/dev/mii/amphy.c @@ -34,6 +34,8 @@ /* * driver for AMD AM79c873 PHYs + * This driver also works for the Davicom DM9101 PHY, which appears to + * be an AM79c873 workalike. */ #include <sys/param.h> @@ -92,11 +94,16 @@ static int amphy_probe(dev) 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) + 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); - device_set_desc(dev, MII_STR_xxAMD_79C873); + 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(0); } |