printk(KERN_INFO"%s: 21143 negotiation status %8.8x, %s.\n",
dev->name, csr12, medianame[dev->if_port]);
if (tulip_media_cap[dev->if_port] & MediaIsMII) {
- tulip_check_duplex(dev);
- next_tick = 60*HZ;
+ if (tulip_check_duplex(dev) < 0) {
+ netif_carrier_off(dev);
+ next_tick = 3*HZ;
+ } else {
+ netif_carrier_on(dev);
+ next_tick = 60*HZ;
+ }
} else if (tp->nwayset) {
/* Don't screw up a negotiated session! */
if (tulip_debug > 1)
+2002-01-28 Stefan Rompf <srompf@isg.de>,
+ Jeff Garzik <jgarzik@mandrakesoft.com>
+
+ * 21142.c (t21142_timer): Use return value of
+ tulip_check_duplex() to indicate to system whether or not
+ carrier is present. Use carrier presence/absence to determine
+ when next the 21142 media timer should check for link beat.
+
+ * timer (tulip_timer): Un-comment-out calls to
+ netif_carrier_{on,off}, as there is now value in
+ reporting link beta information to userspace.
+
2002-01-28 Pavel Roskin <proski@gnu.org>
* tulip_core.c (tulip_init_one): Use tp->eeprom instead of
medianame[mleaf->media & MEDIA_MASK]);
if ((p[2] & 0x61) == 0x01) /* Bogus Znyx board. */
goto actually_mii;
- /* netif_carrier_on(dev); */
+ netif_carrier_on(dev);
break;
}
- /* netif_carrier_off(dev); */
+ netif_carrier_off(dev);
if (tp->medialock)
break;
select_next_media:
}
case 1: case 3: /* 21140, 21142 MII */
actually_mii:
- if (tulip_check_duplex(dev) < 0)
- { /* netif_carrier_off(dev); */ }
- else
- { /* netif_carrier_on(dev); */ }
- next_tick = 60*HZ;
+ if (tulip_check_duplex(dev) < 0) {
+ netif_carrier_off(dev);
+ next_tick = 3*HZ;
+ } else {
+ netif_carrier_on(dev);
+ next_tick = 60*HZ;
+ }
break;
case 2: /* 21142 serial block has no link beat. */
default: