Commit Graph

17 Commits

Author SHA1 Message Date
Jan Hoffmann
1700424553 ltq-vdsl-mei: add locking to interrupt handler
Some users noticed repeated resyncs at random intervals, which go away
when the MEI driver is configured to use polling instead of interrupts.
Debugging shows that this seems to be caused by concurrent calls to
MEI_ReadMailbox (in the interrupt handler) and MEI_WriteMailbox. This
appears to be mostly triggered when there is an interrupt for vectoring
error reports.

In polling mode, calls to MEI_ReadMailbox are protected by the same
semaphore as is used in MEI_WriteMailbox. When interrupts are used,
MEI_WriteMailbox appears to rely on MEI_DisableDeviceInt and
MEI_EnableDeviceInt to provide mutual exclusion with the interrupt
handler. These functions mask/unmask interrupts, and there is an
additional check of the mask in the interrupt handler itself. However,
this is not sufficient on systems with SMP, as the interrupt handler
may be running in parallel, and could already be past the interrupt
mask check at this point.

This adds a lock to the interrupt handler, and also acquires this lock
in MEI_DisableDeviceInt. This should make sure that after a call to
MEI_DisableDeviceInt the interrupt is masked, and the interrupt handler
is either not running, has alread finished its work, or is still before
the interrupt mask check, and is thus going to detect the change.

Tested-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Jan Hoffmann <jan@3e8.eu>
2022-03-21 12:28:37 +00:00
Jan Hoffmann
93f0e1f922 ltq-vdsl-mei: enable vectoring error sample callback
This re-enables the vectoring error sample callback and adds a
dependency to the corresponding driver.

Tested-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Jan Hoffmann <jan@3e8.eu>
2022-03-21 12:28:31 +00:00
Hauke Mehrtens
71bdff9139 ltq-vdsl-mei: Remove static linking
This removes -static compile option. The -static option tells GCC to
link this statically with the libc, which we do not want in OpenWrt. We
want to link everything dynamically to the libc. This fixes a compile
problem with glibc.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2022-01-21 23:09:24 +01:00
Mathias Kresin
f4acdf8c42 lantiq: ltq-vdsl-mei: add kernel 5.10 compatiblity
proc_create_data() expects a struct of type proc_ops.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2021-04-12 23:23:09 +02:00
Martin Schiller
eee8ab59dc ltq-vdsl-mei: reset g_tx_link_rate on showtime exit
Without this change, ifx_mei_atm_showtime_check() will always return
"showtime" after one call of MEI_InternalXtmSwhowtimeEntrySignal()
was done, even if MEI_InternalXtmSwhowtimeExitSignal() was called
in the meantime.

The ifx_mei_atm_showtime_check() function is used by the ltq-atm and
ltq-ptm driver.

Signed-off-by: Martin Schiller <ms@dev.tdt.de>
2018-06-09 16:32:39 +02:00
Hauke Mehrtens
d11aa1d4af ltq-vdsl-mei: Fix section mismatch
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2018-03-18 14:06:00 +01:00
Hauke Mehrtens
13639e76dd lantiq: ltq-vdsl-mei: Do not leak user space CFLAGS into kernel space
Do not leak the user space CFLAGS into the kernel space any more, this
allows us to activate the MIPS16 build.

This decreases the size of the ipk file from 87589 bytes to 81267 bytes.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2018-03-03 00:53:35 +01:00
Hauke Mehrtens
73ba5e11f7 lantiq: fix lantiq applications kernel 4.14 compatiblity
This is fixing multiple compile problems with kernel 4.14 and updates the
code to take care of changes introduced between kernel 4.9 and 4.14.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Mathias Kresin <dev@kresin.me>
2018-02-20 19:25:17 +01:00
Hauke Mehrtens
3a4db8548f ltq-vdsl-mei: update mei driver to version 1.5.17.6
Signed-off-by: Hauke Mehrtens <hauke.mehrtens@intel.com>
2016-09-20 22:43:43 +02:00
Hauke Mehrtens
93c59ac892 ltq-vdsl-mei: activate format security checks
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
2016-02-25 21:59:56 +00:00
Felix Fietkau
ee7f0ec473 lantiq: ltq-vdsl-mei: enable vectoring support
Dynamic Spectrum Management is a precondition for G.993.5 (VDSL2 vectoring).

Signed-off-by: Mathias Kresin <openwrt@kresin.me>

SVN-Revision: 47784
2015-12-05 09:52:36 +00:00
John Crispin
5d236c4dd0 lantiq: ltq-vdsl-mei: update to version 1.4.8.5
In addition to the update this also fixes some build warnings and makes it
use the same configure option as used in Lantiq UGW.

Signed-off-by: Hauke Mehrtens <hauke.mehrtens@lantiq.com>

SVN-Revision: 47634
2015-11-24 20:40:59 +00:00
John Crispin
ca541cffd0 lantiq: ltq-vdsl-mei: register char device automatically
Signed-off-by: Hauke Mehrtens <hauke.mehrtens@lantiq.com>

SVN-Revision: 47633
2015-11-24 20:40:49 +00:00
Matteo Croce
cf89e6a1b8 lantiq: fix gcc 5 build
SVN-Revision: 47106
2015-10-04 22:10:18 +00:00
John Crispin
2c1d56af50 lantiq: Update to the latest DSL driver / application versions
Thanks to Sylwester Petela for testing my patch (successfully on an
ADSL connection) and for pointing out some configuration mistakes.
Others (including me) have also successfully tested this extensively
on VDSL connections.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>

SVN-Revision: 46920
2015-09-14 20:09:22 +00:00
John Crispin
1878a3d6ab lantiq: add v3.10 patches
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 38031
2013-09-17 21:46:10 +00:00
John Crispin
4ebf19b48f packages: clean up the package folder
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 37007
2013-06-21 16:54:37 +00:00