[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20090318.233807.31615311.davem@davemloft.net>
Date: Wed, 18 Mar 2009 23:38:07 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: steve.glendinning@...c.com
Cc: netdev@...r.kernel.org, ian.saturley@...c.com
Subject: Re: [PATCH] smsc911x: reset last known duplex and carrier on open
From: Steve Glendinning <steve.glendinning@...c.com>
Date: Tue, 17 Mar 2009 18:06:39 +0000
> smsc911x_phy_adjust_link is called periodically by the phy layer (as
> it's run in polling mode), and it only updates the hardware when it sees
> a change in duplex or carrier. This patch clears the last known values
> every time the interface is brought up, instead of only when the module
> is loaded.
>
> Without this patch the adjust_link function never updates the hardware
> after an ifconfig down; ifconfig up. On a full duplex link this causes
> the tx error counter to increment, even though packets are correctly
> transmitted, as the default MAC_CR register setting is for half duplex.
>
> The tx errors are "no carrier" errors, which should be ignored in
> full-duplex mode. When MAC_CR is set to "full duplex" mode they are
> correctly ignored by the hardware.
>
> Note that even with this patch the tx error counter can increment if
> packets are transmitted between "ifconfig up" and the first phy poll
> interval. An improved solution would use the phy interrupt with phylib,
> but I haven't managed to make this work 100% robustly yet.
>
> Signed-off-by: Steve Glendinning <steve.glendinning@...c.com>
Patch applied, thanks Steve.
If only other driver maintainers wrote as nice commit log
messages as you do, these days I'm lucky if I get a coherent
header line. :-/
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists