Commit Graph

4348 Commits

Author SHA1 Message Date
Robert Marko
3daf2d477e mac80211: ath10k: backport bus and device specific API 1 BDF selection
Some ath10k IPQ40xx devices like the MikroTik hAP ac2 and ac3 require the
BDF-s to be extracted from the device storage instead of shipping packaged
API 2 BDF-s.

This is required as MikroTik has started shipping boards that require BDF-s
to be updated, as otherwise their WLAN performance really suffers.
This is however impossible as the devices that require this are release under
the same revision and its not possible to differentiate them from devices
using the older BDF-s.

In OpenWrt we are extracting the calibration data during runtime and we are
able to extract the BDF-s in the same manner, however we cannot package the
BDF-s to API 2 format on the fly and can only use API 1 to provide BDF-s on
the fly.
This is an issue as the ath10k driver explicitly looks only for the board.bin
file and not for something like board-bus-device.bin like it does for pre-cal
data.
Due to this we have no way of providing correct BDF-s on the fly, so lets
extend the ath10k driver to first look for BDF-s in the board-bus-device.bin
format, for example: board-ahb-a800000.wifi.bin
If that fails, look for the default board file name as defined previously.

So, backport the upstream ath10k patch.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2022-05-19 11:07:02 +02:00
Robert Marko
ab97b2a25d ath10k-ct: update to 2022-05-13
Update ath10k-ct to the latest version which includes the backported
ath10k commit for requesting API 1 BDF-s with a unique name like caldata.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2022-05-19 11:07:02 +02:00
Stijn Tintel
9f67ed5460 bpf-headers: drop HOST_LOADLIBES
HOST_LOADLIBES was renamed to KBUILD_HOSTLDLIBS in kernel 4.19. As the
oldest kernel version we support is 5.10, cleanup HOST_LOADLIBES use.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2022-05-18 13:32:06 +03:00
Álvaro Fernández Rojas
bca05bd072 bcm27xx-gpu-fw: update to latest version
Latest GPU FW contains multiple fixes and improvements.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2022-05-17 15:11:22 +02:00
Christian Lamparter
fd836f3d15 kernel: usb-xhci-pci-renesas: remove LINUX_5_10 dependency symbol
With 5.4 out of the picture, remove LINUX_5_10 here. This is
needed for the WNDR4700 as otherwise kmod-usb3 isn't available
for 5.15.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-05-07 16:26:21 +02:00
Christian Lamparter
c97c8b814a kernel/x86: move x86' specific watchdogs to the x86 target
upstream linux have these watchdogs locked behind X86.
These will not build on other architectures. So move them
to target/linux/x86/modules.mk

drivers/watchdog/Kconfig:

|config F71808E_WDT
|	tristate "Fintek F718xx, F818xx Super I/O Watchdog"
|	depends on X86
|[...]
|config IT87_WDT
|	tristate "IT87 Watchdog Timer"
|	depends on X86
|[...]
|config ITCO_WDT
|	tristate "Intel TCO Timer/Watchdog"
|	depends on (X86 || IA64) && PCI
|[...]
|config W83627HF_WDT
|	tristate "Watchdog timer for W83627HF/W83627DHG and compatibles"
|	depends on X86
|[...]

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-05-07 14:31:22 +02:00
Christian Lamparter
cb203adda0 kernel: provide i6300esb for qemu/libvirt
the Intel i6300esb is QEMU's default watchdog. And unlike
the real "Intel i6300ESB I/O Controller hub" hardware, the
i6300esb watchdog driver works on non-x86 targets like for
ARM (armvirt 32bit) and potentially virtual PowerPC and MIPS
targets (if there was any).

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-05-07 14:31:21 +02:00
Jan Hoffmann
db4bf4b968 ltq-vdsl/ltq-adsl: fix elapsed time calculation
The driver maintains elapsed times by repeatedly accumulating the time
since the previous update in a loop. For the elapsed showtime time, the
time difference is truncated to seconds before adding it, leading to a
sizable error over time.

Move the truncation to before calculation of the time difference in
order to remove this error. Also maintain the total elapsed time in the
same way in full seconds, to prevent the unsigned 32-bit counter from
wrapping around after about 50 days.

Testing on a VR9 device shows that the reported line uptime now matches
the actual elapsed wall time. The ADSL variant is only compile-tested,
but it should also work as the relevant code is identical.

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
Tested-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
2022-05-04 01:38:04 +01:00
Jan Hoffmann
2f484aeff5 ltq-atm/ltq-ptm: avoid unnecessary build dependencies
Right now, both ltq-adsl-mei and ltq-vdsl-mei are always built, even
when they aren't necessary for the selected variant. This can cause the
build to fail, for example ltq-vdsl-mei doesn't build successfully here
on xway target due to the vectoring callback.

Make these dependencies conditional on the specific package variants,
so they are only built when actually needed.

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
Tested-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
2022-05-04 01:38:04 +01:00
Hans Dedecker
432a25db72 nat46: update to git HEAD
95ca1c3 nat46-core: ignore IPv4 options when translating packets
39778c2 add a module argument to ignore TOS translate for IPv4
9a36ee1 add a module argument to ignore TOS translate for IPv4
79190a8 add a module argument to ignore TOS translate for IPv4

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2022-04-26 22:41:57 +02:00
Felix Fietkau
fb4edcef71 mt76: update to the latest version
a666d5637bc3 mt76: fix tx status related use-after-free race on station removal

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-04-23 15:50:38 +02:00
Felix Fietkau
0d2d52df69 mt76: update to the latest version
d4937118ec4f mt76: fix rx reordering with non explicit / psmp ack policy
f50672518bcc mt76: do not attempt to reorder received 802.3 packets without agg session
75e046e3c9ae mt76: fix antenna config missing in 6G cap
64ede85f14b5 mt76: mt7915: remove SCS feature
db0a67582028 mt76: mt7915: make read-only array ppet16_ppet8_ru3_ru0 static const
68a2f68d5c01 mt76: mt7921: make read-only array ppet16_ppet8_ru3_ru0 static const
1e7b77294e97 mt76: mt7921: fix kernel crash at mt7921_pci_remove
795830a99a6c mt76: mt7915: add debugfs knob for RF registers read/write
60a8ec12a8eb mt76: mt7603: move spin_lock_bh() to spin_lock()
5ec7a2eac867 mt76: mt7915: disable RX_HDR_TRANS_SHORT
eecbb4992073 mt76: fix encap offload ethernet type check

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-04-20 18:14:08 +02:00
Thibaut VARÈNE
7dc52a78ae mac80211: fix QCA9561 PA bias
This patch fixes an invalid TX PA DC bias level on QCA9561, which
results in a very low output power and very low throughput as devices
are further away from the AP (compared to other 2.4GHz APs),
following a suggestion from nbd[1].

This patch has been submitted upstream[2].

[1] https://lore.kernel.org/all/91c58969-c60e-2f41-00ac-737786d435ae@nbd.name
[2] https://lore.kernel.org/linux-wireless/20220417145145.1847-1-hacks+kernel@slashdirt.org/

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2022-04-18 06:40:59 +02:00
Petr Štetiar
c0a6fefd9b Revert "mac80211 adjust QCA9561 PA bias"
This reverts commit f9ff282d17 as during
upstream patch review process nbd pointed out, that this patch needs
more work:

 "The patch looks wrong to me. I'm pretty sure that AR_CH0_TOP2 is the
  correct register, the definition has an explicit check for 9561 as well.
  I believe this patch works by accident because it avoids writing a wrong
  value to that register."

1. https://lore.kernel.org/all/91c58969-c60e-2f41-00ac-737786d435ae@nbd.name

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2022-04-17 09:20:26 +02:00
Thibaut VARÈNE
f9ff282d17 mac80211 adjust QCA9561 PA bias
ath9k is setting the TX PA DC bias level different on QCA9561 and QCA9565
although they have the same radio IP-core, which results in a very low
output power and very low throughput as devices are further away from
the AP (compared to other 2.4GHz APs.)

In real life testing, without this patch the 2.4GHz throughput on Yuncore
XD3200 is around 10Mbps sitting close to the AP, and close to theoretical
maximum with the patch applied.

Signed-off-by: Clemens Hopfer <openwrt@wireloss.net>
[edit commit message]
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2022-04-15 07:11:18 +02:00
Petr Štetiar
afb0e9336e kernel: usb-net-asix: fix 5.15 dependency
Upstream in commit 34a1dee6bc44 ("net: usb: asix: ax88772: add generic
selftest support") in version 5.14 added dependency on generic selftest
functionality and armvirt/64 when compiled with ALL_KMODS=y reports following:

 Package kmod-usb-net-asix is missing dependencies for the following libraries:
 mdio_devres.ko
 selftests.ko

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2022-04-15 07:11:18 +02:00
Petr Štetiar
8361946e1b kernel: netdevices: add generic selftests module
Upstream in commit 3e1e58d64c3d ("net: add generic selftest support") in
version 5.13 added generic selftests module and usb-net-asix already
depends on it, in version 5.18 via commit 1710b52d7c13 ("net: usb:
smsc95xx: add generic selftest support") it will be used by
usb-net-smsc95xx as well.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2022-04-15 07:11:18 +02:00
Petr Štetiar
0225469dcd kernel: usb-net-smsc95xx: fix 5.15 dependency
armvirt/64 when compiled with ALL_KMODS=y reports following:

 Package kmod-usb-net-smsc95xx is missing dependencies for the following libraries:
 libphy.ko

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2022-04-15 07:11:18 +02:00
Petr Štetiar
0fa0a19a60 kernel: mdio-devres: fix of-mdio dependency
armvirt/64 when compiled with ALL_KMODS=y reports following:

 Package kmod-mdio-devres is missing dependencies for the following libraries:
 of_mdio.ko

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2022-04-15 07:11:18 +02:00
Petr Štetiar
c707731310 kernel: of-mdio: fix 5.15 fwnode_mdio dependency
Upstream in commit bc1bee3b87ee ("net: mdiobus: Introduce
fwnode_mdiobus_register_phy()") in version 5.14 introduced new
dependency:

 Package kmod-of-mdio is missing dependencies for the following libraries:

  fwnode_mdio.ko

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2022-04-15 07:11:18 +02:00
Jo-Philipp Wich
bea01fa57f netfilter: move nf-log modules into separate packages
Both legacy iptables and nftables require nf-log modules for rule logging,
so move them into a separate package both firewall implementations can
depend on.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-04-12 14:02:16 +02:00
Felix Fietkau
5d5afd5177 mac80211: backport minstrel_ht fix for legacy rates
Fixes OFDM rates on 5 GHz

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-04-12 09:33:22 +02:00
Hauke Mehrtens
3aa96efa24 mac80211: Update to version 5.15.33-1
This updates mac80211 to version 5.15.33-1 which is based on kernel
5.15.33.
The removed patches were applied upstream.

This new release contains many fixes which were merged into the upstream
Linux kernel.
This also contains the following new drivers which are needed for ath11k:
* net/qrtr/
* drivers/bus/mhi/

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2022-04-10 23:12:36 +02:00
Robert Marko
6461384c1e mwlwifi: fix 5.15 kernel support
Fix compilation and usage under kernel 5.15 for the mwlwifi driver.

For detailed description of changes, check individual patches.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2022-04-09 19:31:46 +02:00
Andrey Erokhin
1e991e09b7 gpio-button-hotplug: fix data race
bh_event_add_var can be called by multiple threads concurrently,
so it shall not use a static char buffer

Signed-off-by: Andrey Erokhin <a.erokhin@inango-systems.com>
2022-04-09 15:56:04 +02:00
Felix Fietkau
fd354ffac9 mt76: update to the latest version
5beb87716e70 mt76: dma: add wrapper macro for accessing queue registers
e0bc736d5617 mt76: add support for overriding the device used for DMA mapping
b8c842daa081 mt76: make number of tokens configurable dynamically
87a962e0608f mt76: mt7915: add Wireless Ethernet Dispatch support
2accb74e6be3 mt76: mt7915: fix using null pointer when wfsys on
e5227f2f3120 mt76: mt7921: Fix the error handling path of mt7921_pci_probe()
ec0e9f4da32f mt76: mt7915: fix possible uninitialized pointer dereference in mt7986_wmac_gpio_setup
5a87be892ba7 mt76: mt7915: fix possible NULL pointer dereference in mt7915_mac_fill_rx_vector
fe441e5d3dcf mt76: mt7915: do not pass data pointer to mt7915_mcu_muru_debug_set
f3ddfe886283 mt76: mt7915: report rx mode value in mt7915_mac_fill_rx_rate
2a0d370cb5fe mt76: mt7915: use 0xff to initialize bitrate_mask in mt7915_init_bitrate_mask
506bb0605e3e mt76: mt7921: Add AP mode support

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-04-07 12:24:59 +02:00
Koen Vandeputte
6af46796fa kernel: package mhi mbim driver
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2022-04-05 17:31:04 +02:00
Koen Vandeputte
2519190fec kernel: package mhi wwan ctrl driver
MHI WWAN CTRL allows QCOM-based PCIe modems to expose different modem
control protocols/ports to userspace, including AT, MBIM, QMI, DIAG
and FIREHOSE. These protocols can be accessed directly from userspace
(e.g. AT commands) or via libraries/tools (e.g. libmbim, libqmi, libqcdm)

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2022-04-05 17:31:04 +02:00
Koen Vandeputte
de840a5e01 kernel: package mhi network driver
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2022-04-05 17:31:04 +02:00
Koen Vandeputte
8da3de825a kernel: package mhi pci driver
This driver provides MHI PCI controller driver for devices
such as Qualcomm SDX55 based PCIe modems

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2022-04-05 17:31:04 +02:00
Koen Vandeputte
120e2d91dc kernel: package mhi bus driver
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2022-04-05 17:31:04 +02:00
Felix Fietkau
39ec9edacb bpf-headers: update to linux 5.15
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-04-04 21:08:38 +02:00
Daniel Golle
82f9ad6ab2
kernel: load device-mapper early on boot
Previously commit openwrt/packages@3abb7cb ("lvm2: Added script and updated Makefile[...]")
couldn't actually work and allow rootfs_data to be stored on a LVM2 as
the necessary kernel modules had not been loaded at this point.
Fix this by loading device-mapper modules early at boot.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-04-03 16:25:05 +01:00
Felix Fietkau
72b93b77a5 bpf-headers: support CONFIG_HZ=300
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-04-01 15:26:08 +02:00
Piotr Dymacz
173198e35a kernel: modules: drop 'AddDepends/bluetooth' calls
Function 'AddDepends/bluetooth' doesn't exist in our codebase.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2022-04-01 14:32:54 +02:00
Vincent Pelletier
15fbb91666 kernel: scale nf_conntrack_max more reasonably
Use the kernel's built-in formula for computing this value.
The value applied by OpenWRT's sysctl configuration file does not scale
with the available memory, under-using hardware capabilities.
Also, that formula also influences net.netfilter.nf_conntrack_buckets,
which should improve conntrack performance in average (fewer connections
per hashtable bucket).

Backport upstream commit for its effect on the number of connections per
hashtable bucket.

Apply a hack patch to set the RAM size divisor to a more reasonable value (2048,
down from 16384) for our use case, a typical router handling several thousands
of connections.

Signed-off-by: Vincent Pelletier <plr.vincent@gmail.com>
Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2022-04-01 13:23:41 +01:00
Petr Štetiar
f389831db6 kernel: modules: fix kmod-drm-imx-ldb dependency for 5.15
Fixes following issue:

 Package kmod-drm-imx-ldb is missing dependencies for the following libraries:
 drm_dp_aux_bus.ko

Introduced upstream in commit aeb33699fc2c ("drm: Introduce the DP AUX
bus") in kernel version 5.15.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2022-03-31 17:30:17 +02:00
Petr Štetiar
f5a54716a4 kernel: modules: fix kmod-drm dependency for 5.15
Fixes following issue:

 Package kmod-drm is missing dependencies for the following libraries:
 fb.ko

Introduced upstream in commit f611b1e7624c ("drm: Avoid circular
dependencies for CONFIG_FB") in 5.14.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2022-03-30 23:39:08 +02:00
Felix Fietkau
5e34b316c5 mt76: update to the latest version
eed44048ca57 Revert "mt76: dma: reduce lock contention in mt76_dma_tx_cleanup"

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-03-29 18:35:34 +02:00
Petr Štetiar
be9a69caa8 kernel: modules: fix kmod-mdio-devres dependency for 5.15
Fixes following build issues:

 Package kmod-r8169 is missing dependencies for the following libraries:
 mdio_devres.ko

 Package kmod-ixgbe is missing dependencies for the following libraries:
 mdio_devres.ko

 Package kmod-amd-xgbe is missing dependencies for the following libraries:
 mdio_devres.ko

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2022-03-29 12:02:50 +02:00
Felix Fietkau
103ad908c2 mt76: update to the latest version
65042bfd759c mt76: mt7915: introduce 802.11ax multi-bss support
e756ea3bd069 mt76: fix wrong HE data rate in sniffer tool
47b64131e820 mt76: mt7921: don't enable beacon filter when IEEE80211_CONF_CHANGE_MONITOR is set
7a05f4628e76 mt76: fix monitor rx FCS error in DFS channel
104dd5cb0a40 mt76: mt7915: fix DBDC default band selection on MT7915D
a7805e4e1d58 mt76: reduce tx queue lock hold time
0b1deb9292cd mt76: dma: use kzalloc instead of devm_kzalloc for txwi
2e51013b38c9 mt76: dma: reduce lock contention in mt76_dma_tx_cleanup
c96fbb86f7e5 mt76: mt7915: rework hardware/phy initialization
c2bb44cab51e mt76: mt7915: accept rx frames with non-standard VHT MCS10-11
36c23a4a8422 mt76: mt7921: accept rx frames with non-standard VHT MCS10-11
5b7dd093c8f0 mt76: fix use-after-free by removing a non-RCU wcid pointer
c692aacb9bde mt76: fix MBSS index condition in DBDC mode
fd6541905aa4 mt76: mt7921u: add suspend/resume support
201b33cf42c2 mt76: mt7921: rely on mt76_dev rxfilter in mt7921_configure_filter
9666c08228e7 mt76: mt7921: honor pm user configuration in mt7921_sniffer_interface_iter
1442710d7936 mt76: mt7915: always call mt7915_wfsys_reset() during init
ec4d9b9e8b70 mt76: mt7915: fix unbounded shift in mt7915_mcu_beacon_mbss
6b1efcd72946 mt76: mt7915: fix wfsys reset regression
376ea8152b2b mt76: mt7915: add missing chunk from wfsys reset fix

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-03-28 13:25:00 +02:00
John Thomson
f65596e8a9 kernel: 5.15: fix mediatek usb module change
The mediatek USB kernel module xhci-mtk was restructed.
The module after kernel 5.13 is named xhci-mtk-hcd.
Link:
https://lore.kernel.org/all/0b62e21ddfacc1c2874726dd27ccab80c993f303.1615170625.git.chunfeng.yun@mediatek.com/
Linux 14295a150050 ("usb: xhci-mtk: support to build xhci-mtk-hcd.ko")

Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
2022-03-28 11:03:13 +02:00
Felix Fietkau
3f8ea009d0 kernel: add missing nls dependency for kmod-fs-ntfs3
This showed up on a linux 5.15 build

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-03-28 11:03:13 +02:00
Daniel Golle
f667277dd0
kernel: 5.15: add missing Kconfig symbols for NFS
Add new Kconfig symbols for NFSv4.1 and NFSv4.2 to kmod-nfs-common and
kmod-nfsd.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-03-27 14:50:59 +01:00
Ansuel Smith
bd0db6017b kernel: 5.15: add new module
Add new module require in 5.15
- Changes in block module
- Changes in netfilter module (log module unified)
- Changes in fs module (mainly new depends for cifs and new ntfs3 module)
- Changes in lib add shared lib now used by more than 1 kmod
- Changes in crypto, dropped one crypto algo added arm crypto accellerator
- Changes in other, add zram default compressor choice and missing lib
  by tpm module

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2022-03-27 02:17:24 +01:00
Felix Fietkau
56ae4eb908 mac80211: backport patch that allows receiving packets with non-standard VHT MCS10-11 rates
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-03-25 21:11:09 +01:00
Brian Norris
e5b009e532 kernel: Package GOOGLE_FIRMWARE drivers
Useful for some Chromium OS based systems, like Google WiFi.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
2022-03-25 18:14:13 +01:00
Rui Salvaterra
aaa0c09785 kmod-lzo: include the lzo-rle kmod in the package
Albeit a separate crypto module, lzo-rle uses the same kernel library as lzo.
Crypto API users (zram, for example) expect both lzo and lzo-rle to be
available, so let's include lzo-rle (about 5.5 kiB) in the lib-lzo package.

Based on e9hack's original patch: https://patchwork.ozlabs.org/project/openwrt/patch/541cbfbd-76f2-59b3-a867-47b6f0fc7da9@gmail.com/

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2022-03-22 09:23:44 +00:00
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