Re: [PATCH] de2104x: fix TP link detection

From: Jeff Garzik
Date: Sat Sep 25 2010 - 16:58:16 EST


On Sat, Sep 25, 2010 at 4:39 PM, Ondrej Zary <linux@xxxxxxxxxxxxxxxxxxxx> wrote:
> @@ -1160,14 +1164,29 @@ no_link_yet:
> Âstatic void de_media_interrupt (struct de_private *de, u32 status)
> Â{
> Â Â Â Âif (status & LinkPass) {
> + Â Â Â Â Â Â Â /* Ignore if current media is AUI or BNC and we can't use TP */
> + Â Â Â Â Â Â Â if ((de->media_type == DE_MEDIA_AUI ||
> + Â Â Â Â Â Â Â Â Â Âde->media_type == DE_MEDIA_BNC) &&
> + Â Â Â Â Â Â Â Â Â (de->media_lock ||
> + Â Â Â Â Â Â Â Â Â Â!de_ok_to_advertise(de, DE_MEDIA_TP_AUTO)))
> + Â Â Â Â Â Â Â Â Â Â Â return;
> + Â Â Â Â Â Â Â /* If current media is not TP, change it to TP */
> + Â Â Â Â Â Â Â if ((de->media_type == DE_MEDIA_AUI ||
> + Â Â Â Â Â Â Â Â Â Âde->media_type == DE_MEDIA_BNC)) {
> + Â Â Â Â Â Â Â Â Â Â Â de->media_type = DE_MEDIA_TP_AUTO;
> + Â Â Â Â Â Â Â Â Â Â Â de_stop_rxtx(de);
> + Â Â Â Â Â Â Â Â Â Â Â de_set_media(de);
> + Â Â Â Â Â Â Â Â Â Â Â de_start_rxtx(de);
> + Â Â Â Â Â Â Â }
> Â Â Â Â Â Â Â Âde_link_up(de);
> Â Â Â Â Â Â Â Âmod_timer(&de->media_timer, jiffies + DE_TIMER_LINK);
> Â Â Â Â Â Â Â Âreturn;
> Â Â Â Â}
>
> Â Â Â ÂBUG_ON(!(status & LinkFail));
> -
> - Â Â Â if (netif_carrier_ok(de->dev)) {
> + Â Â Â /* Mark the link as down only if current media is TP */
> + Â Â Â if (netif_carrier_ok(de->dev) && de->media_type != DE_MEDIA_AUI &&
> + Â Â Â Â Â de->media_type != DE_MEDIA_BNC) {
> Â Â Â Â Â Â Â Âde_link_down(de);
> Â Â Â Â Â Â Â Âmod_timer(&de->media_timer, jiffies + DE_TIMER_NO_LINK);
> Â Â Â Â}

Acked-by: Jeff Garzik <jgarzik@xxxxxxxxxx>
N‹§²æìr¸›yúèšØb²X¬¶ÇvØ^–)Þ{.nÇ+‰·¥Š{±‘êçzX§¶›¡Ü}©ž²ÆzÚ&j:+v‰¨¾«‘êçzZ+€Ê+zf£¢·hšˆ§~†­†Ûiÿûàz¹®w¥¢¸?™¨è­Ú&¢)ßf”ù^jÇy§m…á@A«a¶Úÿ 0¶ìh®å’i