Commit Graph

116 Commits (fca519e06da8a0268efc1fa20bdcdccb6497fe96)

Author SHA1 Message Date
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 169d68c98c ramips: rt305x: add dwc_otg driver
Based on a patch by Layne Edwards <ledwards@astrumtech.net>

SVN-Revision: 27997
2011-08-15 14:11:55 +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 57122e7ccc ramips: add SPI controller driver
Based on a patch by Sergiy <piratfm@gmail.com>

SVN-Revision: 27809
2011-07-28 10:56:25 +00:00
Gabor Juhos 381d7f05af ramips: fix a section mismatch warning
SVN-Revision: 27382
2011-07-03 15:01:46 +00:00
Gabor Juhos 16366feafb ramips: add watchdog driver
SVN-Revision: 25126
2011-01-26 20:48:41 +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