Commit graph

92 commits

Author SHA1 Message Date
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
Gabor Juhos
64b16b9f34 ramips: Use NET_IP_ALIGN instead of hardcoding 2
Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>

SVN-Revision: 24124
2010-11-24 10:01:18 +00:00
Gabor Juhos
624cfc5c91 ramips: DMA map the correct RX skb size
The skb_reserve call prior to DMA mapping the RX skb reduced the skb
data len by 2. To not allow DMA to write behind the skb we should pass
the correct skb data len to the device.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>

SVN-Revision: 24123
2010-11-24 10:01:16 +00:00
Gabor Juhos
f833e399f2 ramips: Don't trigger BUG_ON due to skb allocation failure
Instead just drop the rx'ed frame silently and reuse the already
available buffer.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>

SVN-Revision: 24122
2010-11-24 10:01:12 +00:00