diff options
author | Pyun YongHyeon <yongari@FreeBSD.org> | 2011-11-18 19:38:19 +0000 |
---|---|---|
committer | Pyun YongHyeon <yongari@FreeBSD.org> | 2011-11-18 19:38:19 +0000 |
commit | 89b2411bc3b8d8efe9e4337974dcd029d639cf38 (patch) | |
tree | 43a5e2c28fc8ce54392101b0054d9da85fb7deaa | |
parent | 7bbcd22d38c689b92e7fe9d2487e4e18258147a1 (diff) | |
download | src-89b2411bc3b8d8efe9e4337974dcd029d639cf38.tar.gz src-89b2411bc3b8d8efe9e4337974dcd029d639cf38.zip |
Partially revert r218788. r218788 removed calling dc_setcfg() for
!DC_IS_ADMTEK in dc_miibus_statchg(). This change broke link
establishment of Intel 21143 with dcphy(4) where it stuck in
"ability detect" state without completing auto-negotiation.
Also nuke dc_if_media as it's not actually used.
Submitted by: marius
Notes
Notes:
svn path=/head/; revision=227675
-rw-r--r-- | sys/dev/dc/if_dc.c | 16 | ||||
-rw-r--r-- | sys/dev/dc/if_dcreg.h | 1 |
2 files changed, 3 insertions, 14 deletions
diff --git a/sys/dev/dc/if_dc.c b/sys/dev/dc/if_dc.c index 57acb3974cad..803d115f4aaf 100644 --- a/sys/dev/dc/if_dc.c +++ b/sys/dev/dc/if_dc.c @@ -860,12 +860,11 @@ dc_miibus_statchg(device_t dev) return; ifm = &mii->mii_media; - if (DC_IS_DAVICOM(sc) && - IFM_SUBTYPE(ifm->ifm_media) == IFM_HPNA_1) { + if (DC_IS_DAVICOM(sc) && IFM_SUBTYPE(ifm->ifm_media) == IFM_HPNA_1) { dc_setcfg(sc, ifm->ifm_media); - sc->dc_if_media = ifm->ifm_media; return; - } + } else if (!DC_IS_ADMTEK(sc)) + dc_setcfg(sc, mii->mii_media_active); sc->dc_link = 0; if ((mii->mii_media_status & (IFM_ACTIVE | IFM_AVALID)) == @@ -875,17 +874,8 @@ dc_miibus_statchg(device_t dev) case IFM_100_TX: sc->dc_link = 1; break; - default: - break; } } - if (sc->dc_link == 0) - return; - - sc->dc_if_media = mii->mii_media_active; - if (DC_IS_ADMTEK(sc)) - return; - dc_setcfg(sc, mii->mii_media_active); } /* diff --git a/sys/dev/dc/if_dcreg.h b/sys/dev/dc/if_dcreg.h index cbbe39f6c3bf..e290881fa017 100644 --- a/sys/dev/dc/if_dcreg.h +++ b/sys/dev/dc/if_dcreg.h @@ -760,7 +760,6 @@ struct dc_softc { int dc_pnic_rx_bug_save; unsigned char *dc_pnic_rx_buf; int dc_if_flags; - int dc_if_media; uint32_t dc_flags; uint32_t dc_txthresh; uint32_t dc_eaddr[2]; |