summaryrefslogtreecommitdiffstats
path: root/target/linux/ramips/files/drivers
Commit message (Collapse)AuthorAgeFilesLines
* ramips: ramips_eth: use Kconfig definition to enable debugjuhosg2012-11-251-1/+1
| | | | | | | | | | The Kconfig identifier to enable debugging in the driver was different from the actually used one. Fix that. Signed-off-by: Paul Fertser <fercerpav@gmail.com> Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34332 3c298f89-4303-0410-b956-a3cf2f4a3e73
* [ramips] move ethernet hw init to init/uninit functionsblogic2012-11-121-17/+29
| | | | | | | | | This should fix the stalled irq problem seen by several people. This is not the real fix, but rather moves the bug to the un/init patch of the driver. The real bug still needs to be fixed, but this workaround should be suffcient to make the ethernet stable. git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34177 3c298f89-4303-0410-b956-a3cf2f4a3e73
* [ramips] add ethernet support for rt5350blogic2012-09-252-18/+106
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33548 3c298f89-4303-0410-b956-a3cf2f4a3e73
* [ramips] make ramips ethernet use a register mapping tableblogic2012-09-251-29/+79
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33547 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: Add missing andmask to ramips_esw register read for recv_good value.juhosg2012-09-051-1/+3
| | | | | | | | | | | | | Add missing andmask to ramips_esw register read for recv_good value. Without the mask, recv_bad leaks into the recv_good packet count. Didn't notice the bug before since you don't usually get bad packets, so I only saw it when I was playing with overlength packets earlier... Signed-off-by: Tobias Diedrich <ranma+openwrt@tdiedrich.de> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33322 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: Use doubletagging to disable ramips_esw vlan by default, it seems ↵juhosg2012-09-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | more reliable. Use doubletagging to disable ramips_esw vlan by default, it seems more reliable. Daniel Golle found an issue where sometimes (possibly only for RT3352) the default vlan disable method (clearing en_vlan, untag, doubletag and putting all ports into vlan 0) doesn't work and the packets get sent out vlan-tagged with vlan 0. Instead switch to using the doubletagging method (allow doubletagged packets, put all ports into vlan 0 with untag enabled) by default. Unless someone figures out a way to really globally disable vlan for this switch, this seems like the best (most reliable) option. I did some tests regarding maximum packet size and did not see any difference between the two methods, both allow for slightly bigger packets than the ramips_main.c ethernet driver (ping stops going through above "ping -s 1472" (1514 bytes), on the switch packets are recv_good until "ping -s 1490", or about 1532 bytes). Signed-off-by: Tobias Diedrich <ranma+openwrt@tdiedrich.de> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33321 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: Power down phy on disabled switch portsjuhosg2012-08-291-5/+67
| | | | | | | | | | | | | | Power down phy on disabled switch ports. Haven't measured this myself yet, but according to this http://www.8devices.com/community/viewtopic.php?f=6&t=156 it can save about 300mW of power. [juhosg: fix checkpatch warning] Signed-off-by: Tobias Diedrich <ranma+openwrt@tdiedrich.de> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33304 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: Rename POC registersjuhosg2012-08-291-31/+31
| | | | | | | | | | | | | | | | | | Rename POC registers. The current code uses POC1-POC3. The datasheet uses: POC1: Port Control 0 POC1: Port Control 1 POC2: Port Control 2 So the first POC1 is a typo that should have been POC0, rename the registers to POC0-POC2 accordingly. Signed-off-by: Tobias Diedrich <ranma+openwrt@tdiedrich.de> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33302 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: Minor ramips_esw.c cleanupjuhosg2012-08-291-59/+3
| | | | | | | | | | | | Stop handling VLAN setup in the kernel. Removes the obsolete RT305X_ESW_VLAN_CONFIG_BYPASS option I added for WL-351 and add some extra comments. Also removes the en_vlan per-port flag that isn't very useful really, it now is only controlled by the global enable_vlan flag. Signed-off-by: Tobias Diedrich <ranma+openwrt@tdiedrich.de> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33301 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: Add swconfig support to ramips_esw.cjuhosg2012-08-292-35/+755
| | | | | | | | | | | | | | | | | | | Add swconfig support to ramips_esw.c This patch adds swconfig support for ramips_esw: Tested on both D-LINK DIR-300 B1 and Sitecom WL-351 (external rtl8366rb on internal port 5). I've made sure that in the enable_vlan=0 case it behaves like a dumb switch, so external switches should work fine with vlans and verified this on the WL-351. The current state shown by swconfig is always read directly from HW registers, new settings only show after 'swconfig dev rt305x set apply'. Signed-off-by: Tobias Diedrich <ranma+openwrt@tdiedrich.de> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33299 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: ramips_esw.c indentation cleanupjuhosg2012-08-291-11/+11
| | | | | | | | | | Minor indentation cleanup. Prepare for the main swconfig patch by cleaning up indentation a bit. Signed-off-by: Tobias Diedrich <ranma+openwrt@tdiedrich.de> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33298 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: watchdog: use maximum possible timeout by defaultjuhosg2012-08-121-6/+6
| | | | | | | | | | | | | As the userspace has no means to determine the maximum possible timeout, use that as the default and let the userspace lower it when necessary. As the result the usual OpenWrt install (with busybox's watchdog trying to set the timeout to 60s on start) is using a 33s timeout on an RT3052 clocked at 384MHz instead of the current 20s default. Signed-off-by: Paul Fertser <fercerpav@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33144 3c298f89-4303-0410-b956-a3cf2f4a3e73
* [ramips] DWC otg usb: compilation fixes and trivial bugfix in slave modeblogic2012-07-245-5/+45
| | | | | | Signed-of-by: Nikolai Zhubr <n-a-zhubr@yandex.ru> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32823 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: Add byte queue limits support to net/ethernet/ramips_main.cjuhosg2012-05-231-0/+8
| | | | | | | | | | | | | | Add byte queue limits support to net/ethernet/ramips_main.c "Byte queue limits are a mechanism to limit the size of the transmit hardware queue on a NIC by number of bytes. The goal of these byte limits is too reduce latency (HOL blocking) caused by excessive queuing in hardware (aka buffer bloat) without sacrificing throughput." Signed-off-by: Tobias Diedrich <ranma+openwrt@tdiedrich.de> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31844 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: don't read RAMIPS_RX_CALC_IDX0 register in the loopjuhosg2012-02-261-1/+3
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30733 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: raeth: add rx_info structurejuhosg2012-02-262-24/+57
| | | | | | | | | | | | | This helps to reduce code size on RX path: add/remove: 0/0 grow/shrink: 3/1 up/down: 68/-56 (12) function old new delta ramips_eth_open 1104 1144 +40 ramips_ring_free 212 232 +20 ramips_eth_stop 400 408 +8 ramips_eth_rx_hw 648 592 -56 git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30732 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: raeth: add tx_info structurejuhosg2012-02-262-19/+55
| | | | | | | | | | | | | | This helps to reduce code size on TX path: add/remove: 0/0 grow/shrink: 1/4 up/down: 56/-92 (-36) function old new delta ramips_eth_open 1048 1104 +56 ramips_eth_tx_housekeeping 156 148 -8 ramips_ring_free 224 212 -12 ramips_eth_stop 420 400 -20 ramips_eth_hard_start_xmit 480 428 -52 git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30731 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: raeth: don't process disabled interruptsjuhosg2012-02-251-5/+11
| | | | | | Also rename the 'fe_int' variable. git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30713 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: raeth: show interrupt statistics in debugfsjuhosg2012-02-223-0/+105
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30681 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: raeth: add debugfs supportjuhosg2012-02-225-1/+91
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30680 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: raeth: rename main source filejuhosg2012-02-222-0/+2
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30679 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: raeth: add missing Kconfig and Makefilejuhosg2012-02-212-0/+18
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30671 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: move the ethernet driver into a separate directoryjuhosg2012-02-213-0/+0
| | | | | | Also clean up the Kconfig symbols. git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30670 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: rename the spi driverjuhosg2012-02-211-0/+0
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30669 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: merge 3.2 fixesjuhosg2012-02-191-1/+1
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30652 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: raeth: separate ring allocation and setupjuhosg2012-02-161-44/+90
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30573 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: raeth: add a helper function for skb allocationjuhosg2012-02-151-6/+16
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30555 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: raeth: use netdev_alloc_skbjuhosg2012-02-151-2/+3
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30554 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: raeth: add '__packed __aligned(4)' annotation to dma descritor ↵juhosg2012-02-151-2/+2
| | | | | | | | structures This helps GCC to generare more efficient code. git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30553 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: raeth: use 're' instead of 'priv' everywherejuhosg2012-02-151-73/+73
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30552 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: raeth: force link down in ramips_phy_stopjuhosg2012-02-151-7/+6
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30550 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: raeth: serialize ramips_link_adjust callsjuhosg2012-02-151-0/+8
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30549 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: raeth: add PHYLIB supportjuhosg2012-02-152-8/+220
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30547 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: raeth: enable MDIO code for RT3883juhosg2012-02-131-2/+2
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30497 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: add preliminary support for the RT3662/RT3883 SoCsjuhosg2012-02-132-0/+323
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30495 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: include 'linux/module.h' in the ramips_spi driverjuhosg2012-02-121-0/+1
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30475 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: add MDIO bus support for RT288Xjuhosg2012-02-112-2/+154
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30455 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: raeth: make debugging messages configurablejuhosg2012-02-111-3/+9
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30450 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: raeth: use device pointer in DMA API callsjuhosg2012-02-111-11/+12
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30449 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: raeth: add netdev pointer to private structurejuhosg2012-02-112-0/+2
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30448 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: raeth: cleanup DMA API usage in ramips_eth_hard_start_xmitjuhosg2012-02-111-5/+4
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30447 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: raeth: unmap rx DMA address in ramips_cleanup_dmajuhosg2012-02-111-1/+4
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30446 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: raeth: add rx_dma array to store the DMA address of the rx packetsjuhosg2012-02-112-10/+17
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30445 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: raeth: use dma_addr_t for the descriptorsjuhosg2012-02-112-9/+10
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30444 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: raeth: unmap DMA memory when a packet is receivedjuhosg2012-02-111-0/+4
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30443 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: raeth: add a temporary pktlen variablejuhosg2012-02-111-3/+6
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30442 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: raeth: protect macro parametersjuhosg2012-02-111-4/+4
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30441 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: raeth: indicate dropped packets in statsjuhosg2012-02-111-0/+2
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30440 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: raeth: use the NUM_TX_DESC for the tx_skb arrayjuhosg2012-02-111-1/+1
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30439 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ramips: Rework ramips_eth to not require irqsave locking anymoreblogic2012-01-171-6/+9
| | | | | | | | | | | | | | | | | Previously the tx housekeeping was done in a spin_lock_irqsave critical section which causes irqs to be disabled during that time. Since the housekeeping is already prepared to be scheduled as a tasklet process the housekeeping only in softirq context and revise the locking between the tx path and the housekeeping tasklet by using a normal spin_lock which in most situations will be a NOP anyway. This makes sure that interrupts are only disabled for a short time since in the worst case the housekeeping might have to free up to 256 skbs. Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29762 3c298f89-4303-0410-b956-a3cf2f4a3e73