Commit Graph

132 Commits

Author SHA1 Message Date
Felix Fietkau
523fcf0497 ar71xx: add a new driver for the ar7240 switch using swconfig. hooks directly into the ethernet driver, as MAC resets also require switch reinitializations and the switch is part of the cpu core anyway switch only tl-wr741nd (and other devices using this board file, such as tl-wr841nd) over to using this by default, as other devices are still untested fixes #7563
SVN-Revision: 22675
2010-08-16 19:21:57 +00:00
Felix Fietkau
a27ea45e76 ar71xx: only reinit the ethernet MAC at .open() on ar724x for now, until we've figured out what part of it causes the issue described in #7563
SVN-Revision: 22075
2010-07-06 12:40:07 +00:00
Felix Fietkau
15b209d09f ag71xx: reset the hardware during open(), this improves recovery from tx timeouts on ar724x considerably
SVN-Revision: 22055
2010-07-04 02:15:08 +00:00
Felix Fietkau
89da22d1ea ag71xx: fix a memory corruption bug that happens if you flood the interface with packets while it's being brought down fixes boot time crashes under load reported by matteo
SVN-Revision: 22054
2010-07-04 01:31:33 +00:00
Felix Fietkau
7966004d99 ag71xx: remove rx alignment code for small packets, it seems to break ipv6 for some reason (fixes #7236)
SVN-Revision: 21166
2010-04-26 16:39:13 +00:00
Felix Fietkau
1c0e751391 ar71xx: fix up alignment handling
- on ar724x, rx buffers can be aligned with an offset of 2, which keeps the ip header aligned
- alignment offset is only added if the ar8216 workaround is not active and the phy driver does not advertise its own packet alignment
- ar71xx and ar91xx can not handle rx alignment offsets, however taking a hit on unaligned exceptions seems to have less overhead than re-aligning the data for large packets
- use memmove to re-align small packets, if necessary

tested on ar9132, ar7240 and ar7242 based devices without ar8216 headers

SVN-Revision: 20892
2010-04-15 23:31:17 +00:00
Gabor Juhos
4c29a2c263 ar71xx: ag71xx: avoid unalinged accesses when using the phy specific receive functions
Cc: backfire@openwrt.org

SVN-Revision: 20751
2010-04-09 08:40:06 +00:00
Gabor Juhos
4a28844d80 ar71xx: ag71xx: call the phy driver's netif_receive_skb()
Ag71xx needs to call the phy's netif_receive_skb() to allow phy drivers
to mangle rx packets. This patch fixes it.

This fixes the header mangling of the AR8216 driver.

Signed-off-by: Jonas Gorski <jonas.gorski+openwrt@gmail.com>
Cc:backfire@openwrt.org

SVN-Revision: 20750
2010-04-09 08:38:46 +00:00
Gabor Juhos
c874513cfa ar71xx: fix broken LAN ports on the boards with AR8216 switch (closes #7024)
* cc: backfire@openwrt.org

SVN-Revision: 20673
2010-04-03 13:59:08 +00:00
Gabor Juhos
b7ca043240 ar71xx: ag71xx: copy received packet to avoid unaligned access in the IP stack
SVN-Revision: 20506
2010-03-27 13:05:27 +00:00
Gabor Juhos
f9acf8ada1 ar71xx: ag71xx: introduce ag71xx_has_ar8216() helper
SVN-Revision: 20505
2010-03-27 13:05:24 +00:00
Gabor Juhos
200db5ebb5 ar71xx: ag71xx: reorganize ag71xx_rx_packet function
SVN-Revision: 20504
2010-03-27 13:05:20 +00:00
Gabor Juhos
245775a49f ar71xx: ag71xx: Add netpoll support
This patch adds support for polling interrupts, used by
netconsole and the likes.

Tested on d-link dir-615 C1 using netconsole.

Signed-off-by: Pat Erley <pat-lkml@erley.org>

SVN-Revision: 20503
2010-03-27 13:05:17 +00:00
Andy Boyett
681054333e wrt400n: lan ports don't need the ar8216 workaround
SVN-Revision: 20491
2010-03-26 19:09:11 +00:00
Gabor Juhos
9a1031ce6d ar71xx: change PHY select logic, and update phy_masks
SVN-Revision: 20358
2010-03-21 18:16:07 +00:00
Gabor Juhos
2a818f388a ar71xx: ag71xx: fix MAC address setup
SVN-Revision: 20092
2010-03-09 18:05:36 +00:00
Gabor Juhos
2702ae4e8f ar71xx: ag71xx: move calling ag71xx_phy_stop out from spinlock
SVN-Revision: 20004
2010-03-05 20:29:22 +00:00
Gabor Juhos
a4bccded57 ar71xx: ag71xx: move link update function
SVN-Revision: 20003
2010-03-05 20:29:18 +00:00
Gabor Juhos
eacf9a7614 ar71xx: ag71xx: don't use dev->trans_start
SVN-Revision: 20002
2010-03-05 20:29:14 +00:00
Gabor Juhos
ba288eeb84 ar71xx: ag71xx: use dma_unmap_single to unmap frames
SVN-Revision: 20001
2010-03-05 20:29:10 +00:00
Gabor Juhos
0e4eaea770 ar71xx: ag71xx: use correct device pointer for dma_map_single
SVN-Revision: 19951
2010-03-02 13:36:18 +00:00
Gabor Juhos
84823e1477 ar71xx: ag71xx: don't use virt_to_phys
SVN-Revision: 19950
2010-03-02 13:36:15 +00:00
Gabor Juhos
4a987d6008 ar71xx: ag71xx: simplify register access functions
SVN-Revision: 19949
2010-03-02 13:36:12 +00:00
Gabor Juhos
e157281c5d ar71xx: ag71xx: use NETDEV_TX_OK
SVN-Revision: 19948
2010-03-02 13:36:09 +00:00
Gabor Juhos
1612fd447d ar71xx: enable TX/RX flow control on the AR7240
SVN-Revision: 19832
2010-02-24 13:38:41 +00:00
Gabor Juhos
49c4df5487 rtl8366: make it available on all platforms
SVN-Revision: 19329
2010-01-25 15:13:38 +00:00
Gabor Juhos
97b983c8b9 rtl8366s: simplify mib counters handling
SVN-Revision: 19326
2010-01-25 14:24:53 +00:00
Gabor Juhos
2b5ba9073f rtl8366_smi: move RTL8366S driver into a separate file
SVN-Revision: 19279
2010-01-22 17:38:07 +00:00
Gabor Juhos
46b0e6643a rtl8366_smi: rename rtl8366s specific functions and definitions
SVN-Revision: 19278
2010-01-22 17:37:58 +00:00
Gabor Juhos
08055fd6d1 rtl8366_smi: move chip specific stuff into its own struct
SVN-Revision: 19277
2010-01-22 17:37:53 +00:00
Gabor Juhos
de751af190 rtl8366_smi: separate gpio initialization
SVN-Revision: 19276
2010-01-22 17:37:50 +00:00
Gabor Juhos
a1247d2f83 rtl8366_smi: store GPIO numbers directly in the rtl8366_smi struct
SVN-Revision: 19275
2010-01-22 17:37:47 +00:00
Gabor Juhos
ab278275ee rtl8366_smi: store device pointer instead of plaform_device
SVN-Revision: 19274
2010-01-22 17:37:41 +00:00
Gabor Juhos
edfa82ab60 rtl8366_smi: rename switch attribute handlers
SVN-Revision: 19254
2010-01-21 12:13:43 +00:00
Gabor Juhos
7aefde9f66 rtl8366_smi: simplify rtl8366_attr_get_port_link function
SVN-Revision: 19250
2010-01-20 20:36:30 +00:00
Gabor Juhos
83fb9f73e1 rtl8366_smi: make rtl8366_phy_config_{aneg,init} static
SVN-Revision: 19249
2010-01-20 20:36:27 +00:00
Gabor Juhos
cad07a09c1 rtl8366_smi: simplify rtl8366_{get,set}_port_vlan_index functions
SVN-Revision: 19248
2010-01-20 20:36:24 +00:00
Gabor Juhos
50849c6cff rtl8366_smi: minor code optimalizations
SVN-Revision: 19247
2010-01-20 20:36:21 +00:00
Gabor Juhos
3e6b3ea088 rtl8366_smi: coding style cleanup
SVN-Revision: 19246
2010-01-20 17:40:39 +00:00
Gabor Juhos
5e5451a54d rtl8366_smi: add Kconfig option for the debugfs stuff
SVN-Revision: 19243
2010-01-20 09:30:36 +00:00
Gabor Juhos
0d48b043b1 rtl8366_smi: fix error checking in rtl8366s_set_vlan_4k_entry
SVN-Revision: 19242
2010-01-20 09:30:32 +00:00
Gabor Juhos
0296b24f80 rtl8366_smi: fix parameter checking in rtl8366_attr_get_vlan_info
SVN-Revision: 19241
2010-01-20 09:30:25 +00:00
Gabor Juhos
743e7617b0 rtl8366_smi: fix return codes in rtl8366s_reset_vlan
SVN-Revision: 19240
2010-01-20 07:06:18 +00:00
Gabor Juhos
43815d730b rtl8366_smi: move variable initialization out from the loop
SVN-Revision: 19239
2010-01-20 07:06:15 +00:00
Gabor Juhos
fbc389ae9d rtl8366_smi: fix port->flags calculation in rtl8366_get_ports
SVN-Revision: 19237
2010-01-20 07:06:10 +00:00
Gabor Juhos
c4838a0f9e rtl8366_smi: use inline function instead of a macro on top of container_of
SVN-Revision: 19215
2010-01-18 09:01:40 +00:00
Felix Fietkau
88ddc59655 rtl8366_smi: reset the vlan table when resetting the switch and use vlan get/set ports for vlan member lists
SVN-Revision: 19206
2010-01-18 00:12:12 +00:00
Felix Fietkau
b228fd428a rtl8366_smi: fix excessive stack usage and buffer handling bugs
SVN-Revision: 19205
2010-01-18 00:12:07 +00:00
Felix Fietkau
8394a32815 ar71xx: fix return statement in the rtl8366 driver
SVN-Revision: 19204
2010-01-17 22:57:08 +00:00
Gabor Juhos
d2229cb1cc rtl8366_smi: register the switch directly from the probe routine
SVN-Revision: 19202
2010-01-17 21:37:09 +00:00