Re: [patch 17/18] 3c59x: fix duplex configuration
On Fri, Aug 10, 2007 at 02:05:26PM -0700, [EMAIL PROTECTED] wrote: [...] diff -puN drivers/net/3c59x.c~3c59x-fix-duplex-configuration drivers/net/3c59x.c --- a/drivers/net/3c59x.c~3c59x-fix-duplex-configuration +++ a/drivers/net/3c59x.c @@ -1559,6 +1559,7 @@ vortex_up(struct net_device *dev) mii_reg1 = mdio_read(dev, vp-phys[0], MII_BMSR); mii_reg5 = mdio_read(dev, vp-phys[0], MII_LPA); vp-partner_flow_ctrl = ((mii_reg5 0x0400) != 0); + vp-mii.full_duplex = vp-full_duplex; vortex_check_media(dev, 1); } _ Sorry for the late reply. I finally managed to get my notebook fixed so that I could actually test this patch. I can confirm that it fixes my duplex configuration problem. The steps described in http://bugzilla.kernel.org/show_bug.cgi?id=8575 now result in a Ethernet chip properly configured for full duplex. Thanks for the fix! The only remaining issue I have the 3c59x driver is the time required until it detects link loss when unplugging the Ethernet cable. At the moment, this needs up to 60 seconds which makes this feature pretty useless. Other drivers need 2-5 seconds for this which is roughly what I would have expected. I've been using the patch below sucessfully for a few weeks now which brings down this time to 5 seconds. Would be nice if somebody could apply it. Thanks, Martin --- drivers/net/3c59x.c.orig2007-08-20 17:01:06.0 +0200 +++ drivers/net/3c59x.c 2007-08-20 17:02:38.0 +0200 @@ -1726,7 +1726,7 @@ struct net_device *dev = (struct net_device *)data; struct vortex_private *vp = netdev_priv(dev); void __iomem *ioaddr = vp-ioaddr; - int next_tick = 60*HZ; + int next_tick = 5*HZ; int ok = 0; int media_status, old_window; @@ -1771,9 +1771,6 @@ ok = 1; } - if (!netif_carrier_ok(dev)) - next_tick = 5*HZ; - if (vp-medialock) goto leave_media_alone; - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [patch 17/18] 3c59x: fix duplex configuration
[EMAIL PROTECTED] wrote: From: Steffen Klassert [EMAIL PROTECTED] A special sequence of ifconfig up/down and plug/unplug the cable can break the duplex configuration of the driver. Setting vp-mii.full_duplex = vp-full_duplex in vortex_up should fix this. Addresses Bug 8575 3c59x duplex configuration broken http://bugzilla.kernel.org/show_bug.cgi?id=8575 Cc: Martin Buck [EMAIL PROTECTED] Signed-off-by: Steffen Klassert [EMAIL PROTECTED] Cc: Natalie Protasevich [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- drivers/net/3c59x.c |1 + 1 files changed, 1 insertion(+) applied - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
[patch 17/18] 3c59x: fix duplex configuration
From: Steffen Klassert [EMAIL PROTECTED] A special sequence of ifconfig up/down and plug/unplug the cable can break the duplex configuration of the driver. Setting vp-mii.full_duplex = vp-full_duplex in vortex_up should fix this. Addresses Bug 8575 3c59x duplex configuration broken http://bugzilla.kernel.org/show_bug.cgi?id=8575 Cc: Martin Buck [EMAIL PROTECTED] Signed-off-by: Steffen Klassert [EMAIL PROTECTED] Cc: Natalie Protasevich [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- drivers/net/3c59x.c |1 + 1 files changed, 1 insertion(+) diff -puN drivers/net/3c59x.c~3c59x-fix-duplex-configuration drivers/net/3c59x.c --- a/drivers/net/3c59x.c~3c59x-fix-duplex-configuration +++ a/drivers/net/3c59x.c @@ -1559,6 +1559,7 @@ vortex_up(struct net_device *dev) mii_reg1 = mdio_read(dev, vp-phys[0], MII_BMSR); mii_reg5 = mdio_read(dev, vp-phys[0], MII_LPA); vp-partner_flow_ctrl = ((mii_reg5 0x0400) != 0); + vp-mii.full_duplex = vp-full_duplex; vortex_check_media(dev, 1); } _ - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html