On Thu, Aug 28, 2008 at 10:18:28PM -0500, Jacob Owens wrote:
> To resolve the issue, Pyun first had my patch amphy.c , then the dc driver.
> The DC patch fixed my issue. Here is what i had to do:
> 
> 1. save attached patch to /tmp
> 2. #cd /usr/src
> 3. #patch -p0 < /tmp/dc.patch
> 4. rebuild/install kernel and reboot. i used instructions from here:
> http://www.freebsdmadeeasy.com/tutorials/freebsd/recompiling-the-kernel-in-freebsd.php
> 
> THANK YOU to Pyun YongHyeon and the freebsd-net group for helping me with
> this issue!!!
> 
> Save the text below and save as dc.patch. (The first line is 'index:
> sys/dev/dc......' ,Last line is ' * When the init.....'
> 
> Index: sys/dev/dc/if_dc.c
> ===================================================================
> --- sys/dev/dc/if_dc.c        (revision 181654)
> +++ sys/dev/dc/if_dc.c        (working copy)
> @@ -2868,6 +2868,12 @@
>       ifp = sc->dc_ifp;
>       mii = device_get_softc(sc->dc_miibus);
> 
> +     /*
> +      * XXX Can cause autonegotiation failure on certain models
> +      *     as DC21143 overdrive mii_ticks.
> +      */
> +     mii_tick(mii);
> +
>       if (sc->dc_flags & DC_REDUCED_MII_POLL) {
>               if (sc->dc_flags & DC_21143_NWAY) {
>                       r = CSR_READ_4(sc, DC_10BTSTAT);
> @@ -2881,19 +2887,15 @@
>                               sc->dc_link = 0;
>                               mii_mediachg(mii);
>                       }
> -                     if (sc->dc_link == 0)
> -                             mii_tick(mii);
>               } else {
>                       r = CSR_READ_4(sc, DC_ISR);
>                       if ((r & DC_ISR_RX_STATE) == DC_RXSTATE_WAIT &&
>                           sc->dc_cdata.dc_tx_cnt == 0) {
> -                             mii_tick(mii);
>                               if (!(mii->mii_media_status & IFM_ACTIVE))
>                                       sc->dc_link = 0;
>                       }
>               }
> -     } else
> -             mii_tick(mii);
> +     }
> 
>       /*
>        * When the init routine completes, we expect to be able to send

For the records, a more appropriate fix (the above patch just
lets dc(4) bypasse the DC_REDUCED_MII_POLL handling completely)
was commited as r182461.

Marius

_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to