We already clean up tx descriptors in the napi eth_poll() function so it
would likely be rare to run out of available descriptors in eth_xmit. Thus
we can clean them up only when needed and return busy only when we
still don't have enough.
Signed-off-by: Tim Harvey <tharvey@gateworks.com>
SVN-Revision: 39762
The combination of r35942 and r35952 causes an issue where eth_schedule_poll()
can be called from a different CPU between the call to napi_complete() and the
setting of cur_index which can break the rx ring accounting and cause ethernet
latency and/or ethernet stalls. The issue can be easilly created by adding
a couple of artificial delays such as:
@@ -715,6 +715,7 @@ static int eth_poll(struct napi_struct *napi, int budget)
if (!received) {
napi_complete(napi);
+udelay(1000);
enable_irq(IRQ_CNS3XXX_SW_R0RXC);
}
@@ -727,6 +728,7 @@ static int eth_poll(struct napi_struct *napi, int budget)
rx_ring->cur_index = i;
wmb();
+udelay(1000);
enable_rx_dma(sw);
return received;
This patch moves the setting of cur_index back up where it needs to be and
addresses the original corner case that r35942 was trying to catch in an
improved fashion by checking to see if the rx descriptor ring has become
full before interrupts were re-enabled so that a poll can be scheduled again
and avoid an rx stall caused by rx interrupts ceasing to fire again.
Signed-off-by: Tim Harvey <tharvey@gateworks.com>
SVN-Revision: 39761
The IMX6 SoC uses an ARM Cortext-A9 which has both NEON and VFPv3 hardware
blocks. This will tune gcc to use neon instead of vfpv3 which will outperform
VFPv3.
Signed-off-by: Tim Harvey <tharvey@gateworks.com>
SVN-Revision: 39760
The OpenWrt build system uses MACHINE_FEATURES of fpu to set the HAS_FPU which
in turn sets the default of CONFIG_SOFT_FLOAT as well as uClibc configuration.
As the IMX6 SoC has both vfpv3 and NEON hardware support we want to add fpu
to the feature list. This will default the IMX6 target to use -mfloat-abi=hard
which will the be most efficient use of floating point.
When switching to hard float, we also need to enable VFP support in the kernel.
Signed-off-by: Tim Harvey <tharvey@gateworks.com>
SVN-Revision: 39759
We were copying the actual vmlinux-initramfs.elf kernel which cannot be
launched by QEMU or a real bootloader, use zImage-initramfs instead.
Signed-off-by: Florian Fainelli <florian@openwrt.org>
SVN-Revision: 39756
The ar71xx platform always uses the eth0 interface to provide
access to the device in failsafe mode. Due to this, failsafe
access is broken on devices where the LAN ports are connected
to the 'eth1' interface.
Update the relevant script to correctly set the ifname variable
for these devices.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 39752
Add support for 3.13 as a development kernel. Mostly untested, only net
booted. If flashed may brick your router or kill your cat.
Signed-off-by: Jonas Gorski <jogo@openwrt.org>
SVN-Revision: 39746
Let the switch start the carrier and set the duplex mode independently
if this nic is up of not.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 39733
We did not start the PHY when an external phy was in use. Without this
patch the driver uses half duplex mode and the switch uses full duplex
mode, which causes problems.
Thank you fback for spotting this problem.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 39719
The RB91x boards are using a serial shift register
connected to the SPI bus to drive some of the LEDs.
Rework the board setup code to register a SPI device
for that. This makes it possible to use the 'spi-74x164'
driver to control the device.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 39703
That will be used to drive the 74HC595 serial-in/parallel-out
8-bits shift register which can be found on some RouterBOARDs.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 39702
The serial flash devices used on the ROuterBOARDs are
supporting 4KiB erase blocks. Enable the small sector
erase option in the m25p80 driver to avoid superfluous
erase/write of adjacent blocks.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 39696
This is a backported patch for the gianfar ethernet driver
used in TPLink 4900 v1. It is supposed to fix the error which
show up in dmesg with:
NETDEV WATCHDOG: eth0 (fsl-gianfar): transmit queue xy timed out
Full upstream patch is at: http://patchwork.ozlabs.org/patch/271242
Signed-off-by: Thomas Huehn <thomas@net.t-labs.tu-berlin.de>
SVN-Revision: 39692