fb58dc87ca
loopback to work PCnet chips additionally need to be placed into external loopback mode which pcn(4) doesn't do so far. - In nsphy_service() just use if_dname instead of determining the name of the parent NIC via device_get_name(device_get_parent(sc->mii_dev)). - Don't set MIIF_NOISOLATE, except for when used in combination with a NIC that wedges when isolating the PHYs, so nsphy(4) can be used in configurations with multiple PHYs. - Use mii_phy_add_media() instead of mii_add_media() so the latter can be eventually retired. - Take advantage of mii_phy_setmedia() (requires the MIIF_FORCEANEG added in sys/dev/mii/mii_physubr.c 1.26, sys/dev/mii/miivar.h 1.19). - Implement a separate nsphy_reset(). There are two reasons for this: 1) This PHY can take an inordinate amount of time to reset if media is attached; under fairly normal circumstances up to nearly one second. This is because it appears to go through an implicit auto- negotiation cycle as part of the reset. 2) During reset and auto-negotiation, the BMCR will clear the reset bit before the process is complete. It will return 0 until the process is complete and it's safe to access the PHY again. This is the first of two changes required to make the combination of Am79c971 and DP83840A found on certain HP cards and on-board in IBM machines work. - Fix some whitespace nits. Based on: NetBSD (except for the first and second item) MFC after: 2 weeks |
||
---|---|---|
.. | ||
acphy.c | ||
acphyreg.h | ||
amphy.c | ||
amphyreg.h | ||
bmtphy.c | ||
bmtphyreg.h | ||
brgphy.c | ||
brgphyreg.h | ||
ciphy.c | ||
ciphyreg.h | ||
e1000phy.c | ||
e1000phyreg.h | ||
exphy.c | ||
gentbi.c | ||
inphy.c | ||
inphyreg.h | ||
ip1000phy.c | ||
ip1000phyreg.h | ||
lxtphy.c | ||
lxtphyreg.h | ||
mii_physubr.c | ||
mii.c | ||
mii.h | ||
miibus_if.m | ||
miidevs | ||
miivar.h | ||
mlphy.c | ||
nsgphy.c | ||
nsgphyreg.h | ||
nsphy.c | ||
nsphyreg.h | ||
pnaphy.c | ||
qsphy.c | ||
qsphyreg.h | ||
rgephy.c | ||
rgephyreg.h | ||
rlphy.c | ||
ruephy.c | ||
ruephyreg.h | ||
tdkphy.c | ||
tdkphyreg.h | ||
tlphy.c | ||
tlphyreg.h | ||
ukphy_subr.c | ||
ukphy.c | ||
xmphy.c | ||
xmphyreg.h |