summaryrefslogtreecommitdiffstats
path: root/sys/dev/ed/if_ed_pccard.c
diff options
context:
space:
mode:
authoriedowse <iedowse@FreeBSD.org>2001-07-22 18:58:44 +0000
committeriedowse <iedowse@FreeBSD.org>2001-07-22 18:58:44 +0000
commit6e2ef43eedee8839bc7db512e0692c80a73cb935 (patch)
treef4a41db88d1b666d72d1654df1c10001a074800c /sys/dev/ed/if_ed_pccard.c
parent5064dfdc7ca942c44349640d82b2d486a6fae544 (diff)
downloadFreeBSD-src-6e2ef43eedee8839bc7db512e0692c80a73cb935.zip
FreeBSD-src-6e2ef43eedee8839bc7db512e0692c80a73cb935.tar.gz
Attach the miibus for Linksys/Dlink cards from the attach routine,
not from the probe routine. This was an oversight when I originally ported the miibus support to -current, though it was mostly harmless. We now set the vendor code to the new value ED_VENDOR_LINKSYS in ed_pccard_Linksys() at probe time. Then ed_pccard_attach() checks the vendor code, and sets up the miibus if appropriate. Reviewed by: imp
Diffstat (limited to 'sys/dev/ed/if_ed_pccard.c')
-rw-r--r--sys/dev/ed/if_ed_pccard.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/sys/dev/ed/if_ed_pccard.c b/sys/dev/ed/if_ed_pccard.c
index 23ef71d..38af728 100644
--- a/sys/dev/ed/if_ed_pccard.c
+++ b/sys/dev/ed/if_ed_pccard.c
@@ -565,6 +565,15 @@ ed_pccard_attach(device_t dev)
}
error = ed_attach(sc, device_get_unit(dev), flags);
+ if (error == 0 && sc->vendor == ED_VENDOR_LINKSYS) {
+ /* Probe for an MII bus, but ignore errors. */
+ ed_pccard_dlink_mii_reset(sc);
+ sc->mii_readbits = ed_pccard_dlink_mii_readbits;
+ sc->mii_writebits = ed_pccard_dlink_mii_writebits;
+ mii_phy_probe(dev, &sc->miibus, ed_ifmedia_upd,
+ ed_ifmedia_sts);
+ }
+
return (error);
}
@@ -668,15 +677,10 @@ ed_pccard_Linksys(device_t dev)
ed_nic_outb(sc, ED_P0_DCR, ED_DCR_WTS | ED_DCR_FT1 | ED_DCR_LS);
sc->isa16bit = 1;
+ sc->vendor = ED_VENDOR_LINKSYS;
sc->type = ED_TYPE_NE2000;
sc->type_str = "Linksys";
- /* Probe for an MII bus, but continue as normal if there isn't one. */
- ed_pccard_dlink_mii_reset(sc);
- sc->mii_readbits = ed_pccard_dlink_mii_readbits;
- sc->mii_writebits = ed_pccard_dlink_mii_writebits;
- mii_phy_probe(dev, &sc->miibus, ed_ifmedia_upd, ed_ifmedia_sts);
-
return (1);
}
OpenPOWER on IntegriCloud