summaryrefslogtreecommitdiffstats
path: root/target/linux/ar71xx/files/drivers
Commit message (Collapse)AuthorAgeFilesLines
* ag71xx: close a race between the phy state machine and link statejogo2011-10-081-3/+7
| | | | | | | | | | | A fast stop/start cycle could leave the ag71xx interrupts and tx engine disabled when using a phy driver with a fixed link and the start/stop happens between two phy state machine polls. Prevent this by always forcing the link down on stop regardless of phy state and having a phy connected. git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28380 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: fix register range check for DMA stuck checks (thx, Frédéric Moulins)nbd2011-09-111-1/+1
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28213 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: add some code to detect DMA stuck conditions on ar7240nbd2011-08-132-1/+33
| | | | 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-042-20/+61
| | | | | | | | | 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-042-3/+19
| | | | | | | | | | | 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: reinitialize global switch settings after reset on ar7240nbd2011-07-201-23/+24
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27705 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: configure address aging on ar7240nbd2011-07-201-2/+12
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27704 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
* ar71xx: merge 2.6.39 patchesjuhosg2011-06-291-678/+0
| | | | | | Also remove the old UART driver for ar933x. git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27314 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: add 2.6.39 supportjuhosg2011-06-291-0/+688
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27310 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: cleanup AR933X UART driverjuhosg2011-06-191-481/+141
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27222 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: use ar933x_uart.h in the AR933X serial driverjuhosg2011-06-131-339/+75
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27166 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: setup wdt_clock for AR913X to avoid a kernel bugjuhosg2011-06-041-0/+2
| | | | | | Signed-off-by: Jonas Gorski <jonas.gorski+openwrt@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27102 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: add serial driver for the AR933X UARTjuhosg2011-05-311-0/+1282
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27065 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: the watchdog uses the reference clock on the AR933x SoCsjuhosg2011-05-311-2/+12
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27060 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: Fix header offset for newer WRT160NL modelsjuhosg2011-05-311-9/+16
| | | | | | | | | | | | Newer WRT160NLs have a flash chip with 4K erase blocks instead of 64K, resulting in miscalculated partition sizes. Since the actual sizes did not change, hardcode them to their current sizes, and make sure they are at least one erase block big (in case Cisco decides to start to use chips with 128K erase blocks). Signed-off-by: Jonas Gorski <jonas.gorski+openwrt@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27049 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: ag71xx: make ring sizes configurable via ethtooljuhosg2011-05-312-0/+56
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27041 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: ag71xx: prepare to make ring sizes configurablejuhosg2011-05-313-35/+32
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27040 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: ag71xx: nuke unused AG71XX_TX_FIFO_LEN definejuhosg2011-05-311-1/+0
| | | | | | Reported-by: Dave Täht <dave.taht@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27039 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: detect link on LAN portsmatteo2011-05-173-3/+32
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26922 3c298f89-4303-0410-b956-a3cf2f4a3e73
* use correct macros and frame size in ag71xxmatteo2011-05-141-3/+2
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26890 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: ag71xx: make switch register access atomicjuhosg2011-05-081-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* ar71xx: ag71xx: fix section mismatch warningsjuhosg2011-05-082-2/+2
| | | | | | | | | | | | | | | | | | 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
* ar71xx: ag71xx: fix build error if debugfs is enabledjuhosg2011-05-081-2/+3
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26854 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: ag71xx: add debugfs entry for [rt]x_ringjuhosg2011-05-071-0/+92
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26845 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: ag71xx: add timestamps to ag71xx_bufjuhosg2011-05-072-1/+2
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26844 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: ag71xx: use dynamically allocated buffer for napi_statsjuhosg2011-05-071-9/+19
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26843 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: ag71xx: use debugfs_remove_recursivejuhosg2011-05-072-28/+7
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26842 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: rename ar934x_ref_freq to ar71xx_ref_freqjuhosg2011-04-091-1/+1
| | | | | | | 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
* ar71xx: add support for the watchdog of the AR934x SoCsjuhosg2011-04-071-2/+20
| | | | | | Signed-off-by: Jaiganesh Narayanan <jnarayanan@atheros.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26516 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: only allow internal access to the ar7240 switch, export the MDIO bus ↵nbd2011-04-023-76/+109
| | | | | | behind the switch instead git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26393 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: use gpio_*_cansleep calls in the rb4xx NAND driverjuhosg2011-01-091-5/+8
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@24944 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: drivers/ar71xx_wdt: fix size argument passed to copy_to_user()juhosg2010-11-121-1/+1
| | | | | | Signed-off-by: Arnaud Lacombe <lacombar@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23983 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: use pr_* functions in driversjuhosg2010-11-122-10/+4
| | | | | | Signed-off-by: Arnaud Lacombe <lacombar@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23981 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: drivers/rb4xx_nand: remove C++ comment usagejuhosg2010-11-121-1/+3
| | | | | | Signed-off-by: Arnaud Lacombe <lacombar@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23980 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: return statements does not need parenthesisjuhosg2010-11-122-7/+7
| | | | | | Signed-off-by: Arnaud Lacombe <lacombar@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23979 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: fix inline attribute locationjuhosg2010-11-122-5/+5
| | | | | | Signed-off-by: Arnaud Lacombe <lacombar@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23978 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: wrap long linesjuhosg2010-11-125-8/+12
| | | | | | | | (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