The ATM subsystem is different from the generic ethernet NICs. The ATM
subsystem requires a callback when a packet has been sent. It means a
tx skb_buff need to be used after it has sent. While the generic NIC
can fill up the TX ring and free skb_buffs if it encounter a ring buffer slot
with an already sent skbuff.
The ATM drivers need call the pop() function after it has send a
single ATM package. The ATM subsystem controls via this ways the queuing.
The ppe engine use DMA channels for read and write. Every atm_vcc has it's
own TX DMA channel and each TX DMA channel has it's own ring buffer.
The old driver had multiple issues:
- Call the subsystem callback at the beginning of tx function (ppe_send).
Didn't allowed the ATM subsystem to control the enqueued package
amount.
- Filled up the TX ring until full and fail futher
- copy or decouple the skb from all other subsystem before giving it
over to TX ring
The new tx path uses interupts.
- call the subsystem callback _after_ it was sent by hardware
- no need to copy our decouple the skb any more
- gives back control to the atm subsystem over the enqueued packages
- use an interupt for every sent atm package
Using interupts shouldn't be a problem because of the slow uplink bandwidth of
ADSL.
The speed _through_ the DSL router was always as high as it should
be, only traffic generated on the router itself were affected.
After changing to new tx path, the speed of iperf's run on the
router itself reached the same speed. The master/trunk wasn't as much
affected because of TCP optimisations (reboot-5022-gb2ea46fe236a).
The following results are taken on the remote server, which receives
the stream over the internet and the DSL line.
The sync moves between every sync a litte bit, but is so far stable
Latency / Interleave Delay: Down: Fast (0.25 ms) / Up: Fast (0.50 ms)
Data Rate: Down: 13.287 Mb/s / Up: 1.151 Mb/s
reboot-5521-g9f8d28285d without patch
[ ID] Interval Transfer Bandwidth Retr
[ 5] 0.00-10.04 sec 947 KBytes 773 Kbits/sec 0 sender
[ 5] 0.00-10.04 sec 928 KBytes 757 Kbits/sec receiver
reboot-5521-g9f8d28285d with patch
[ 5] 0.00-10.06 sec 1.16 MBytes 970 Kbits/sec 0 sender
[ 5] 0.00-10.06 sec 1.15 MBytes 959 Kbits/sec receiver
v17.01.4-239-g55c23e44f4 without patch
[ ID] Interval Transfer Bandwidth Retr
[ 5] 0.00-10.04 sec 87.4 KBytes 71.3 Kbits/sec 0 sender
[ 5] 0.00-10.04 sec 59.6 KBytes 48.7 Kbits/sec receiver
v17.01.4-239-g55c23e44f4 with patch
[ ID] Interval Transfer Bandwidth Retr
[ 5] 0.00-10.05 sec 1.18 MBytes 983 Kbits/sec 1 sender
[ 5] 0.00-10.05 sec 1.15 MBytes 959 Kbits/sec receiver
Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
Renaming an atm etherbride using 'ip link' (via hotplug) is racy since the
original netdev might disappear before br2684ctl has finished appling it's
setting:
local2.notice br2684ctl[1667]: Interface "nas0" created sucessfully
local2.notice br2684ctl[1667]: Communicating over ATM 0.8.35, encapsulation: LLC
kern.info kernel: dsl0: renamed from nas0
kern.err kernel: br2684:br2684_regvcc: tried to attach to non-existent device
local2.err br2684ctl[1667]: Could not configure interface:No such device or address
By passing the final used netdev name to br2684ctl_wrap another race
condition workaround will be enabled again.
Change the lantiq ptm driver to create a netdev with the name dsl as well.
Albeit the rename via 'ip link' works fine so far, using a different
approach for ptm then atm could be confusing.
Signed-off-by: Mathias Kresin <dev@kresin.me>
Due to limitations in the symvers treatment and the mei drivers
exporting the same funtions, modpost might use the wrong mei driver
to link against.
Work around this by renaming them all to the same name, making it
always the "right" module name even if the wrong file was used.
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
Commit 2e496876c6 fixed the generation of the depends line for external
kernel modules which makes it possible for the build system to
automatically detect this missing dependency.
This fixes the packaging of kmod-ltq-atm for the ar9, xway and
xway-legacy subtarget.
Fixes: FS#1124
Signed-off-by: Mathias Kresin <dev@kresin.me>
Commit 2e496876c6 fixed the generation of the depends line for external
kernel modules which makes it possible for the build system to
automatically detect this missing dependency. This fixes the build bot
build of the lantiq/aes target.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
The lantiq ATM driver is load for all subtargets on demand now. There
is not need to handle the xrx200 ATM driver in a special way any
longer.
Signed-off-by: Mathias Kresin <dev@kresin.me>
The module fails to compile with falcon. Remove the falcon depends from
the module to not (try to) compile it for falcon any longer.
Signed-off-by: Mathias Kresin <dev@kresin.me>
Albeit ltq-ptm is supported on AmazonSE, the package fails to compile.
Mark the AmazonSE variant as broken to not mark it unnecessary harder
to fix (and test) the compile error.
Signed-off-by: Mathias Kresin <dev@kresin.me>
This reverts commit b428f45c06.
If the optimized firmware download is disabled, the xdsl subsystem
hangs in the "idle request" state after physically disconnecting and
reconnecting the xdsl modem from the line.
It might fix the failing line init on boot as well.
Signed-off-by: Mathias Kresin <dev@kresin.me>
With ltq-vdsl-mei 1.5.17.6 an optimized firmware download was added and
enabled by default. As soon as the optimized firmware download is
enabled, a watchdog based reboot is trigger between 24h to 48h of
uptime if the board isn't connected to a xdsl line.
Signed-off-by: Mathias Kresin <dev@kresin.me>
This is a backport form drv_dsl_cpe_api-4.18.10 and fixes some PM
thread handling issues which lead to high system load and watchdog
trigger within 1h of uptime for boards not connected to a xdsl line.
Signed-off-by: Martin Schiller <ms@dev.tdt.de>
commit 2d6c7c2526 introduced a reference to g_xdata_addr which isn't
defined in that context. Use xdata_addr here instead.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
This is needed to be able to load the ltq-atm/ltq-ptm driver
from a notify script during synchronization, because the line can
reach showtime state before the driver is fully loaded.
Signed-off-by: Martin Schiller <ms@dev.tdt.de>
The ltq-adsl-mei package is used for 3 lantiq device types:
danube, amazon-se and ar9.
These different SoC's need also different definitions.
Signed-off-by: Tino Reichardt <milky-lede@mcmilk.de>
[fix LTQ_USB_OC_INT for AR9 to match documentation]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
- remove unused code within 500-ar9_vr9.patch
- fixed return of IFX_ERROR (solves SIGSEGV in asterisk at failure)
- align it a bit with 400-falcon.patch
- remove 600-kernel-4.9.patch since changed parts
are removed during cleanup
Signed-off-by: Stefan Koch <stefan.koch10@gmail.com>
We do not have the needed platform support for VOICE_CPE_VMMC_PMC. The
vmmc driver will not compile with this option activated.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(required not-distributable firmware blob - dump it by yourself from original firmware)
Signed-off-by: Eddi De Pieri <eddi@depieri.net>
(cherry picked from commit 47b1ff965b0cb57013b40fbe2bcd7f3c6eb6b606)
Modified after cherry-pick:
FW_MD5SUM in Makefile
Signed-off-by: Stefan Koch <stefan.koch10@gmail.com>
(required not-distributable firmware blob - dump it by yourself from original firmware)
Signed-off-by: Eddi De Pieri <eddi@depieri.net>
(cherry picked from commit ea9e61b8eb61a2e362a50541f03466dc7d087947)
Signed-off-by: Stefan Koch <stefan.koch10@gmail.com>
The file to patch doesn't exists. Due to the fact that a src directory
exists, the patch was never applied.
With 28502a9 the behaviour was changed and revealed the issue.
Signed-off-by: Mathias Kresin <dev@kresin.me>
Tested with VDSL on TP-Link WD8970, I see full 1500-byte PPP data
frames, which end up being 1526 byte Ethernet frames (including
Ethernet+VLAN headers) on the wire.
Fixes: FS#210
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
With the default priority of 0, the DEU algos would be overlapped
by the generic algos (if available).
To fix this, set the cra_priority of the hardware algos to the
recommended value of 300/400.
Signed-off-by: Martin Schiller <mschiller@tdt.de>
Add nonshared flag to package depending on specific targets or subtargets as
there's no guarantee otherwise that they'll be available in the shared repo.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This activates the format warnings in this package and that makes it
possible to activate format-security checks.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 48785