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
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
Gabor Juhos
c6e4124855
ramips: Remove unnecessary skb_put
...
Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
SVN-Revision: 24121
2010-11-24 10:01:08 +00:00
Gabor Juhos
69355ee10e
ramips: Allow ethernet interface to be taken down and up again
...
Taking the ramips ethernet interface down and up again resulted in the
driver not receiving any frames anymore. Fix this by correctly disabling
interrupts in the hw on ifdown.
Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
SVN-Revision: 23243
2010-10-05 14:10:34 +00:00
Gabor Juhos
0d8c036e56
ramips: add mdio_cfg configuration for the ethernet driver
...
SVN-Revision: 22211
2010-07-15 19:45:40 +00:00
Gabor Juhos
d14e9e706e
ramips: Fix bridging in ramips ethernet driver
...
Bridging between the ramips ethernet driver and rt2800pci was somewhat
broken. Frames received by the ethernet driver which were passed to the
wifi driver for transmission were sometimes corrupted or sent out with
huge delays.
The reason for this is the missing assignment of skb->tail in the ramips
ethernet driver's rx path resulting in skb->tail pointing to skb->data.
Since skb->tail is used by mac80211 it writes into skb->data which messes
up the frames content.
Fix this by using skb_put to correctly set skb->len and skb->tail.
Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
SVN-Revision: 22172
2010-07-13 16:52:07 +00:00
Gabor Juhos
4267623e2e
ramips_eth: cleanup mac_address changing
...
SVN-Revision: 19464
2010-01-31 17:56:36 +00:00
Gabor Juhos
b16aaf5fac
ramips_eth: update register offsets
...
SVN-Revision: 19463
2010-01-31 17:56:33 +00:00
Gabor Juhos
72b08b729a
ramips_eth: pass sys_clk via platform_data
...
SVN-Revision: 19462
2010-01-31 17:56:30 +00:00
Gabor Juhos
9ab88ce62d
ramips_eth: add helper functions to {ed,dis}able interrupts
...
SVN-Revision: 19446
2010-01-31 12:48:53 +00:00
Gabor Juhos
224edd2575
ramips_eth: remove unnecessary typecasts
...
SVN-Revision: 19445
2010-01-31 12:48:51 +00:00
Gabor Juhos
8aceaf96be
ramips_eth: simplify tx_next computation
...
SVN-Revision: 19444
2010-01-31 12:48:48 +00:00
Gabor Juhos
21b06bd2c0
ramips_eth: simplify tx descriptor initialization
...
SVN-Revision: 19443
2010-01-31 12:48:46 +00:00
Gabor Juhos
d0fb66e3a4
ramips_eth: pass 'raeth_priv' struct directly to dma specific functions
...
SVN-Revision: 19442
2010-01-31 12:48:43 +00:00
Gabor Juhos
f0be6ab20c
ramips_eth: convert to use netdev_ops
...
SVN-Revision: 19440
2010-01-31 12:48:38 +00:00
Gabor Juhos
d37975f6b2
ramips_eth: fix invalid register writes
...
SVN-Revision: 19417
2010-01-30 15:26:02 +00:00
Gabor Juhos
43e1dd85c2
ramips_eth: move memset call out from the loop
...
SVN-Revision: 19416
2010-01-30 15:25:59 +00:00
Gabor Juhos
ea4ce3b6fd
ramips_eth: header file cleanup
...
SVN-Revision: 19415
2010-01-30 15:25:57 +00:00
Gabor Juhos
67cd819da6
ramips_eth: coding style cleanup
...
SVN-Revision: 19414
2010-01-30 15:25:55 +00:00
John Crispin
9364f83dbc
missing header file changes, and fix mtu value
...
SVN-Revision: 18220
2009-10-30 09:18:40 +00:00
John Crispin
ff5deeef08
fixes rx path for eth, spinlock it, increases buffer size, board now survives ping -f
...
SVN-Revision: 18212
2009-10-29 21:08:11 +00:00
John Crispin
135111a05b
hopefully fixes dma issues seen on ethernet driver when under high load
...
SVN-Revision: 18203
2009-10-29 12:51:45 +00:00
Gabor Juhos
bc59e3da51
ramips: move 'arch/mips/include/asm/mach-ralink/eth.h' to 'drivers/net/ramips_eth.h'
...
SVN-Revision: 18176
2009-10-26 17:17:51 +00:00
Gabor Juhos
c170980c4f
ramips: move ramips_eth_platform_data into a separate file
...
SVN-Revision: 18174
2009-10-26 17:17:45 +00:00
Gabor Juhos
b98fa096a6
ramips: request_irq prior to dma allocation, and handle the case if it fails
...
SVN-Revision: 18173
2009-10-26 17:17:42 +00:00
Gabor Juhos
08f77d2e7e
ramips: add error handling to ramips_alloc_dma
...
SVN-Revision: 18172
2009-10-26 17:17:39 +00:00
Gabor Juhos
941c1dae2c
ramips: free allocated skbs in ramips_cleanup_dma
...
SVN-Revision: 18171
2009-10-26 17:17:37 +00:00
Gabor Juhos
82cc25d5f0
ramips: add ramips_setup_dma helper to the ethernet driver
...
SVN-Revision: 18170
2009-10-26 17:17:34 +00:00
Gabor Juhos
f69b042df9
ramips: add ramips_cleanup_dma helper
...
SVN-Revision: 18169
2009-10-26 17:17:29 +00:00
Gabor Juhos
defb7c0059
ramips: remove unnecessary includes in the ethernet driver
...
SVN-Revision: 18168
2009-10-26 17:17:26 +00:00
Gabor Juhos
36cb733d4f
ramips: fix dma api usage in the ethernet driver
...
SVN-Revision: 18167
2009-10-26 17:17:22 +00:00
Gabor Juhos
69a3298ab5
ramips: use resource to pass irq and base address to the ethernet driver
...
SVN-Revision: 18166
2009-10-26 17:17:18 +00:00
Gabor Juhos
7c7f004875
ramips: add error-path handling to the ramips_eth_plat_probe
...
SVN-Revision: 18165
2009-10-26 17:17:13 +00:00
John Crispin
f1ad6d3768
fixes licenses
...
SVN-Revision: 18152
2009-10-25 17:41:01 +00:00
John Crispin
6f63d7baf2
clean up dma api of ethernet driver
...
SVN-Revision: 18150
2009-10-25 16:58:00 +00:00
John Crispin
9126be5b6e
fixes dma bug in eth driver, that was caused under high net load. the dma ring was not initialized on time
...
SVN-Revision: 18149
2009-10-25 14:34:55 +00:00
Gabor Juhos
984fe7992a
ramips: nuke net_device stats from the private data of the ethernet driver
...
SVN-Revision: 18147
2009-10-25 09:37:30 +00:00
Gabor Juhos
ec836476b0
ramips: remove unnecessary type-castings in the ethernet driver
...
SVN-Revision: 18146
2009-10-25 09:37:27 +00:00
Gabor Juhos
ac92dc42d4
ramips: change debug message levels, and add missing LFs
...
SVN-Revision: 18145
2009-10-25 09:37:24 +00:00
Gabor Juhos
0fe967f6e6
ramips: make ethernet fuctions static
...
SVN-Revision: 18144
2009-10-25 09:37:21 +00:00
John Crispin
c23f92244c
fixes dma hangups in eth
...
SVN-Revision: 18139
2009-10-25 00:11:08 +00:00
John Crispin
eff75d868b
make ethernet a platform device
...
SVN-Revision: 18135
2009-10-24 20:58:41 +00:00
John Crispin
81e5a2d14b
make default llll/w vlan setup in esw
...
SVN-Revision: 18133
2009-10-24 20:56:31 +00:00
John Crispin
d95163658c
adds ethernet driver, esw needs to be moved to swconfig, driver is missing rt288x support, not a platform device yet
...
SVN-Revision: 18128
2009-10-23 16:51:51 +00:00