Commit graph

95 commits

Author SHA1 Message Date
Gabor Juhos
e4720dfa95 ramips: Add byte queue limits support to net/ethernet/ramips_main.c
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>

SVN-Revision: 31844
2012-05-23 21:05:23 +00:00
Gabor Juhos
72599f0c61 ramips: don't read RAMIPS_RX_CALC_IDX0 register in the loop
SVN-Revision: 30733
2012-02-26 10:54:13 +00:00
Gabor Juhos
100f76a010 ramips: raeth: add rx_info structure
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

SVN-Revision: 30732
2012-02-26 10:54:12 +00:00
Gabor Juhos
32e7b1c7d9 ramips: raeth: add tx_info structure
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

SVN-Revision: 30731
2012-02-26 10:54:10 +00:00
Gabor Juhos
30143b715c ramips: raeth: don't process disabled interrupts
Also rename the 'fe_int' variable.

SVN-Revision: 30713
2012-02-25 11:59:19 +00:00
Gabor Juhos
a18a821733 ramips: raeth: show interrupt statistics in debugfs
SVN-Revision: 30681
2012-02-22 13:06:44 +00:00
Gabor Juhos
214216c04d ramips: raeth: add debugfs support
SVN-Revision: 30680
2012-02-22 13:06:42 +00:00
Gabor Juhos
c1e4d709fa ramips: raeth: rename main source file
SVN-Revision: 30679
2012-02-22 13:06:41 +00:00
Gabor Juhos
5e6bc97d0c ramips: raeth: add missing Kconfig and Makefile
SVN-Revision: 30671
2012-02-21 09:44:30 +00:00
Gabor Juhos
3ba0f4e1ca ramips: move the ethernet driver into a separate directory
Also clean up the Kconfig symbols.

SVN-Revision: 30670
2012-02-21 09:26:43 +00:00
Gabor Juhos
f8a56dc8df ramips: raeth: separate ring allocation and setup
SVN-Revision: 30573
2012-02-16 08:17:50 +00:00
Gabor Juhos
8b8d9a8336 ramips: raeth: add a helper function for skb allocation
SVN-Revision: 30555
2012-02-15 18:33:42 +00:00
Gabor Juhos
e57546de83 ramips: raeth: use netdev_alloc_skb
SVN-Revision: 30554
2012-02-15 18:33:41 +00:00
Gabor Juhos
064855314b ramips: raeth: add '__packed __aligned(4)' annotation to dma descritor structures
This helps GCC to generare more efficient code.

SVN-Revision: 30553
2012-02-15 18:33:40 +00:00
Gabor Juhos
8c95385d78 ramips: raeth: use 're' instead of 'priv' everywhere
SVN-Revision: 30552
2012-02-15 18:33:38 +00:00
Gabor Juhos
b3b79365f3 ramips: raeth: force link down in ramips_phy_stop
SVN-Revision: 30550
2012-02-15 13:47:52 +00:00
Gabor Juhos
3e7b461431 ramips: raeth: serialize ramips_link_adjust calls
SVN-Revision: 30549
2012-02-15 13:47:50 +00:00
Gabor Juhos
dcb13d4098 ramips: raeth: add PHYLIB support
SVN-Revision: 30547
2012-02-15 06:47:12 +00:00
Gabor Juhos
97e641a0e6 ramips: raeth: enable MDIO code for RT3883
SVN-Revision: 30497
2012-02-13 15:18:03 +00:00
Gabor Juhos
4e1b870f3e ramips: add MDIO bus support for RT288X
SVN-Revision: 30455
2012-02-11 16:49:56 +00:00
Gabor Juhos
8916c02b47 ramips: raeth: make debugging messages configurable
SVN-Revision: 30450
2012-02-11 15:12:10 +00:00
Gabor Juhos
aac3ad4c0e ramips: raeth: use device pointer in DMA API calls
SVN-Revision: 30449
2012-02-11 15:12:08 +00:00
Gabor Juhos
1fd8724e94 ramips: raeth: add netdev pointer to private structure
SVN-Revision: 30448
2012-02-11 15:12:06 +00:00
Gabor Juhos
c6fa11d00f ramips: raeth: cleanup DMA API usage in ramips_eth_hard_start_xmit
SVN-Revision: 30447
2012-02-11 15:12:05 +00:00
Gabor Juhos
2d055f130e ramips: raeth: unmap rx DMA address in ramips_cleanup_dma
SVN-Revision: 30446
2012-02-11 15:12:04 +00:00
Gabor Juhos
7bd7ddcf4e ramips: raeth: add rx_dma array to store the DMA address of the rx packets
SVN-Revision: 30445
2012-02-11 15:12:02 +00:00
Gabor Juhos
647af823d9 ramips: raeth: use dma_addr_t for the descriptors
SVN-Revision: 30444
2012-02-11 15:12:01 +00:00
Gabor Juhos
df5892d1f1 ramips: raeth: unmap DMA memory when a packet is received
SVN-Revision: 30443
2012-02-11 15:11:56 +00:00
Gabor Juhos
617954ca5d ramips: raeth: add a temporary pktlen variable
SVN-Revision: 30442
2012-02-11 15:11:55 +00:00
Gabor Juhos
d1d492eaf9 ramips: raeth: protect macro parameters
SVN-Revision: 30441
2012-02-11 15:11:50 +00:00
Gabor Juhos
8250692359 ramips: raeth: indicate dropped packets in stats
SVN-Revision: 30440
2012-02-11 15:11:49 +00:00
Gabor Juhos
c67adbbddb ramips: raeth: use the NUM_TX_DESC for the tx_skb array
SVN-Revision: 30439
2012-02-11 15:11:47 +00:00
John Crispin
a2708d11e8 ramips: Rework ramips_eth to not require irqsave locking anymore
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>

SVN-Revision: 29762
2012-01-17 11:23:11 +00:00
Gabor Juhos
7b1e525b56 ramips: initial support for Sitecom WL-351 v1 002
This add support for the Sitecom WL-351 v1 002.
In principle the Engenius ESR9850 should also work with this, but I
don't have the hardware to test it.

Since an external gigabit switch (RTL8366RB) is used,
I had to modify the ramips_esw driver to add a 'bypass' mode, which
just configures it to not filter the vlan tags.
Also two initialization words (FCT2 and FPA2) are set to different
values by u-boot than what the driver is using and it only seems to
work correctly when they not overridden by the driver, so I
added them to the platform specific data as reg_initval_fct2 and
reg_initval_fpa2.

With this wired lan works as expected, however I'm still having some
trouble with the wireless lan:
It only works after I rmmod & re-insmod rt2800pci and then
reconfigure it in the webinterface, but not directly after
rebooting.

The symptom of this is wpad saying:
Dec 20 15:45:09 OpenWrt daemon.info hostapd: wlan1: STA <notebookmac> IEEE 802.11: associated (aid 1)
Dec 20 15:45:09 OpenWrt daemon.info hostapd: wlan1: STA <notebookmac> WPA: pairwise key handshake completed (RSN)
Dec 20 15:45:22 OpenWrt daemon.info hostapd: wlan1: STA <notebookmac> IEEE 802.11: authenticated

But wpa_supplicant on the client saying:
Authentication with <wl351mac> timed out.

Signed-off-by: Tobias Diedrich <ranma+openwrt@tdiedrich.de>

SVN-Revision: 29604
2011-12-23 14:27:16 +00:00
Gabor Juhos
2cb946f5b4 ramips: add support for the Senao/EnGenius ESR-9753 board
Signed-off-by: Artur Wronowski <arteqw@gmail.com>

SVN-Revision: 29603
2011-12-23 14:27:10 +00:00
Gabor Juhos
1ebcf03789 ramips: allow to specify port layout for the switch of the RT305x/RT3350
Based on a patch by Roman Yeryomin <roman@advem.lv>

SVN-Revision: 27990
2011-08-15 14:11:43 +00:00
Gabor Juhos
381d7f05af ramips: fix a section mismatch warning
SVN-Revision: 27382
2011-07-03 15:01:46 +00:00
Gabor Juhos
b99a637795 ramips: ramips_esw: fix typos
Patch from #8577.

SVN-Revision: 24898
2011-01-04 13:44:05 +00:00
Gabor Juhos
502d21dc2a ramips: ramips_esw: add more definitions
SVN-Revision: 24340
2010-12-08 10:15:33 +00:00
Gabor Juhos
bf58ef7c6d ramips: ramips_esw: add helper function to set pvid
SVN-Revision: 24339
2010-12-08 10:15:28 +00:00
Gabor Juhos
692d379b50 ramips: ramips_esw: add helper function to set vlan members
SVN-Revision: 24338
2010-12-08 10:15:25 +00:00
Gabor Juhos
f7c3f91074 ramips: ramips_esw: add helper function to set VLAN id
SVN-Revision: 24337
2010-12-08 10:15:22 +00:00
Gabor Juhos
0d2ad7a816 ramips: ramips_esw: introduce rt305x_esw_rmw{,_raw} function
SVN-Revision: 24336
2010-12-08 10:15:16 +00:00
Gabor Juhos
7b878dde4b ramips: ramips_esw: use rt305x_esw prefix in function names
SVN-Revision: 24335
2010-12-08 10:15:14 +00:00
Gabor Juhos
0fcedc7bda ramips: ramips_esw: coding style cleanup
SVN-Revision: 24334
2010-12-08 10:15:12 +00:00
Gabor Juhos
48e6a31812 ramips: ramips_esw: add defines for switch register offsets
SVN-Revision: 24333
2010-12-08 10:15:07 +00:00
Gabor Juhos
74c13f06df ramips: ramips_esw: don't touch GPIO_PURPOSE register
It must have been set by the board initialization code.

SVN-Revision: 24332
2010-12-08 10:15:04 +00:00
Gabor Juhos
3b9a6adc7d ramips: ramips_esw: convert it to be a platform driver
SVN-Revision: 24331
2010-12-08 10:15:00 +00:00
Gabor Juhos
889729df01 ramips: ramips_esw: move hardware initialization into a separate function
SVN-Revision: 24330
2010-12-08 10:14:58 +00:00
Gabor Juhos
8957f39064 ramips: ramips_esw: use a private structure for the functions
SVN-Revision: 24329
2010-12-08 10:14:54 +00:00