FreeBSD Bugzilla – Attachment 61845 Details for
Bug 92599
BUG: IEEE 802.3 compliance of autonegotiation process
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
file.diff
file.diff (text/plain), 9.18 KB, created by
Rene de Vries
on 2006-01-31 11:50:01 UTC
(
hide
)
Description:
file.diff
Filename:
MIME Type:
Creator:
Rene de Vries
Created:
2006-01-31 11:50:01 UTC
Size:
9.18 KB
patch
obsolete
>Index: dev/mii/amphy.c >=================================================================== >RCS file: /usr/local/cvs/cvsroot/fw/os/freebsd/sys/dev/mii/amphy.c,v >retrieving revision 1.1.1.6 >diff -c -r1.1.1.6 amphy.c >*** dev/mii/amphy.c 9 Dec 2005 08:06:35 -0000 1.1.1.6 >--- dev/mii/amphy.c 25 Jan 2006 09:14:04 -0000 >*************** >*** 264,273 **** > if (PHY_READ(sc, MII_ANER) & ANER_LPAN) { > anlpar = PHY_READ(sc, MII_ANAR) & > PHY_READ(sc, MII_ANLPAR); >! if (anlpar & ANLPAR_T4) >! mii->mii_media_active |= IFM_100_T4; >! else if (anlpar & ANLPAR_TX_FD) > mii->mii_media_active |= IFM_100_TX|IFM_FDX; > else if (anlpar & ANLPAR_TX) > mii->mii_media_active |= IFM_100_TX; > else if (anlpar & ANLPAR_10_FD) >--- 264,277 ---- > if (PHY_READ(sc, MII_ANER) & ANER_LPAN) { > anlpar = PHY_READ(sc, MII_ANAR) & > PHY_READ(sc, MII_ANLPAR); >! /* >! * the order of these tests is dictated by >! * IEEE 802.3-2002 annex 28B, chapter 28B.3 >! */ >! if (anlpar & ANLPAR_TX_FD) > mii->mii_media_active |= IFM_100_TX|IFM_FDX; >+ else if (anlpar & ANLPAR_T4) >+ mii->mii_media_active |= IFM_100_T4; > else if (anlpar & ANLPAR_TX) > mii->mii_media_active |= IFM_100_TX; > else if (anlpar & ANLPAR_10_FD) >Index: dev/mii/dcphy.c >=================================================================== >RCS file: /usr/local/cvs/cvsroot/fw/os/freebsd/sys/dev/mii/dcphy.c,v >retrieving revision 1.1.1.5 >diff -c -r1.1.1.5 dcphy.c >*** dev/mii/dcphy.c 9 Dec 2005 08:06:35 -0000 1.1.1.5 >--- dev/mii/dcphy.c 25 Jan 2006 09:14:04 -0000 >*************** >*** 369,380 **** > > if (tstat & DC_TSTAT_LP_CAN_NWAY) { > anlpar = tstat >> 16; >! if (anlpar & ANLPAR_T4 && >! sc->mii_capabilities & BMSR_100TXHDX) >! mii->mii_media_active |= IFM_100_T4; >! else if (anlpar & ANLPAR_TX_FD && > sc->mii_capabilities & BMSR_100TXFDX) > mii->mii_media_active |= IFM_100_TX|IFM_FDX; > else if (anlpar & ANLPAR_TX && > sc->mii_capabilities & BMSR_100TXHDX) > mii->mii_media_active |= IFM_100_TX; >--- 369,384 ---- > > if (tstat & DC_TSTAT_LP_CAN_NWAY) { > anlpar = tstat >> 16; >! /* >! * the order of these tests is dictated by >! * IEEE 802.3-2002 annex 28B, chapter 28B.3 >! */ >! if (anlpar & ANLPAR_TX_FD && > sc->mii_capabilities & BMSR_100TXFDX) > mii->mii_media_active |= IFM_100_TX|IFM_FDX; >+ else if (anlpar & ANLPAR_T4 && >+ sc->mii_capabilities & BMSR_100T4) >+ mii->mii_media_active |= IFM_100_T4; > else if (anlpar & ANLPAR_TX && > sc->mii_capabilities & BMSR_100TXHDX) > mii->mii_media_active |= IFM_100_TX; >Index: dev/mii/nsphy.c >=================================================================== >RCS file: /usr/local/cvs/cvsroot/fw/os/freebsd/sys/dev/mii/nsphy.c,v >retrieving revision 1.1.1.5 >diff -c -r1.1.1.5 nsphy.c >*** dev/mii/nsphy.c 9 Dec 2005 08:06:35 -0000 1.1.1.5 >--- dev/mii/nsphy.c 25 Jan 2006 09:14:04 -0000 >*************** >*** 354,363 **** > if (PHY_READ(sc, MII_ANER) & ANER_LPAN) { > anlpar = PHY_READ(sc, MII_ANAR) & > PHY_READ(sc, MII_ANLPAR); >! if (anlpar & ANLPAR_T4) >! mii->mii_media_active |= IFM_100_T4; >! else if (anlpar & ANLPAR_TX_FD) > mii->mii_media_active |= IFM_100_TX|IFM_FDX; > else if (anlpar & ANLPAR_TX) > mii->mii_media_active |= IFM_100_TX; > else if (anlpar & ANLPAR_10_FD) >--- 354,367 ---- > if (PHY_READ(sc, MII_ANER) & ANER_LPAN) { > anlpar = PHY_READ(sc, MII_ANAR) & > PHY_READ(sc, MII_ANLPAR); >! /* >! * the order of these tests is dictated by >! * IEEE 802.3-2002 annex 28B, chapter 28B.3 >! */ >! if (anlpar & ANLPAR_TX_FD) > mii->mii_media_active |= IFM_100_TX|IFM_FDX; >+ else if (anlpar & ANLPAR_T4) >+ mii->mii_media_active |= IFM_100_T4; > else if (anlpar & ANLPAR_TX) > mii->mii_media_active |= IFM_100_TX; > else if (anlpar & ANLPAR_10_FD) >Index: dev/mii/rlphy.c >=================================================================== >RCS file: /usr/local/cvs/cvsroot/fw/os/freebsd/sys/dev/mii/rlphy.c,v >retrieving revision 1.1.1.6 >diff -c -r1.1.1.6 rlphy.c >*** dev/mii/rlphy.c 9 Dec 2005 08:06:35 -0000 1.1.1.6 >--- dev/mii/rlphy.c 25 Jan 2006 09:14:04 -0000 >*************** >*** 289,298 **** > > if ((anlpar = PHY_READ(phy, MII_ANAR) & > PHY_READ(phy, MII_ANLPAR))) { >! if (anlpar & ANLPAR_T4) >! mii->mii_media_active |= IFM_100_T4; >! else if (anlpar & ANLPAR_TX_FD) > mii->mii_media_active |= IFM_100_TX|IFM_FDX; > else if (anlpar & ANLPAR_TX) > mii->mii_media_active |= IFM_100_TX; > else if (anlpar & ANLPAR_10_FD) >--- 289,302 ---- > > if ((anlpar = PHY_READ(phy, MII_ANAR) & > PHY_READ(phy, MII_ANLPAR))) { >! /* >! * the order of these tests is dictated by >! * IEEE 802.3-2002 annex 28B, chapter 28B.3 >! */ >! if (anlpar & ANLPAR_TX_FD) > mii->mii_media_active |= IFM_100_TX|IFM_FDX; >+ else if (anlpar & ANLPAR_T4) >+ mii->mii_media_active |= IFM_100_T4; > else if (anlpar & ANLPAR_TX) > mii->mii_media_active |= IFM_100_TX; > else if (anlpar & ANLPAR_10_FD) >Index: dev/mii/tdkphy.c >=================================================================== >RCS file: /usr/local/cvs/cvsroot/fw/os/freebsd/sys/dev/mii/tdkphy.c,v >retrieving revision 1.1.1.2 >diff -c -r1.1.1.2 tdkphy.c >*** dev/mii/tdkphy.c 9 Dec 2005 08:06:35 -0000 1.1.1.2 >--- dev/mii/tdkphy.c 25 Jan 2006 09:14:04 -0000 >*************** >*** 277,286 **** > * ANLPAR doesn't get set on my card, but we check it anyway, > * since it is mentioned in the 78Q2120 specs. > */ >! if (anlpar & ANLPAR_T4) >! mii->mii_media_active |= IFM_100_T4; >! else if (anlpar & ANLPAR_TX_FD) > mii->mii_media_active |= IFM_100_TX|IFM_FDX; > else if (anlpar & ANLPAR_TX) > mii->mii_media_active |= IFM_100_TX; > else if (anlpar & ANLPAR_10_FD) >--- 277,290 ---- > * ANLPAR doesn't get set on my card, but we check it anyway, > * since it is mentioned in the 78Q2120 specs. > */ >! /* >! * the order of these tests is dictated by >! * IEEE 802.3-2002 annex 28B, chapter 28B.3 >! */ >! if (anlpar & ANLPAR_TX_FD) > mii->mii_media_active |= IFM_100_TX|IFM_FDX; >+ else if (anlpar & ANLPAR_T4) >+ mii->mii_media_active |= IFM_100_T4; > else if (anlpar & ANLPAR_TX) > mii->mii_media_active |= IFM_100_TX; > else if (anlpar & ANLPAR_10_FD) >Index: dev/mii/ukphy_subr.c >=================================================================== >RCS file: /usr/local/cvs/cvsroot/fw/os/freebsd/sys/dev/mii/ukphy_subr.c,v >retrieving revision 1.1.1.5 >diff -c -r1.1.1.5 ukphy_subr.c >*** dev/mii/ukphy_subr.c 20 Jul 2005 11:57:40 -0000 1.1.1.5 >--- dev/mii/ukphy_subr.c 25 Jan 2006 09:14:04 -0000 >*************** >*** 99,108 **** > } > > anlpar = PHY_READ(phy, MII_ANAR) & PHY_READ(phy, MII_ANLPAR); >! if (anlpar & ANLPAR_T4) >! mii->mii_media_active |= IFM_100_T4; >! else if (anlpar & ANLPAR_TX_FD) > mii->mii_media_active |= IFM_100_TX|IFM_FDX; > else if (anlpar & ANLPAR_TX) > mii->mii_media_active |= IFM_100_TX; > else if (anlpar & ANLPAR_10_FD) >--- 99,112 ---- > } > > anlpar = PHY_READ(phy, MII_ANAR) & PHY_READ(phy, MII_ANLPAR); >! /* >! * the order of these tests is dictated by >! * IEEE 802.3-2002 annex 28B, chapter 28B.3 >! */ >! if (anlpar & ANLPAR_TX_FD) > mii->mii_media_active |= IFM_100_TX|IFM_FDX; >+ else if (anlpar & ANLPAR_T4) >+ mii->mii_media_active |= IFM_100_T4; > else if (anlpar & ANLPAR_TX) > mii->mii_media_active |= IFM_100_TX; > else if (anlpar & ANLPAR_10_FD) >Index: dev/txp/if_txp.c >=================================================================== >RCS file: /usr/local/cvs/cvsroot/fw/os/freebsd/sys/dev/txp/if_txp.c,v >retrieving revision 1.1.1.6 >diff -c -r1.1.1.6 if_txp.c >*** dev/txp/if_txp.c 9 Dec 2005 08:06:36 -0000 1.1.1.6 >--- dev/txp/if_txp.c 25 Jan 2006 09:14:05 -0000 >*************** >*** 1644,1650 **** > { > struct txp_softc *sc = ifp->if_softc; > struct ifmedia *ifm = &sc->sc_ifmedia; >! u_int16_t bmsr, bmcr, anlpar; > > ifmr->ifm_status = IFM_AVALID; > ifmr->ifm_active = IFM_ETHER; >--- 1644,1650 ---- > { > struct txp_softc *sc = ifp->if_softc; > struct ifmedia *ifm = &sc->sc_ifmedia; >! u_int16_t bmsr, bmcr, anar, anlpar; > > ifmr->ifm_status = IFM_AVALID; > ifmr->ifm_active = IFM_ETHER; >*************** >*** 1664,1669 **** >--- 1664,1674 ---- > &anlpar, NULL, NULL, 1)) > goto bail; > >+ if (txp_command(sc, TXP_CMD_PHY_MGMT_READ, 0, MII_ANAR, 0, >+ &anar, NULL, NULL, 1)) >+ goto bail; >+ anlpar &= anar; >+ > if (bmsr & BMSR_LINK) > ifmr->ifm_status |= IFM_ACTIVE; > >*************** >*** 1681,1691 **** > ifmr->ifm_active |= IFM_NONE; > return; > } >! >! if (anlpar & ANLPAR_T4) >! ifmr->ifm_active |= IFM_100_T4; >! else if (anlpar & ANLPAR_TX_FD) > ifmr->ifm_active |= IFM_100_TX|IFM_FDX; > else if (anlpar & ANLPAR_TX) > ifmr->ifm_active |= IFM_100_TX; > else if (anlpar & ANLPAR_10_FD) >--- 1686,1699 ---- > ifmr->ifm_active |= IFM_NONE; > return; > } >! /* >! * the order of these tests is dictated by >! * IEEE 802.3-2002 annex 28B, chapter 28B.3 >! */ >! if (anlpar & ANLPAR_TX_FD) > ifmr->ifm_active |= IFM_100_TX|IFM_FDX; >+ else if (anlpar & ANLPAR_T4) >+ ifmr->ifm_active |= IFM_100_T4; > else if (anlpar & ANLPAR_TX) > ifmr->ifm_active |= IFM_100_TX; > else if (anlpar & ANLPAR_10_FD)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 92599
: 61845