summaryrefslogtreecommitdiffstats
path: root/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_main.c
Commit message (Collapse)AuthorAgeFilesLines
* ar71xx: move arch specific files to files-2.6.39juhosg2012-01-221-1265/+0
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29867 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: ag71xx: remove unused mii_ctrl field from struct ag71xxjuhosg2011-11-131-18/+1
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29015 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: set MII interface speed from the set_speed callbacksjuhosg2011-11-131-6/+0
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29013 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: rename set_pll callback to set_speed in ag71xx_platform_datajuhosg2011-11-131-2/+2
| | | | | | Also rename the corresponding callback functions. git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29012 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: ag71xx: remove MII interface setup codejuhosg2011-11-131-3/+0
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29011 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: add some code to detect DMA stuck conditions on ar7240nbd2011-08-131-1/+29
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27975 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: on ar724x only reset the link status in the restart handler, the ↵nbd2011-08-131-0/+6
| | | | | | fast reset takes care of DMA stuck issues git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27973 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: fix ethernet FIFO state corruption on ar7240nbd2011-08-041-20/+60
| | | | | | | | | 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
* ag71xx: fix memory corruption issues on ar7240 on ethernet start/stopnbd2011-08-041-3/+16
| | | | | | | | | | | 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
* ar71xx: fix MAC/MDIO reset mask handlingnbd2011-08-041-2/+2
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27894 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: reset the phy in the ethernet init on ar724xnbd2011-07-201-0/+13
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27703 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: make sure that rx and interrupts are disabled before issuing the ↵nbd2011-07-201-7/+9
| | | | | | hardware reset git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27702 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: increase the delay after the ethernet MAC resetnbd2011-07-201-1/+1
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27701 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: fix an unused variable warningnbd2011-07-201-1/+0
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27700 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: do not reset the hardware on transmit timeout - this would mess up ↵nbd2011-07-091-4/+0
| | | | | | the up the PHY state git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27568 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ag71xx: keep the rx engine stopped while the link is not up, should ↵nbd2011-07-091-91/+91
| | | | | | hopefully fix stability issues from #9405 git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27567 3c298f89-4303-0410-b956-a3cf2f4a3e73
* Revert "ar71xx: only enable the rx engine after the link is up..."nbd2011-06-011-68/+67
| | | | | | 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
* ar71xx: ag71xx: prepare to make ring sizes configurablejuhosg2011-05-311-22/+24
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27040 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: only enable the rx engine after the link is up, fixes a race ↵nbd2011-05-301-67/+68
| | | | | | 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
* ar71xx: disable flow control for ar724x, it can get stuck in a loop of ↵nbd2011-05-301-5/+1
| | | | | | continously sending MAC pause frames git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27034 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: ag71xx: add timestamps to ag71xx_bufjuhosg2011-05-071-0/+1
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26844 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: frequent ethernet mac resets upset the MDIO bus on ar7240, so do not ↵nbd2011-04-021-4/+5
| | | | | | 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
* ar71xx: drivers/ag71xx: remove deprecated usage of IRQF_SAMPLE_RANDOMjuhosg2010-11-121-1/+1
| | | | | | Signed-off-by: Arnaud Lacombe <lacombar@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23982 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: wrap long linesjuhosg2010-11-121-1/+2
| | | | | | | | (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
* ar71xx: fix whitespaces nitsjuhosg2010-11-121-17/+17
| | | | | | | | (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
* ar71xx: fix more section mismatchesnbd2010-10-211-2/+2
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23575 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: improve 2.6.36 compatibility. also, instead of adding a forward port ↵nbd2010-10-211-2/+1
| | | | | | 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
* ar71xx: only reinit the ethernet MAC at .open() on ar724x for now, until ↵nbd2010-07-061-1/+3
| | | | | | 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
* ag71xx: reset the hardware during open(), this improves recovery from tx ↵nbd2010-07-041-0/+2
| | | | | | timeouts on ar724x considerably git-svn-id: svn://svn.openwrt.org/openwrt/trunk@22055 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ag71xx: fix a memory corruption bug that happens if you flood the interface ↵nbd2010-07-041-0/+6
| | | | | | | | 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
* ag71xx: remove rx alignment code for small packets, it seems to break ipv6 ↵nbd2010-04-261-24/+0
| | | | | | for some reason (fixes #7236) git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21166 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: fix up alignment handlingnbd2010-04-151-25/+41
| | | | | | | | | | | - 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
* ar71xx: ag71xx: avoid unalinged accesses when using the phy specific receive ↵juhosg2010-04-091-0/+7
| | | | | | | | | functions Cc: backfire@openwrt.org git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20751 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: ag71xx: call the phy driver's netif_receive_skb()juhosg2010-04-091-2/+6
| | | | | | | | | | | | | 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
* ar71xx: fix broken LAN ports on the boards with AR8216 switch (closes #7024)juhosg2010-04-031-3/+3
| | | | | | | * cc: backfire@openwrt.org git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20673 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: ag71xx: copy received packet to avoid unaligned access in the IP stackjuhosg2010-03-271-0/+19
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20506 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: ag71xx: introduce ag71xx_has_ar8216() helperjuhosg2010-03-271-3/+6
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20505 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: ag71xx: reorganize ag71xx_rx_packet functionjuhosg2010-03-271-6/+7
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20504 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: ag71xx: Add netpoll supportjuhosg2010-03-271-0/+17
| | | | | | | | | | | | 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
* ar71xx: ag71xx: fix MAC address setupjuhosg2010-03-091-3/+3
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20092 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: ag71xx: move calling ag71xx_phy_stop out from spinlockjuhosg2010-03-051-3/+3
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20004 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: ag71xx: move link update functionjuhosg2010-03-051-0/+101
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20003 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: ag71xx: don't use dev->trans_startjuhosg2010-03-051-2/+0
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20002 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: ag71xx: use dma_unmap_single to unmap framesjuhosg2010-03-051-2/+9
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20001 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: ag71xx: use correct device pointer for dma_map_singlejuhosg2010-03-021-3/+5
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@19951 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: ag71xx: don't use virt_to_physjuhosg2010-03-021-13/+16
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@19950 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: ag71xx: use NETDEV_TX_OKjuhosg2010-03-021-3/+4
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@19948 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: enable TX/RX flow control on the AR7240juhosg2010-02-241-1/+6
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@19832 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: add NAPI statistics to the ag71xx driverjuhosg2010-01-081-12/+16
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@19079 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: add detailed interrupt statistics for the ag71xx driverjuhosg2010-01-061-0/+2
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@19054 3c298f89-4303-0410-b956-a3cf2f4a3e73