mirror of
https://github.com/Ysurac/openmptcprouter.git
synced 2025-03-09 15:40:20 +00:00
Some changes for 6.6 kernel
This commit is contained in:
parent
7e3973ef27
commit
de82a0353d
20 changed files with 657 additions and 635 deletions
|
|
@ -0,0 +1,29 @@
|
|||
From: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Thu, 22 Oct 2020 22:00:03 +0200
|
||||
Subject: [PATCH] compiler.h: only include asm/rwonce.h for kernel code
|
||||
|
||||
This header file is not in uapi, which makes any user space code that includes
|
||||
linux/compiler.h to fail with the error 'asm/rwonce.h: No such file or directory'
|
||||
|
||||
Fixes: e506ea451254 ("compiler.h: Split {READ,WRITE}_ONCE definitions out into rwonce.h")
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
|
||||
--- a/include/linux/compiler.h
|
||||
+++ b/include/linux/compiler.h
|
||||
@@ -203,6 +203,8 @@ void ftrace_likely_update(struct ftrace_
|
||||
__v; \
|
||||
})
|
||||
|
||||
+#include <asm/rwonce.h>
|
||||
+
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
/*
|
||||
@@ -243,6 +245,4 @@ static inline void *offset_to_ptr(const
|
||||
*/
|
||||
#define prevent_tail_call_optimization() mb()
|
||||
|
||||
-#include <asm/rwonce.h>
|
||||
-
|
||||
#endif /* __LINUX_COMPILER_H */
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
From 686c603f67ae87bf21a61b5e4b1564443f41c3ee Mon Sep 17 00:00:00 2001
|
||||
From: Christian Marangi <ansuelsmth@gmail.com>
|
||||
Date: Thu, 20 Oct 2022 03:34:43 +0200
|
||||
Subject: [PATCH] net: permit ieee80211_ptr even with no CFG82111 support
|
||||
|
||||
Introduce a new flag CONFIG_CFG80211_HEADERS to compile in ieee80211_ptr
|
||||
even if CFG80211 support is not compiled in. This is needed for the
|
||||
backports project and for any downstream wireless driver that loads in
|
||||
the kernel dynamically.
|
||||
|
||||
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
|
||||
---
|
||||
include/linux/netdevice.h | 2 +-
|
||||
net/batman-adv/hard-interface.c | 2 +-
|
||||
net/wireless/Kconfig | 4 ++++
|
||||
3 files changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/include/linux/netdevice.h
|
||||
+++ b/include/linux/netdevice.h
|
||||
@@ -2168,7 +2168,7 @@ struct net_device {
|
||||
#if IS_ENABLED(CONFIG_AX25)
|
||||
void *ax25_ptr;
|
||||
#endif
|
||||
-#if IS_ENABLED(CONFIG_CFG80211)
|
||||
+#if IS_ENABLED(CONFIG_CFG80211_HEADERS)
|
||||
struct wireless_dev *ieee80211_ptr;
|
||||
#endif
|
||||
#if IS_ENABLED(CONFIG_IEEE802154) || IS_ENABLED(CONFIG_6LOWPAN)
|
||||
--- a/net/batman-adv/hard-interface.c
|
||||
+++ b/net/batman-adv/hard-interface.c
|
||||
@@ -308,7 +308,7 @@ static bool batadv_is_cfg80211_netdev(st
|
||||
if (!net_device)
|
||||
return false;
|
||||
|
||||
-#if IS_ENABLED(CONFIG_CFG80211)
|
||||
+#if IS_ENABLED(CONFIG_CFG80211_HEADERS)
|
||||
/* cfg80211 drivers have to set ieee80211_ptr */
|
||||
if (net_device->ieee80211_ptr)
|
||||
return true;
|
||||
--- a/net/wireless/Kconfig
|
||||
+++ b/net/wireless/Kconfig
|
||||
@@ -26,6 +26,7 @@ config CFG80211
|
||||
# using a different algorithm, though right now they shouldn't
|
||||
# (this is here rather than below to allow it to be a module)
|
||||
select CRYPTO_SHA256 if CFG80211_USE_KERNEL_REGDB_KEYS
|
||||
+ select CFG80211_HEADERS
|
||||
help
|
||||
cfg80211 is the Linux wireless LAN (802.11) configuration API.
|
||||
Enable this if you have a wireless device.
|
||||
@@ -36,6 +37,9 @@ config CFG80211
|
||||
|
||||
When built as a module it will be called cfg80211.
|
||||
|
||||
+config CFG80211_HEADERS
|
||||
+ bool "cfg80211 - headers support"
|
||||
+
|
||||
if CFG80211
|
||||
|
||||
config NL80211_TESTMODE
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
From 5f7c5e1c0d7a79be144e5efc1f24728ddd7fc25c Mon Sep 17 00:00:00 2001
|
||||
From: Robert Marko <robimarko@gmail.com>
|
||||
Date: Sat, 5 Nov 2022 20:02:56 +0100
|
||||
Subject: [PATCH 1/2] bus: mhi: core: add SBL state callback
|
||||
|
||||
Add support for SBL state callback in MHI core.
|
||||
|
||||
It is required for ath11k MHI devices in order to be able to set QRTR
|
||||
instance ID in the SBL state so that QRTR instance ID-s dont conflict in
|
||||
case of multiple PCI/MHI cards or AHB + PCI/MHI card.
|
||||
Setting QRTR instance ID is only possible in SBL state and there is
|
||||
currently no way to ensure that we are in that state, so provide a
|
||||
callback that the controller can trigger off.
|
||||
|
||||
Signed-off-by: Robert Marko <robimarko@gmail.com>
|
||||
---
|
||||
drivers/bus/mhi/host/main.c | 1 +
|
||||
include/linux/mhi.h | 2 ++
|
||||
2 files changed, 3 insertions(+)
|
||||
|
||||
--- a/drivers/bus/mhi/host/main.c
|
||||
+++ b/drivers/bus/mhi/host/main.c
|
||||
@@ -900,6 +900,7 @@ int mhi_process_ctrl_ev_ring(struct mhi_
|
||||
switch (event) {
|
||||
case MHI_EE_SBL:
|
||||
st = DEV_ST_TRANSITION_SBL;
|
||||
+ mhi_cntrl->status_cb(mhi_cntrl, MHI_CB_EE_SBL_MODE);
|
||||
break;
|
||||
case MHI_EE_WFW:
|
||||
case MHI_EE_AMSS:
|
||||
--- a/include/linux/mhi.h
|
||||
+++ b/include/linux/mhi.h
|
||||
@@ -34,6 +34,7 @@ struct mhi_buf_info;
|
||||
* @MHI_CB_SYS_ERROR: MHI device entered error state (may recover)
|
||||
* @MHI_CB_FATAL_ERROR: MHI device entered fatal error state
|
||||
* @MHI_CB_BW_REQ: Received a bandwidth switch request from device
|
||||
+ * @MHI_CB_EE_SBL_MODE: MHI device entered SBL mode
|
||||
*/
|
||||
enum mhi_callback {
|
||||
MHI_CB_IDLE,
|
||||
@@ -45,6 +46,7 @@ enum mhi_callback {
|
||||
MHI_CB_SYS_ERROR,
|
||||
MHI_CB_FATAL_ERROR,
|
||||
MHI_CB_BW_REQ,
|
||||
+ MHI_CB_EE_SBL_MODE,
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
|
||||
Subject: [PATCH] bcma: get SoC device struct & copy its DMA params to the
|
||||
subdevices
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
For bus devices to be fully usable it's required to set their DMA
|
||||
parameters.
|
||||
|
||||
For years it has been missing and remained unnoticed because of
|
||||
mips_dma_alloc_coherent() silently handling the empty coherent_dma_mask.
|
||||
Kernel 4.19 came with a lot of DMA changes and caused a regression on
|
||||
the bcm47xx. Starting with the commit f8c55dc6e828 ("MIPS: use generic
|
||||
dma noncoherent ops for simple noncoherent platforms") DMA coherent
|
||||
allocations just fail. Example:
|
||||
[ 1.114914] bgmac_bcma bcma0:2: Allocation of TX ring 0x200 failed
|
||||
[ 1.121215] bgmac_bcma bcma0:2: Unable to alloc memory for DMA
|
||||
[ 1.127626] bgmac_bcma: probe of bcma0:2 failed with error -12
|
||||
[ 1.133838] bgmac_bcma: Broadcom 47xx GBit MAC driver loaded
|
||||
|
||||
This change fixes above regression in addition to the MIPS bcm47xx
|
||||
commit 321c46b91550 ("MIPS: BCM47XX: Setup struct device for the SoC").
|
||||
|
||||
It also fixes another *old* GPIO regression caused by a parent pointing
|
||||
to the NULL:
|
||||
[ 0.157054] missing gpiochip .dev parent pointer
|
||||
[ 0.157287] bcma: bus0: Error registering GPIO driver: -22
|
||||
introduced by the commit 74f4e0cc6108 ("bcma: switch GPIO portions to
|
||||
use GPIOLIB_IRQCHIP").
|
||||
|
||||
Fixes: f8c55dc6e828 ("MIPS: use generic dma noncoherent ops for simple noncoherent platforms")
|
||||
Fixes: 74f4e0cc6108 ("bcma: switch GPIO portions to use GPIOLIB_IRQCHIP")
|
||||
Cc: linux-mips@linux-mips.org
|
||||
Cc: Christoph Hellwig <hch@lst.de>
|
||||
Cc: Linus Walleij <linus.walleij@linaro.org>
|
||||
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
---
|
||||
|
||||
--- a/drivers/bcma/host_soc.c
|
||||
+++ b/drivers/bcma/host_soc.c
|
||||
@@ -191,6 +191,8 @@ int __init bcma_host_soc_init(struct bcm
|
||||
struct bcma_bus *bus = &soc->bus;
|
||||
int err;
|
||||
|
||||
+ bus->dev = soc->dev;
|
||||
+
|
||||
/* Scan bus and initialize it */
|
||||
err = bcma_bus_early_register(bus);
|
||||
if (err)
|
||||
--- a/drivers/bcma/main.c
|
||||
+++ b/drivers/bcma/main.c
|
||||
@@ -236,13 +236,17 @@ EXPORT_SYMBOL(bcma_core_irq);
|
||||
|
||||
void bcma_prepare_core(struct bcma_bus *bus, struct bcma_device *core)
|
||||
{
|
||||
- device_initialize(&core->dev);
|
||||
+ struct device *dev = &core->dev;
|
||||
+
|
||||
+ device_initialize(dev);
|
||||
core->dev.release = bcma_release_core_dev;
|
||||
core->dev.bus = &bcma_bus_type;
|
||||
- dev_set_name(&core->dev, "bcma%d:%d", bus->num, core->core_index);
|
||||
+ dev_set_name(dev, "bcma%d:%d", bus->num, core->core_index);
|
||||
core->dev.parent = bus->dev;
|
||||
- if (bus->dev)
|
||||
+ if (bus->dev) {
|
||||
bcma_of_fill_device(bus->dev, core);
|
||||
+ dma_coerce_mask_and_coherent(dev, bus->dev->coherent_dma_mask);
|
||||
+ }
|
||||
|
||||
switch (bus->hosttype) {
|
||||
case BCMA_HOSTTYPE_PCI:
|
||||
Loading…
Add table
Add a link
Reference in a new issue