openwrtv4/target/linux/ar71xx/files/drivers/net/ag71xx
Gabor Juhos 5d77f370d6 ar71xx: ag71xx: make switch register access atomic
Reading of the PHY registers occasionally returns with bogus values
under heavy load. This misleads the PHY driver and thus causes false
link/speed change notifications which leads to performance loss.

This is easily noticable during an iperf session:

...
[  3] 52.0-53.0 sec  11.3 MBytes  94.4 Mbits/sec
[  3] 53.0-54.0 sec  11.4 MBytes  95.4 Mbits/sec
eth1: link down
br-lan: port 2(eth1) entering forwarding state
eth1: link up (100Mbps/Full duplex)
br-lan: port 2(eth1) entering forwarding state
br-lan: port 2(eth1) entering forwarding state
[  3] 54.0-55.0 sec  6.75 MBytes  56.6 Mbits/sec
[  3] 55.0-56.0 sec  0.00 Bytes  0.00 bits/sec
[  3] 56.0-57.0 sec  10.5 MBytes  88.1 Mbits/sec
...
[  3] 169.0-170.0 sec  11.4 MBytes  95.4 Mbits/sec
[  3] 170.0-171.0 sec  11.4 MBytes  95.4 Mbits/sec
eth1: link up (10Mbps/Half duplex)
[  3] 171.0-172.0 sec  7.63 MBytes  64.0 Mbits/sec
[  3] 172.0-173.0 sec  9.38 MBytes  78.6 Mbits/sec
eth1: link up (100Mbps/Full duplex)
[  3] 173.0-174.0 sec  11.3 MBytes  94.4 Mbits/sec
[  3] 174.0-175.0 sec  11.4 MBytes  95.4 Mbits/sec

SVN-Revision: 26856
2011-05-08 16:32:53 +00:00
..
ag71xx.h ar71xx: ag71xx: add timestamps to ag71xx_buf 2011-05-07 12:40:28 +00:00
ag71xx_ar7240.c ar71xx: ag71xx: make switch register access atomic 2011-05-08 16:32:53 +00:00
ag71xx_ar8216.c ar71xx: fix up alignment handling 2010-04-15 23:31:17 +00:00
ag71xx_debugfs.c ar71xx: ag71xx: fix build error if debugfs is enabled 2011-05-08 13:30:26 +00:00
ag71xx_ethtool.c ar71xx: add dummy debugfs support for the ag71xx driver 2010-01-04 14:28:25 +00:00
ag71xx_main.c ar71xx: ag71xx: add timestamps to ag71xx_buf 2011-05-07 12:40:28 +00:00
ag71xx_mdio.c ar71xx: only allow internal access to the ar7240 switch, export the MDIO bus behind the switch instead 2011-04-02 00:47:29 +00:00
ag71xx_phy.c ar71xx: ag71xx: fix section mismatch warnings 2011-05-08 13:30:36 +00:00
Kconfig wrt400n: lan ports don't need the ar8216 workaround 2010-03-26 19:09:11 +00:00
Makefile ar71xx: add a new driver for the ar7240 switch using swconfig. hooks directly into the ethernet driver, as MAC resets also require switch reinitializations and the switch is part of the cpu core anyway switch only tl-wr741nd (and other devices using this board file, such as tl-wr841nd) over to using this by default, as other devices are still untested fixes #7563 2010-08-16 19:21:57 +00:00