1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-12-11 14:27:30 +02:00
Commit Graph

88 Commits

Author SHA1 Message Date
nbd
db5c8f65ca ar71xx: add some code to detect DMA stuck conditions on ar7240
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27975 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-08-13 22:30:14 +00:00
nbd
5051a6677f ar71xx: on ar724x only reset the link status in the restart handler, the fast reset takes care of DMA stuck issues
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27973 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-08-13 21:49:46 +00:00
nbd
571d12ab3a ar71xx: fix ethernet FIFO state corruption on ar7240
When starting/stopping DMA sometimes the FIFO state gets corrupted,
leading to wildly fluctuating latencies or packet data corruption.
Fix this by issuing a fast MAC reset as soon as the link is detected
as up. Fixes #9689, #9405

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27896 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-08-04 17:36:31 +00:00
nbd
27818ae524 ag71xx: fix memory corruption issues on ar7240 on ethernet start/stop
When the DMA engine state gets corrupted due to a hardware issues, it
often won't stop rx until a full reset is issued. In that case the hardware
must keep a valid descriptor, otherwise it will write to random places in
system RAM, triggering random crashes. To fix this, keep a dummy descriptor
without a buffer that keeps the DMA engine in a sane state until the reset
is done

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27895 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-08-04 17:36:27 +00:00
nbd
3fe5c4149b ar71xx: fix MAC/MDIO reset mask handling
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27894 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-08-04 17:36:23 +00:00
nbd
8ea4f149b0 ar71xx: reset the phy in the ethernet init on ar724x
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27703 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-07-20 12:04:34 +00:00
nbd
96c14099ce ar71xx: make sure that rx and interrupts are disabled before issuing the hardware reset
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27702 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-07-20 12:04:29 +00:00
nbd
9dfcd7e5e2 ar71xx: increase the delay after the ethernet MAC reset
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27701 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-07-20 12:04:25 +00:00
nbd
db4cd49d62 ar71xx: fix an unused variable warning
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27700 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-07-20 12:04:20 +00:00
nbd
ec8e57edd9 ar71xx: do not reset the hardware on transmit timeout - this would mess up the up the PHY state
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27568 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-07-09 06:30:13 +00:00
nbd
cc32100390 ag71xx: keep the rx engine stopped while the link is not up, should hopefully fix stability issues from #9405
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27567 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-07-09 06:29:46 +00:00
nbd
480dfda6ec Revert "ar71xx: only enable the rx engine after the link is up..."
It messes up the DMA state when the link goes down

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27088 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-06-01 18:15:43 +00:00
juhosg
a137dec884 ar71xx: ag71xx: prepare to make ring sizes configurable
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27040 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-05-31 22:53:09 +00:00
nbd
debcf79f90 ar71xx: only enable the rx engine after the link is up, fixes a race condition that got rx stuck when the interface is brought up during lots of inbound traffic (thx, matteo)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27035 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-05-30 23:08:01 +00:00
nbd
20aef6d6fc ar71xx: disable flow control for ar724x, it can get stuck in a loop of continously sending MAC pause frames
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27034 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-05-30 23:07:57 +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
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
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
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
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
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
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
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
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
juhosg
ee12427e21 ar71xx: ag71xx: use correct device pointer for dma_map_single
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@19951 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-03-02 13:36:18 +00:00
juhosg
a1c949e3fc ar71xx: ag71xx: don't use virt_to_phys
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@19950 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-03-02 13:36:15 +00:00
juhosg
75c4494280 ar71xx: ag71xx: use NETDEV_TX_OK
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@19948 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-03-02 13:36:09 +00:00
juhosg
7bdbc197cd ar71xx: enable TX/RX flow control on the AR7240
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@19832 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-02-24 13:38:41 +00:00
juhosg
c64ff4c0d6 ar71xx: add NAPI statistics to the ag71xx driver
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@19079 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-01-08 20:22:55 +00:00
juhosg
0c1d7bcfa5 ar71xx: add detailed interrupt statistics for the ag71xx driver
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@19054 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-01-06 15:24:01 +00:00
juhosg
bdcb066fc4 ar71xx: add dummy debugfs support for the ag71xx driver
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@19031 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-01-04 14:28:25 +00:00
nbd
483781cdb7 Revert "ar71xx: move phy_connect call to ag71xx_open" (r18691)
It's causing issues with switch drivers that register with swconfig and
makes fixing those unnecessarily complicated.
Fixes rtl8306 switch support on the WRT160NL.

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@18789 3c298f89-4303-0410-b956-a3cf2f4a3e73
2009-12-15 22:37:54 +00:00
juhosg
07282cf223 ar71xx: merge ag71xx specific patches
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@18751 3c298f89-4303-0410-b956-a3cf2f4a3e73
2009-12-11 16:41:40 +00:00
juhosg
c9789da4c5 ar71xx: move mdio_bus reset code
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@18749 3c298f89-4303-0410-b956-a3cf2f4a3e73
2009-12-11 12:21:15 +00:00
juhosg
5608c597c3 ar71xx: add support for external mii_bus
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@18692 3c298f89-4303-0410-b956-a3cf2f4a3e73
2009-12-08 10:29:27 +00:00