| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
completed
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 42457
|
|
|
|
|
|
|
|
| |
(#13072)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 42429
|
|
|
|
|
|
| |
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 42428
|
|
|
|
|
|
|
|
| |
tx hangs in some setups
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 42333
|
|
|
|
|
|
|
|
|
|
|
| |
This improves performance when doing concurrent rx/tx on a single
ethernet MAC, e.g. when routing between VLANs.
Fixes #13072
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 42328
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The r39147 commit introduces a regression: at lease on some routers
with ar8216 switch large packets get lost if 802.1q tagged port is
used on the interface connected to the aforementioned switch.
The r39147 changes code in the way so interface is set to accept
packets no longer than max ethernet frame length for a given mtu.
Unfortunately ar8216 has a feature: it sends two additional bytes
as a packet header and those this header needs to be added to the
max frame length. Otherwise long enough packets get lost.
The problem only manuifests itself if interface is used in vlan
tagged mode. If interface is untagged then ar8216's header fits
into space used by 802.1q tag and not packets are lost.
Include two additional bytes in the max frame length calculation
to fix the issue.
This patch is tested and works with Trendnet TEW-632BRP.
Signed-off-by Nikolay Martynov <mar.kolya@gmail.com>
Patchwork: http://patchwork.openwrt.org/patch/4656/
[juhosg:
- simplify the patch to include the additional bytes of the
switch header unconditionally,
- change subject and update commit message]
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 39219
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Set the MAX_FRAME_LEN register to zero in ag71xx_hw_init()
and write the correct value into that from the ag71xx_open()
and ag71xx_fast_reset() functions.
Also recalculate the RX buffer size based on the actual
maximum frame length value to optimize memory allocation.
Additionaly, disallow to change the MTU value while the
interface it running.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 39147
|
|
|
|
|
|
| |
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 39146
|
|
|
|
|
|
|
|
| |
This will allow to use SoC specific values for both.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 39145
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The currently used bitmask is not correct for all SoCs.
Introduce a new field in struct ag71xx and store the
bitmask in that. Use the current value for now, it will
be adjusted for each SoCs in further patches.
Aslo use the new field directly in the ag71xx_rx_packets
and ag71xx_hard_start_xmit() functions and remove the
ag71xx_desc_pktlen() helper.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 39144
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, the AG71XX_RX_PKT_SIZE value limits the received
frame size to 1514/1516 bytes with/without a VLAN header
respectively. However the hardware limit is controlled by
the value the AG71XX_REG_MAC_MFL register which contains
the value of the max_frame_len field.
Compute the RX buffer size from the max_frame_len field
to get rid of the 1514/1516 byte limitation. Also remove
the unused AG71XX_RX_PKT_SIZE definition.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 39121
|
|
|
|
|
|
|
|
| |
This allows to change the value dynamically.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 39120
|
|
|
|
|
|
|
|
|
| |
This will allow to use different values for the
different SoCs.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 39117
|
|
|
|
|
|
|
| |
Signed-off-by: Catalin Patulea <cat@vv.carleton.ca>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 38716
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In particular, phy_connect before register_netdev. This is because
register_netdev runs the netdev notifiers, which can race with the rest of
the initialization in ag71xx_probe. In my case this manifested in two ways:
1) If ag71xx is compiled as a module and inserted after netifd has started,
netifd is notified by register_netdev before the call to
ag71xx_phy_connect. netifd tries to bring the interface up, which calls
ag71xx_open, which in turn enters ag71xx_phy_start. This keys off
ag->phy_dev (which is still NULL) and thinks this is a fixed-link board,
and enters ag71xx_link_adjust. This looks at ag->speed which is not yet
initialized and hits the BUG() in the switch (ag->speed) in
ag71xx_link_adjust.
This is the wrong code path for ag71xx_phy_start - my board has PHYs that
need to be brought up with phy_start. Doing ag71xx_phy_connect before
register_netdev ensures that ag->phy_dev is non-NULL before
ag71xx_phy_start is ever called.
2) When ag71xx is built into the kernel, and netconsole is enabled, there
is a gap in the initial burst of replayed printks right after the netdev
comes up. My assumption is that netconsole is also triggered by a netdev
notifier, and part of this printk burst happens before the call into
ag71xx_phy_connect, so part of the burst is lost while the PHY comes up.
This patch fixes the gap - all the printks before eth0 comes up are bursted
in full when netconsole initializes.
ag71xx_phy_connect_xxx no longer runs with a registered netdev, so the
logging has been adjusted accordingly to avoid "unregistered net_device" or
"eth%d" messages in dmesg.
Signed-off-by: Catalin Patulea <cat@vv.carleton.ca>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 38689
|
|
|
|
|
|
|
|
|
|
| |
again in completion
Improves ethernet performance, especially during bridging
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 37761
|
|
|
|
|
|
| |
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 37759
|
|
|
|
|
|
|
|
| |
if no tx cleanup was done
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 37758
|
|
|
|
|
|
| |
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 37757
|
|
|
|
|
|
| |
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 37756
|
|
|
|
|
|
| |
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 37748
|
|
|
|
|
|
| |
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 35687
|
|
|
|
|
|
| |
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 34880
|
|
|
|
|
|
|
|
|
|
| |
The mii_bus device is not required if phy_mask is zero.
The driver will use a fixed connection if it is not
specified.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 34849
|
|
|
|
|
|
|
|
| |
Also add a compatibility patch for 3.3
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 33969
|
|
|
|
|
|
| |
deliver a cache-hot skb to the network stack
SVN-Revision: 31934
|
|
|
|
|
|
| |
having to keep non-upstream ethernet driver changes
SVN-Revision: 31637
|
|
|
|
|
|
|
|
| |
It will be usable only from linux-3.3.
Based on a patch by Dave Taht <dave.taht@bufferbloat.net>
SVN-Revision: 30417
|
|
SVN-Revision: 30405
|