Francois Romieu wrote:
[Jeff Garzik added to the loop]
[If nobody disagrees, I'll remove l-k from the Cc: during the next round]
done - my bad.
As an added benefit, my 8001S often fails to negotiate 1000Mbps when the
driver loads but will successfully negotiate it after a while. Running
'ethtool -s ethx autoneg on' fixes it, but that's absurd. This patch
will, ten seconds after the driver starts, check if 1000Mbps is advertised
but not selected, and, if so, force a renegotiation.
So you can not reliably remove the phy timer and simply use the LinkChg status
change, right ?
Apparently. The timer only fires when necessary with my patch, though
(see the return statements in rtl8169_phy_timer).
BTW, what was it there for in the first place? I can get gigabit to
fail to negotiate, but I always pick up a 100Mbps/full duplex link when
that happens. I've never seen a complete absense of link. I left the
original semantics around because I assumed there was a reason, but if
it's unnecessary, then the timer should only need to fire once during
the lifetime of the device (and the assorted bookkeeping can go away).
Is everybody fine if I cook up a serie of patches for -netdev/-mm inclusion
- your link related changes
- start of a 8139cp.c genetic mutation on top of those
- reworked Jon D Mason's NAPI changes
Fine by me.
One other question: I was once able to put the chipset into a state
where it appeared to have lost all software control over the PHY
(LinkChg never fired, the link always appeared to be down, changing
allowed link modes, resetting the phy, and forcing renegotiation did
nothing, but the link still worked). This problem survived reload of my
driver, reload of the unmodified driver, a warm reboot and a cold
reboot; I fixed it by turning off the computer, then unplugging the
power supply, and then turning it on to discharge the standby voltage.
Do you know any way to do an extra hard reset of the chipset?
Any thoughts on what's wrong with my tx csum offload patch? If I can
get that working, I'll do rx csum offload and TSO as well.
ETA: this week end, start of incoming week.