juhosg
bb14a2f07c
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
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26856 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-05-08 16:32:53 +00:00
juhosg
0511a7adf1
ar71xx: ag71xx: fix section mismatch warnings
...
The function __devinit ag71xx_probe() references
a function __devexit ag71xx_phy_disconnect().
This is often seen when error handling in the init function
uses functionality in the exit path.
The fix is often to remove the __devexit annotation of
ag71xx_phy_disconnect() so it may be used outside an exit section.
The function ag71xx_phy_disconnect() references a function in an exit
section.
Often the function ag71xx_ar7240_cleanup() has valid usage outside the
exit section
and the fix is to remove the __devexit annotation of
ag71xx_ar7240_cleanup.
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26855 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-05-08 13:30:36 +00:00
juhosg
14088891b0
ar71xx: ag71xx: fix build error if debugfs is enabled
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26854 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-05-08 13:30:26 +00:00
juhosg
e5061b1935
ar71xx: ag71xx: add debugfs entry for [rt]x_ring
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26845 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-05-07 12:40:34 +00:00
juhosg
5155342ee7
ar71xx: ag71xx: add timestamps to ag71xx_buf
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26844 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-05-07 12:40:28 +00:00
juhosg
5e10b16d95
ar71xx: ag71xx: use dynamically allocated buffer for napi_stats
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26843 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-05-07 12:40:26 +00:00
juhosg
f6816e49d9
ar71xx: ag71xx: use debugfs_remove_recursive
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26842 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-05-07 12:40:25 +00:00
juhosg
f2a69b10a8
ar71xx: rename ar934x_ref_freq to ar71xx_ref_freq
...
Also initialize that for each SoC and print its value along with the
other frequencies.
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26561 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-04-09 18:47:52 +00:00
juhosg
7072aeaf32
ar71xx: add support for the watchdog of the AR934x SoCs
...
Signed-off-by: Jaiganesh Narayanan <jnarayanan@atheros.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26516 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-04-07 20:53:10 +00:00
nbd
7569a2e88f
ar71xx: only allow internal access to the ar7240 switch, export the MDIO bus behind the switch instead
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26393 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-04-02 00:47:29 +00:00
nbd
fd5cb87889
ar71xx: frequent ethernet mac resets upset the MDIO bus on ar7240, so do not run them on every device open, only on tx timeouts
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26392 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-04-02 00:47:25 +00:00
juhosg
017387d91d
ar71xx: use gpio_*_cansleep calls in the rb4xx NAND driver
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@24944 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-01-09 09:29:45 +00:00
juhosg
4355718b98
ar71xx: drivers/ar71xx_wdt: fix size argument passed to copy_to_user()
...
Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23983 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-11-12 18:52:45 +00:00
juhosg
cc04995115
ar71xx: drivers/ag71xx: remove deprecated usage of IRQF_SAMPLE_RANDOM
...
Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23982 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-11-12 18:52:28 +00:00
juhosg
cbd9e227db
ar71xx: use pr_* functions in drivers
...
Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23981 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-11-12 18:52:12 +00:00
juhosg
b0acc8feff
ar71xx: drivers/rb4xx_nand: remove C++ comment usage
...
Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23980 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-11-12 18:51:55 +00:00
juhosg
c0734b8ffe
ar71xx: return statements does not need parenthesis
...
Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23979 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-11-12 18:51:38 +00:00
juhosg
74ed307c1e
ar71xx: fix inline attribute location
...
Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23978 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-11-12 18:51:21 +00:00
juhosg
2adda3cec6
ar71xx: wrap long lines
...
(build errors has been fixed - juhosg)
Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23977 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-11-12 18:51:04 +00:00
juhosg
b6dbd83901
ar71xx: fix whitespaces nits
...
(build error has been fixed - juhosg)
Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23975 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-11-12 18:50:29 +00:00
nbd
8c032f3c80
ar71xx: fix more section mismatches
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23575 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-10-21 18:42:16 +00:00
nbd
0a95e857aa
ar71xx: improve 2.6.36 compatibility. also, instead of adding a forward port patch to the 2.6.36 patches, add a backport patch to 2.6.32
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23574 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-10-21 18:42:11 +00:00
nbd
8631d395e1
ar71xx: increase rb4xx nand kernel partition size (patch by danimo)
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23293 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-10-07 14:27:34 +00:00
juhosg
d1f333874d
ar71xx: rewrite SPI drivers for the RB4xx boards
...
* add a new SPI controller driver
* add SPI driver for the CPLD chip
* convert the NAND driver
* enable the mikroSD slot
* enable more LEDs
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@22863 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-08-31 20:13:47 +00:00
nbd
5cc1f4bcf3
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
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@22675 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-08-16 19:21:57 +00:00
nbd
f3814337f1
ar71xx: only reinit the ethernet MAC at .open() on ar724x for now, until we've figured out what part of it causes the issue described in #7563
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@22075 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-07-06 12:40:07 +00:00
nbd
d856215f02
ag71xx: reset the hardware during open(), this improves recovery from tx timeouts on ar724x considerably
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@22055 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-07-04 02:15:08 +00:00
nbd
950d12ef69
ag71xx: fix a memory corruption bug that happens if you flood the interface with packets while it's being brought down
...
fixes boot time crashes under load reported by matteo
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@22054 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-07-04 01:31:33 +00:00
juhosg
17cb46ca8a
ar71xx: fix leds-rb750 build failure on 2.6.34
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@22016 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-07-01 14:49:06 +00:00
juhosg
e3ad321217
ar71xx: fix build error in the rb{4xx,750}_nand drivers on 2.6.34/35
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21736 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-06-09 15:31:34 +00:00
juhosg
c2a2341e50
ar71xx: fix 2.6.34 build errors
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21698 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-06-07 09:18:13 +00:00
nbd
2a9dd36f43
ag71xx: remove rx alignment code for small packets, it seems to break ipv6 for some reason ( fixes #7236 )
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21166 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-04-26 16:39:13 +00:00
nbd
ea9bbe955d
ar71xx: fix up alignment handling
...
- on ar724x, rx buffers can be aligned with an offset of 2, which keeps the ip header aligned
- alignment offset is only added if the ar8216 workaround is not active and the phy driver does not advertise its own packet alignment
- ar71xx and ar91xx can not handle rx alignment offsets, however taking a hit on unaligned exceptions seems to have less overhead than re-aligning the data for large packets
- use memmove to re-align small packets, if necessary
tested on ar9132, ar7240 and ar7242 based devices without ar8216 headers
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20892 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-04-15 23:31:17 +00:00
juhosg
da7aaa905b
ar71xx: ag71xx: avoid unalinged accesses when using the phy specific receive functions
...
Cc: backfire@openwrt.org
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20751 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-04-09 08:40:06 +00:00
juhosg
c74f817d15
ar71xx: ag71xx: call the phy driver's netif_receive_skb()
...
Ag71xx needs to call the phy's netif_receive_skb() to allow phy drivers
to mangle rx packets. This patch fixes it.
This fixes the header mangling of the AR8216 driver.
Signed-off-by: Jonas Gorski <jonas.gorski+openwrt@gmail.com>
Cc:backfire@openwrt.org
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20750 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-04-09 08:38:46 +00:00
juhosg
040ee7aa28
ar71xx: fix broken LAN ports on the boards with AR8216 switch ( closes #7024 )
...
* cc: backfire@openwrt.org
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20673 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-04-03 13:59:08 +00:00
juhosg
8299299524
ar71xx: update image generation and trx header parsing for the WRT160NL
...
* patch by Bernhard Loos
* note: trailing whitespaces has been removed
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20525 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-03-27 17:38:36 +00:00
juhosg
90c499bfa0
ar71xx: ag71xx: copy received packet to avoid unaligned access in the IP stack
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20506 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-03-27 13:05:27 +00:00
juhosg
1a729d6932
ar71xx: ag71xx: introduce ag71xx_has_ar8216() helper
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20505 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-03-27 13:05:24 +00:00
juhosg
51763ff18e
ar71xx: ag71xx: reorganize ag71xx_rx_packet function
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20504 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-03-27 13:05:20 +00:00
juhosg
afa983c991
ar71xx: ag71xx: Add netpoll support
...
This patch adds support for polling interrupts, used by
netconsole and the likes.
Tested on d-link dir-615 C1 using netconsole.
Signed-off-by: Pat Erley <pat-lkml@erley.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20503 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-03-27 13:05:17 +00:00
agb
651c537f30
[ar71xx] wrt400n: lan ports don't need the ar8216 workaround
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20491 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-03-26 19:09:11 +00:00
juhosg
e6e9309426
ar71xx: change PHY select logic, and update phy_masks
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20358 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-03-21 18:16:07 +00:00
juhosg
2feb525193
ar71xx: ag71xx: fix MAC address setup
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20092 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-03-09 18:05:36 +00:00
juhosg
e9152bd9e4
ar71xx: add NAND driver for the RB750
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20054 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-03-08 12:10:23 +00:00
juhosg
7ee68b0bf3
ar71xx: add LED driver for the RB750
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20051 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-03-08 12:10:01 +00:00
juhosg
0955ccfcf3
ar71xx: ag71xx: move calling ag71xx_phy_stop out from spinlock
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20004 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-03-05 20:29:22 +00:00
juhosg
5b74d557fa
ar71xx: ag71xx: move link update function
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20003 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-03-05 20:29:18 +00:00
juhosg
99dab77b59
ar71xx: ag71xx: don't use dev->trans_start
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20002 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-03-05 20:29:14 +00:00
juhosg
54b41868d6
ar71xx: ag71xx: use dma_unmap_single to unmap frames
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20001 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-03-05 20:29:10 +00:00