mirror of
https://github.com/openwrt/openwrt.git
synced 2025-02-21 09:42:09 +00:00
kernel: bump 5.4 to 5.4.128
Manually rebased bcm27xx/patches-5.4/950-0089-cgroup-Disable-cgroup-memory-by-default.patch Replaced with patch from Raspberry Pi kernel 5.10 patches mvebu/patches-5.4/002-PCI-aardvark-Don-t-rely-on-jiffies-while-holding-spi.patch Applied upstream All others updated automatically. Compile-tested on: ath79/generic, lantiq/xrx200, brcm27xx Runtime-tested on: ath79/generic, lantiq/xrx200 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
parent
e171d11f55
commit
85cef1cf22
@ -6,9 +6,9 @@ ifdef CONFIG_TESTING_KERNEL
|
|||||||
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
|
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
LINUX_VERSION-5.4 = .124
|
LINUX_VERSION-5.4 = .128
|
||||||
|
|
||||||
LINUX_KERNEL_HASH-5.4.124 = f7f29dda2b042d7b5986d18274413131cf70e17288c05e9a683df1f46c507d82
|
LINUX_KERNEL_HASH-5.4.128 = 3b54aebb816b9e628cb9ba3055a6aca58ce0ddeec49366c0da86ced9a7be39ab
|
||||||
|
|
||||||
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
||||||
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
|
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
|
||||||
|
@ -20,7 +20,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
|
|||||||
|
|
||||||
--- a/drivers/dma/Kconfig
|
--- a/drivers/dma/Kconfig
|
||||||
+++ b/drivers/dma/Kconfig
|
+++ b/drivers/dma/Kconfig
|
||||||
@@ -133,7 +133,7 @@ config COH901318
|
@@ -134,7 +134,7 @@ config COH901318
|
||||||
|
|
||||||
config DMA_BCM2835
|
config DMA_BCM2835
|
||||||
tristate "BCM2835 DMA engine support"
|
tristate "BCM2835 DMA engine support"
|
||||||
|
@ -1040,7 +1040,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
|||||||
}
|
}
|
||||||
--- a/drivers/usb/core/hub.c
|
--- a/drivers/usb/core/hub.c
|
||||||
+++ b/drivers/usb/core/hub.c
|
+++ b/drivers/usb/core/hub.c
|
||||||
@@ -5319,7 +5319,7 @@ static void port_event(struct usb_hub *h
|
@@ -5321,7 +5321,7 @@ static void port_event(struct usb_hub *h
|
||||||
port_dev->over_current_count++;
|
port_dev->over_current_count++;
|
||||||
port_over_current_notify(port_dev);
|
port_over_current_notify(port_dev);
|
||||||
|
|
||||||
|
@ -178,7 +178,7 @@ Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
|
|||||||
|
|
||||||
--- a/drivers/dma/Kconfig
|
--- a/drivers/dma/Kconfig
|
||||||
+++ b/drivers/dma/Kconfig
|
+++ b/drivers/dma/Kconfig
|
||||||
@@ -133,7 +133,7 @@ config COH901318
|
@@ -134,7 +134,7 @@ config COH901318
|
||||||
|
|
||||||
config DMA_BCM2835
|
config DMA_BCM2835
|
||||||
tristate "BCM2835 DMA engine support"
|
tristate "BCM2835 DMA engine support"
|
||||||
@ -187,7 +187,7 @@ Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
|
|||||||
select DMA_ENGINE
|
select DMA_ENGINE
|
||||||
select DMA_VIRTUAL_CHANNELS
|
select DMA_VIRTUAL_CHANNELS
|
||||||
|
|
||||||
@@ -608,6 +608,10 @@ config UNIPHIER_MDMAC
|
@@ -609,6 +609,10 @@ config UNIPHIER_MDMAC
|
||||||
UniPhier platform. This DMA controller is used as the external
|
UniPhier platform. This DMA controller is used as the external
|
||||||
DMA engine of the SD/eMMC controllers of the LD4, Pro4, sLD8 SoCs.
|
DMA engine of the SD/eMMC controllers of the LD4, Pro4, sLD8 SoCs.
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
From 0f95a2f2688ff44dc7080beaa2076741a0bdf510 Mon Sep 17 00:00:00 2001
|
From 2b13c54592135b6fab269517ed687fa9f80bf8e5 Mon Sep 17 00:00:00 2001
|
||||||
From: Phil Elwell <phil@raspberrypi.org>
|
From: Phil Elwell <phil@raspberrypi.org>
|
||||||
Date: Mon, 27 Nov 2017 17:14:54 +0000
|
Date: Mon, 27 Nov 2017 17:14:54 +0000
|
||||||
Subject: [PATCH] cgroup: Disable cgroup "memory" by default
|
Subject: [PATCH] cgroup: Disable cgroup "memory" by default
|
||||||
@ -12,34 +12,46 @@ See: https://github.com/raspberrypi/linux/issues/1950
|
|||||||
|
|
||||||
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||||
---
|
---
|
||||||
kernel/cgroup/cgroup.c | 30 ++++++++++++++++++++++++++++++
|
kernel/cgroup/cgroup.c | 38 ++++++++++++++++++++++++++++++++++++++
|
||||||
1 file changed, 30 insertions(+)
|
1 file changed, 38 insertions(+)
|
||||||
|
|
||||||
--- a/kernel/cgroup/cgroup.c
|
--- a/kernel/cgroup/cgroup.c
|
||||||
+++ b/kernel/cgroup/cgroup.c
|
+++ b/kernel/cgroup/cgroup.c
|
||||||
@@ -5722,6 +5722,8 @@ int __init cgroup_init_early(void)
|
@@ -5721,6 +5721,9 @@ int __init cgroup_init_early(void)
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static u16 cgroup_disable_mask __initdata;
|
|
||||||
+static u16 cgroup_enable_mask __initdata;
|
+static u16 cgroup_enable_mask __initdata;
|
||||||
+static int __init cgroup_disable(char *str);
|
+static int __init cgroup_disable(char *str);
|
||||||
|
+
|
||||||
/**
|
/**
|
||||||
* cgroup_init - cgroup initialization
|
* cgroup_init - cgroup initialization
|
||||||
@@ -5761,6 +5763,12 @@ int __init cgroup_init(void)
|
*
|
||||||
|
@@ -5759,6 +5762,12 @@ int __init cgroup_init(void)
|
||||||
|
|
||||||
mutex_unlock(&cgroup_mutex);
|
mutex_unlock(&cgroup_mutex);
|
||||||
|
|
||||||
+ /* Apply an implicit disable... */
|
+ /*
|
||||||
|
+ * Apply an implicit disable, knowing that an explicit enable will
|
||||||
|
+ * prevent if from doing anything.
|
||||||
|
+ */
|
||||||
+ cgroup_disable("memory");
|
+ cgroup_disable("memory");
|
||||||
+
|
|
||||||
+ /* ...knowing that an explicit enable will override it. */
|
|
||||||
+ cgroup_disable_mask &= ~cgroup_enable_mask;
|
|
||||||
+
|
+
|
||||||
for_each_subsys(ss, ssid) {
|
for_each_subsys(ss, ssid) {
|
||||||
if (ss->early_init) {
|
if (ss->early_init) {
|
||||||
struct cgroup_subsys_state *css =
|
struct cgroup_subsys_state *css =
|
||||||
@@ -6180,6 +6188,28 @@ static int __init cgroup_disable(char *s
|
@@ -6168,6 +6177,10 @@ static int __init cgroup_disable(char *s
|
||||||
|
strcmp(token, ss->legacy_name))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
+ /* An explicit cgroup_enable overrides a disable */
|
||||||
|
+ if (cgroup_enable_mask & (1 << i))
|
||||||
|
+ continue;
|
||||||
|
+
|
||||||
|
static_branch_disable(cgroup_subsys_enabled_key[i]);
|
||||||
|
pr_info("Disabling %s control group subsystem\n",
|
||||||
|
ss->name);
|
||||||
|
@@ -6177,6 +6190,31 @@ static int __init cgroup_disable(char *s
|
||||||
}
|
}
|
||||||
__setup("cgroup_disable=", cgroup_disable);
|
__setup("cgroup_disable=", cgroup_disable);
|
||||||
|
|
||||||
@ -59,6 +71,9 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
|||||||
+ continue;
|
+ continue;
|
||||||
+
|
+
|
||||||
+ cgroup_enable_mask |= 1 << i;
|
+ cgroup_enable_mask |= 1 << i;
|
||||||
|
+ static_branch_enable(cgroup_subsys_enabled_key[i]);
|
||||||
|
+ pr_info("Enabling %s control group subsystem\n",
|
||||||
|
+ ss->name);
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+ return 1;
|
+ return 1;
|
||||||
|
@ -13,7 +13,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
|||||||
|
|
||||||
--- a/drivers/spi/spi-bcm2835.c
|
--- a/drivers/spi/spi-bcm2835.c
|
||||||
+++ b/drivers/spi/spi-bcm2835.c
|
+++ b/drivers/spi/spi-bcm2835.c
|
||||||
@@ -1230,31 +1230,6 @@ static int bcm2835_spi_setup(struct spi_
|
@@ -1236,31 +1236,6 @@ static int bcm2835_spi_setup(struct spi_
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ Signed-off-by: Martin Sperl <kernel@martin.sperl.org>
|
|||||||
/* Read as many bytes as possible from FIFO */
|
/* Read as many bytes as possible from FIFO */
|
||||||
bcm2835_rd_fifo(bs);
|
bcm2835_rd_fifo(bs);
|
||||||
/* Write as many bytes as possible to FIFO */
|
/* Write as many bytes as possible to FIFO */
|
||||||
@@ -1281,7 +1285,8 @@ static int bcm2835_spi_probe(struct plat
|
@@ -1287,7 +1291,8 @@ static int bcm2835_spi_probe(struct plat
|
||||||
bcm2835_wr(bs, BCM2835_SPI_CS,
|
bcm2835_wr(bs, BCM2835_SPI_CS,
|
||||||
BCM2835_SPI_CS_CLEAR_RX | BCM2835_SPI_CS_CLEAR_TX);
|
BCM2835_SPI_CS_CLEAR_RX | BCM2835_SPI_CS_CLEAR_TX);
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
|||||||
#define USB_VENDOR_ID_BELKIN 0x050d
|
#define USB_VENDOR_ID_BELKIN 0x050d
|
||||||
#define USB_DEVICE_ID_FLIP_KVM 0x3201
|
#define USB_DEVICE_ID_FLIP_KVM 0x3201
|
||||||
|
|
||||||
@@ -1259,6 +1262,9 @@
|
@@ -1261,6 +1264,9 @@
|
||||||
#define USB_VENDOR_ID_XAT 0x2505
|
#define USB_VENDOR_ID_XAT 0x2505
|
||||||
#define USB_DEVICE_ID_XAT_CSR 0x0220
|
#define USB_DEVICE_ID_XAT_CSR 0x0220
|
||||||
|
|
||||||
@ -53,7 +53,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
|||||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_MULTI_TOUCH), HID_QUIRK_MULTI_INPUT },
|
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_MULTI_TOUCH), HID_QUIRK_MULTI_INPUT },
|
||||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL },
|
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL },
|
||||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE2), HID_QUIRK_ALWAYS_POLL },
|
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE2), HID_QUIRK_ALWAYS_POLL },
|
||||||
@@ -190,6 +191,7 @@ static const struct hid_device_id hid_qu
|
@@ -192,6 +193,7 @@ static const struct hid_device_id hid_qu
|
||||||
{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP_LTD2, USB_DEVICE_ID_SMARTJOY_DUAL_PLUS), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
|
{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP_LTD2, USB_DEVICE_ID_SMARTJOY_DUAL_PLUS), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
|
||||||
{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_QUAD_USB_JOYPAD), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
|
{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_QUAD_USB_JOYPAD), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
|
||||||
{ HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_XIN_MO_DUAL_ARCADE), HID_QUIRK_MULTI_INPUT },
|
{ HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_XIN_MO_DUAL_ARCADE), HID_QUIRK_MULTI_INPUT },
|
||||||
|
@ -19,4 +19,4 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
|||||||
- struct gpio_chip *chip;
|
- struct gpio_chip *chip;
|
||||||
u32 cs;
|
u32 cs;
|
||||||
|
|
||||||
/*
|
if (spi->chip_select >= BCM2835_SPI_NUM_CS) {
|
||||||
|
@ -82,7 +82,7 @@ Cc: linux-rockchip@lists.infradead.org
|
|||||||
|
|
||||||
--- a/drivers/pci/controller/pci-aardvark.c
|
--- a/drivers/pci/controller/pci-aardvark.c
|
||||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||||
@@ -1018,7 +1018,8 @@ static int advk_pcie_probe(struct platfo
|
@@ -1049,7 +1049,8 @@ static int advk_pcie_probe(struct platfo
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
|||||||
|
|
||||||
--- a/drivers/spi/spi.c
|
--- a/drivers/spi/spi.c
|
||||||
+++ b/drivers/spi/spi.c
|
+++ b/drivers/spi/spi.c
|
||||||
@@ -3110,6 +3110,7 @@ static int __spi_validate_bits_per_word(
|
@@ -3116,6 +3116,7 @@ static int __spi_validate_bits_per_word(
|
||||||
*/
|
*/
|
||||||
int spi_setup(struct spi_device *spi)
|
int spi_setup(struct spi_device *spi)
|
||||||
{
|
{
|
||||||
@ -31,7 +31,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
|||||||
unsigned bad_bits, ugly_bits;
|
unsigned bad_bits, ugly_bits;
|
||||||
int status;
|
int status;
|
||||||
|
|
||||||
@@ -3127,6 +3128,14 @@ int spi_setup(struct spi_device *spi)
|
@@ -3133,6 +3134,14 @@ int spi_setup(struct spi_device *spi)
|
||||||
(SPI_TX_DUAL | SPI_TX_QUAD | SPI_TX_OCTAL |
|
(SPI_TX_DUAL | SPI_TX_QUAD | SPI_TX_OCTAL |
|
||||||
SPI_RX_DUAL | SPI_RX_QUAD | SPI_RX_OCTAL)))
|
SPI_RX_DUAL | SPI_RX_QUAD | SPI_RX_OCTAL)))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
@ -37,7 +37,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
|||||||
|
|
||||||
--- a/drivers/spi/spi.c
|
--- a/drivers/spi/spi.c
|
||||||
+++ b/drivers/spi/spi.c
|
+++ b/drivers/spi/spi.c
|
||||||
@@ -1793,15 +1793,6 @@ static int of_spi_parse_dt(struct spi_co
|
@@ -1799,15 +1799,6 @@ static int of_spi_parse_dt(struct spi_co
|
||||||
}
|
}
|
||||||
spi->chip_select = value;
|
spi->chip_select = value;
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
|||||||
|
|
||||||
--- a/drivers/spi/spi.c
|
--- a/drivers/spi/spi.c
|
||||||
+++ b/drivers/spi/spi.c
|
+++ b/drivers/spi/spi.c
|
||||||
@@ -3122,8 +3122,8 @@ int spi_setup(struct spi_device *spi)
|
@@ -3128,8 +3128,8 @@ int spi_setup(struct spi_device *spi)
|
||||||
|
|
||||||
if (ctlr->use_gpio_descriptors && ctlr->cs_gpiods &&
|
if (ctlr->use_gpio_descriptors && ctlr->cs_gpiods &&
|
||||||
ctlr->cs_gpiods[spi->chip_select] && !(spi->mode & SPI_CS_HIGH)) {
|
ctlr->cs_gpiods[spi->chip_select] && !(spi->mode & SPI_CS_HIGH)) {
|
||||||
|
@ -20,4 +20,4 @@ See: https://github.com/raspberrypi/linux/pull/3687
|
|||||||
+ enum gpio_lookup_flags lflags;
|
+ enum gpio_lookup_flags lflags;
|
||||||
u32 cs;
|
u32 cs;
|
||||||
|
|
||||||
/*
|
if (spi->chip_select >= BCM2835_SPI_NUM_CS) {
|
||||||
|
@ -13,7 +13,7 @@ See: https://github.com/raspberrypi/linux/pull/3687
|
|||||||
|
|
||||||
--- a/drivers/spi/spi-bcm2835.c
|
--- a/drivers/spi/spi-bcm2835.c
|
||||||
+++ b/drivers/spi/spi-bcm2835.c
|
+++ b/drivers/spi/spi-bcm2835.c
|
||||||
@@ -1235,6 +1235,43 @@ static int bcm2835_spi_setup(struct spi_
|
@@ -1241,6 +1241,43 @@ static int bcm2835_spi_setup(struct spi_
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
s32 tin_deficit;
|
s32 tin_deficit;
|
||||||
u32 tin_backlog;
|
u32 tin_backlog;
|
||||||
u32 tin_dropped;
|
u32 tin_dropped;
|
||||||
@@ -1943,7 +1942,7 @@ begin:
|
@@ -1947,7 +1946,7 @@ begin:
|
||||||
while (b->tin_deficit < 0 ||
|
while (b->tin_deficit < 0 ||
|
||||||
!(b->sparse_flow_count + b->bulk_flow_count)) {
|
!(b->sparse_flow_count + b->bulk_flow_count)) {
|
||||||
if (b->tin_deficit <= 0)
|
if (b->tin_deficit <= 0)
|
||||||
@ -41,7 +41,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
if (b->sparse_flow_count + b->bulk_flow_count)
|
if (b->sparse_flow_count + b->bulk_flow_count)
|
||||||
empty = false;
|
empty = false;
|
||||||
|
|
||||||
@@ -2265,8 +2264,7 @@ static int cake_config_besteffort(struct
|
@@ -2269,8 +2268,7 @@ static int cake_config_besteffort(struct
|
||||||
|
|
||||||
cake_set_rate(b, rate, mtu,
|
cake_set_rate(b, rate, mtu,
|
||||||
us_to_ns(q->target), us_to_ns(q->interval));
|
us_to_ns(q->target), us_to_ns(q->interval));
|
||||||
@ -51,7 +51,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -2277,8 +2275,7 @@ static int cake_config_precedence(struct
|
@@ -2281,8 +2279,7 @@ static int cake_config_precedence(struct
|
||||||
struct cake_sched_data *q = qdisc_priv(sch);
|
struct cake_sched_data *q = qdisc_priv(sch);
|
||||||
u32 mtu = psched_mtu(qdisc_dev(sch));
|
u32 mtu = psched_mtu(qdisc_dev(sch));
|
||||||
u64 rate = q->rate_bps;
|
u64 rate = q->rate_bps;
|
||||||
@ -61,7 +61,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
u32 i;
|
u32 i;
|
||||||
|
|
||||||
q->tin_cnt = 8;
|
q->tin_cnt = 8;
|
||||||
@@ -2291,18 +2288,14 @@ static int cake_config_precedence(struct
|
@@ -2295,18 +2292,14 @@ static int cake_config_precedence(struct
|
||||||
cake_set_rate(b, rate, mtu, us_to_ns(q->target),
|
cake_set_rate(b, rate, mtu, us_to_ns(q->target),
|
||||||
us_to_ns(q->interval));
|
us_to_ns(q->interval));
|
||||||
|
|
||||||
@ -83,7 +83,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -2371,8 +2364,7 @@ static int cake_config_diffserv8(struct
|
@@ -2375,8 +2368,7 @@ static int cake_config_diffserv8(struct
|
||||||
struct cake_sched_data *q = qdisc_priv(sch);
|
struct cake_sched_data *q = qdisc_priv(sch);
|
||||||
u32 mtu = psched_mtu(qdisc_dev(sch));
|
u32 mtu = psched_mtu(qdisc_dev(sch));
|
||||||
u64 rate = q->rate_bps;
|
u64 rate = q->rate_bps;
|
||||||
@ -93,7 +93,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
u32 i;
|
u32 i;
|
||||||
|
|
||||||
q->tin_cnt = 8;
|
q->tin_cnt = 8;
|
||||||
@@ -2388,18 +2380,14 @@ static int cake_config_diffserv8(struct
|
@@ -2392,18 +2384,14 @@ static int cake_config_diffserv8(struct
|
||||||
cake_set_rate(b, rate, mtu, us_to_ns(q->target),
|
cake_set_rate(b, rate, mtu, us_to_ns(q->target),
|
||||||
us_to_ns(q->interval));
|
us_to_ns(q->interval));
|
||||||
|
|
||||||
@ -115,7 +115,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -2438,17 +2426,11 @@ static int cake_config_diffserv4(struct
|
@@ -2442,17 +2430,11 @@ static int cake_config_diffserv4(struct
|
||||||
cake_set_rate(&q->tins[3], rate >> 2, mtu,
|
cake_set_rate(&q->tins[3], rate >> 2, mtu,
|
||||||
us_to_ns(q->target), us_to_ns(q->interval));
|
us_to_ns(q->target), us_to_ns(q->interval));
|
||||||
|
|
||||||
@ -137,7 +137,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -2479,15 +2461,10 @@ static int cake_config_diffserv3(struct
|
@@ -2483,15 +2465,10 @@ static int cake_config_diffserv3(struct
|
||||||
cake_set_rate(&q->tins[2], rate >> 2, mtu,
|
cake_set_rate(&q->tins[2], rate >> 2, mtu,
|
||||||
us_to_ns(q->target), us_to_ns(q->interval));
|
us_to_ns(q->target), us_to_ns(q->interval));
|
||||||
|
|
||||||
|
@ -3822,6 +3822,7 @@ CONFIG_NMI_LOG_BUF_SHIFT=13
|
|||||||
# CONFIG_NVMEM_SYSFS is not set
|
# CONFIG_NVMEM_SYSFS is not set
|
||||||
# CONFIG_NVME_FC is not set
|
# CONFIG_NVME_FC is not set
|
||||||
# CONFIG_NVME_TARGET is not set
|
# CONFIG_NVME_TARGET is not set
|
||||||
|
# CONFIG_NVME_TCP is not set
|
||||||
# CONFIG_NVRAM is not set
|
# CONFIG_NVRAM is not set
|
||||||
# CONFIG_NV_TCO is not set
|
# CONFIG_NV_TCO is not set
|
||||||
# CONFIG_NXP_STB220 is not set
|
# CONFIG_NXP_STB220 is not set
|
||||||
|
@ -56,7 +56,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
/* __*init sections */ \
|
/* __*init sections */ \
|
||||||
@@ -903,6 +913,8 @@
|
@@ -904,6 +914,8 @@
|
||||||
EXIT_TEXT \
|
EXIT_TEXT \
|
||||||
EXIT_DATA \
|
EXIT_DATA \
|
||||||
EXIT_CALL \
|
EXIT_CALL \
|
||||||
|
@ -157,7 +157,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
case RTN_THROW:
|
case RTN_THROW:
|
||||||
case RTN_UNREACHABLE:
|
case RTN_UNREACHABLE:
|
||||||
default:
|
default:
|
||||||
@@ -4419,6 +4438,17 @@ static int ip6_pkt_prohibit_out(struct n
|
@@ -4423,6 +4442,17 @@ static int ip6_pkt_prohibit_out(struct n
|
||||||
return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
|
return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -175,7 +175,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
/*
|
/*
|
||||||
* Allocate a dst for local (unicast / anycast) address.
|
* Allocate a dst for local (unicast / anycast) address.
|
||||||
*/
|
*/
|
||||||
@@ -4899,7 +4929,8 @@ static int rtm_to_fib6_config(struct sk_
|
@@ -4903,7 +4933,8 @@ static int rtm_to_fib6_config(struct sk_
|
||||||
if (rtm->rtm_type == RTN_UNREACHABLE ||
|
if (rtm->rtm_type == RTN_UNREACHABLE ||
|
||||||
rtm->rtm_type == RTN_BLACKHOLE ||
|
rtm->rtm_type == RTN_BLACKHOLE ||
|
||||||
rtm->rtm_type == RTN_PROHIBIT ||
|
rtm->rtm_type == RTN_PROHIBIT ||
|
||||||
@ -185,7 +185,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
cfg->fc_flags |= RTF_REJECT;
|
cfg->fc_flags |= RTF_REJECT;
|
||||||
|
|
||||||
if (rtm->rtm_type == RTN_LOCAL)
|
if (rtm->rtm_type == RTN_LOCAL)
|
||||||
@@ -6021,6 +6052,8 @@ static int ip6_route_dev_notify(struct n
|
@@ -6025,6 +6056,8 @@ static int ip6_route_dev_notify(struct n
|
||||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||||
net->ipv6.ip6_prohibit_entry->dst.dev = dev;
|
net->ipv6.ip6_prohibit_entry->dst.dev = dev;
|
||||||
net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
|
net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
|
||||||
@ -194,7 +194,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
|
net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
|
||||||
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
|
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
|
||||||
#endif
|
#endif
|
||||||
@@ -6032,6 +6065,7 @@ static int ip6_route_dev_notify(struct n
|
@@ -6036,6 +6069,7 @@ static int ip6_route_dev_notify(struct n
|
||||||
in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev);
|
in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev);
|
||||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||||
in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev);
|
in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev);
|
||||||
@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
|
in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@@ -6224,6 +6258,8 @@ static int __net_init ip6_route_net_init
|
@@ -6228,6 +6262,8 @@ static int __net_init ip6_route_net_init
|
||||||
|
|
||||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||||
net->ipv6.fib6_has_custom_rules = false;
|
net->ipv6.fib6_has_custom_rules = false;
|
||||||
@ -211,7 +211,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template,
|
net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template,
|
||||||
sizeof(*net->ipv6.ip6_prohibit_entry),
|
sizeof(*net->ipv6.ip6_prohibit_entry),
|
||||||
GFP_KERNEL);
|
GFP_KERNEL);
|
||||||
@@ -6234,11 +6270,21 @@ static int __net_init ip6_route_net_init
|
@@ -6238,11 +6274,21 @@ static int __net_init ip6_route_net_init
|
||||||
ip6_template_metrics, true);
|
ip6_template_metrics, true);
|
||||||
INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->rt6i_uncached);
|
INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->rt6i_uncached);
|
||||||
|
|
||||||
@ -234,7 +234,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
|
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
|
||||||
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
|
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
|
||||||
ip6_template_metrics, true);
|
ip6_template_metrics, true);
|
||||||
@@ -6262,6 +6308,8 @@ out:
|
@@ -6266,6 +6312,8 @@ out:
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||||
@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
out_ip6_prohibit_entry:
|
out_ip6_prohibit_entry:
|
||||||
kfree(net->ipv6.ip6_prohibit_entry);
|
kfree(net->ipv6.ip6_prohibit_entry);
|
||||||
out_ip6_null_entry:
|
out_ip6_null_entry:
|
||||||
@@ -6281,6 +6329,7 @@ static void __net_exit ip6_route_net_exi
|
@@ -6285,6 +6333,7 @@ static void __net_exit ip6_route_net_exi
|
||||||
kfree(net->ipv6.ip6_null_entry);
|
kfree(net->ipv6.ip6_null_entry);
|
||||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||||
kfree(net->ipv6.ip6_prohibit_entry);
|
kfree(net->ipv6.ip6_prohibit_entry);
|
||||||
@ -251,7 +251,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
kfree(net->ipv6.ip6_blk_hole_entry);
|
kfree(net->ipv6.ip6_blk_hole_entry);
|
||||||
#endif
|
#endif
|
||||||
dst_entries_destroy(&net->ipv6.ip6_dst_ops);
|
dst_entries_destroy(&net->ipv6.ip6_dst_ops);
|
||||||
@@ -6358,6 +6407,9 @@ void __init ip6_route_init_special_entri
|
@@ -6362,6 +6411,9 @@ void __init ip6_route_init_special_entri
|
||||||
init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
||||||
init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
|
init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
|
||||||
init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
||||||
|
@ -26,7 +26,7 @@ Signed-off-by: Thomas Pedersen <twp@codeaurora.org>
|
|||||||
|
|
||||||
--- a/drivers/dma/qcom/Kconfig
|
--- a/drivers/dma/qcom/Kconfig
|
||||||
+++ b/drivers/dma/qcom/Kconfig
|
+++ b/drivers/dma/qcom/Kconfig
|
||||||
@@ -28,3 +28,13 @@ config QCOM_HIDMA
|
@@ -29,3 +29,13 @@ config QCOM_HIDMA
|
||||||
(user to kernel, kernel to kernel, etc.). It only supports
|
(user to kernel, kernel to kernel, etc.). It only supports
|
||||||
memcpy interface. The core is not intended for general
|
memcpy interface. The core is not intended for general
|
||||||
purpose slave DMA.
|
purpose slave DMA.
|
||||||
|
@ -38,7 +38,7 @@ Signed-off-by: Peng Ma <peng.ma@nxp.com>
|
|||||||
|
|
||||||
--- a/drivers/dma/Kconfig
|
--- a/drivers/dma/Kconfig
|
||||||
+++ b/drivers/dma/Kconfig
|
+++ b/drivers/dma/Kconfig
|
||||||
@@ -669,6 +669,8 @@ source "drivers/dma/sh/Kconfig"
|
@@ -670,6 +670,8 @@ source "drivers/dma/sh/Kconfig"
|
||||||
|
|
||||||
source "drivers/dma/ti/Kconfig"
|
source "drivers/dma/ti/Kconfig"
|
||||||
|
|
||||||
|
@ -85,7 +85,7 @@ Signed-off-by: Robin Gong <yibin.gong@nxp.com>
|
|||||||
+};
|
+};
|
||||||
--- a/drivers/dma/Kconfig
|
--- a/drivers/dma/Kconfig
|
||||||
+++ b/drivers/dma/Kconfig
|
+++ b/drivers/dma/Kconfig
|
||||||
@@ -227,6 +227,17 @@ config FSL_QDMA
|
@@ -228,6 +228,17 @@ config FSL_QDMA
|
||||||
or dequeuing DMA jobs from, different work queues.
|
or dequeuing DMA jobs from, different work queues.
|
||||||
This module can be found on NXP Layerscape SoCs.
|
This module can be found on NXP Layerscape SoCs.
|
||||||
The qdma driver only work on SoCs with a DPAA hardware block.
|
The qdma driver only work on SoCs with a DPAA hardware block.
|
||||||
|
@ -28,7 +28,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
|||||||
|
|
||||||
--- a/drivers/dma/Kconfig
|
--- a/drivers/dma/Kconfig
|
||||||
+++ b/drivers/dma/Kconfig
|
+++ b/drivers/dma/Kconfig
|
||||||
@@ -131,6 +131,24 @@ config COH901318
|
@@ -132,6 +132,24 @@ config COH901318
|
||||||
help
|
help
|
||||||
Enable support for ST-Ericsson COH 901 318 DMA.
|
Enable support for ST-Ericsson COH 901 318 DMA.
|
||||||
|
|
||||||
@ -53,7 +53,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
|||||||
config DMA_BCM2835
|
config DMA_BCM2835
|
||||||
tristate "BCM2835 DMA engine support"
|
tristate "BCM2835 DMA engine support"
|
||||||
depends on ARCH_BCM2835
|
depends on ARCH_BCM2835
|
||||||
@@ -662,7 +680,6 @@ config ZX_DMA
|
@@ -663,7 +681,6 @@ config ZX_DMA
|
||||||
help
|
help
|
||||||
Support the DMA engine for ZTE ZX family platform devices.
|
Support the DMA engine for ZTE ZX family platform devices.
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ Signed-off-by: Peter Chen <peter.chen@nxp.com>
|
|||||||
* All 3.1 IP version constants are greater than the 3.0 IP
|
* All 3.1 IP version constants are greater than the 3.0 IP
|
||||||
--- a/drivers/usb/dwc3/gadget.c
|
--- a/drivers/usb/dwc3/gadget.c
|
||||||
+++ b/drivers/usb/dwc3/gadget.c
|
+++ b/drivers/usb/dwc3/gadget.c
|
||||||
@@ -3575,6 +3575,10 @@ int dwc3_gadget_init(struct dwc3 *dwc)
|
@@ -3578,6 +3578,10 @@ int dwc3_gadget_init(struct dwc3 *dwc)
|
||||||
dwc->gadget.sg_supported = true;
|
dwc->gadget.sg_supported = true;
|
||||||
dwc->gadget.name = "dwc3-gadget";
|
dwc->gadget.name = "dwc3-gadget";
|
||||||
dwc->gadget.lpm_capable = true;
|
dwc->gadget.lpm_capable = true;
|
||||||
|
@ -20,7 +20,7 @@ Signed-off-by: Li Jun <jun.li@freescale.com>
|
|||||||
|
|
||||||
--- a/drivers/usb/core/hub.c
|
--- a/drivers/usb/core/hub.c
|
||||||
+++ b/drivers/usb/core/hub.c
|
+++ b/drivers/usb/core/hub.c
|
||||||
@@ -4729,7 +4729,8 @@ hub_port_init(struct usb_hub *hub, struc
|
@@ -4731,7 +4731,8 @@ hub_port_init(struct usb_hub *hub, struc
|
||||||
}
|
}
|
||||||
if (r) {
|
if (r) {
|
||||||
if (r != -ENODEV)
|
if (r != -ENODEV)
|
||||||
|
@ -20,7 +20,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
|
|||||||
|
|
||||||
--- a/drivers/spi/spi.c
|
--- a/drivers/spi/spi.c
|
||||||
+++ b/drivers/spi/spi.c
|
+++ b/drivers/spi/spi.c
|
||||||
@@ -1803,13 +1803,8 @@ static int of_spi_parse_dt(struct spi_co
|
@@ -1809,13 +1809,8 @@ static int of_spi_parse_dt(struct spi_co
|
||||||
spi->mode |= SPI_CS_HIGH;
|
spi->mode |= SPI_CS_HIGH;
|
||||||
|
|
||||||
/* Device speed */
|
/* Device speed */
|
||||||
|
@ -33,7 +33,7 @@ Acked-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
|||||||
|
|
||||||
--- a/drivers/pci/controller/pci-aardvark.c
|
--- a/drivers/pci/controller/pci-aardvark.c
|
||||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||||
@@ -337,6 +337,14 @@ static void advk_pcie_setup_hw(struct ad
|
@@ -338,6 +338,14 @@ static void advk_pcie_setup_hw(struct ad
|
||||||
reg |= PIO_CTRL_ADDR_WIN_DISABLE;
|
reg |= PIO_CTRL_ADDR_WIN_DISABLE;
|
||||||
advk_writel(pcie, reg, PIO_CTRL);
|
advk_writel(pcie, reg, PIO_CTRL);
|
||||||
|
|
||||||
|
@ -1,54 +0,0 @@
|
|||||||
From 7fbcb5da811be7d47468417c7795405058abb3da Mon Sep 17 00:00:00 2001
|
|
||||||
From: Remi Pommarel <repk@triplefau.lt>
|
|
||||||
Date: Fri, 27 Sep 2019 10:55:02 +0200
|
|
||||||
Subject: [PATCH] PCI: aardvark: Don't rely on jiffies while holding spinlock
|
|
||||||
|
|
||||||
advk_pcie_wait_pio() can be called while holding a spinlock (from
|
|
||||||
pci_bus_read_config_dword()), then depends on jiffies in order to
|
|
||||||
timeout while polling on PIO state registers. In the case the PIO
|
|
||||||
transaction failed, the timeout will never happen and will also cause
|
|
||||||
the cpu to stall.
|
|
||||||
|
|
||||||
This decrements a variable and wait instead of using jiffies.
|
|
||||||
|
|
||||||
Signed-off-by: Remi Pommarel <repk@triplefau.lt>
|
|
||||||
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
|
||||||
Reviewed-by: Andrew Murray <andrew.murray@arm.com>
|
|
||||||
Acked-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
|
||||||
---
|
|
||||||
drivers/pci/controller/pci-aardvark.c | 10 +++++-----
|
|
||||||
1 file changed, 5 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
--- a/drivers/pci/controller/pci-aardvark.c
|
|
||||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
|
||||||
@@ -175,7 +175,8 @@
|
|
||||||
(PCIE_CONF_BUS(bus) | PCIE_CONF_DEV(PCI_SLOT(devfn)) | \
|
|
||||||
PCIE_CONF_FUNC(PCI_FUNC(devfn)) | PCIE_CONF_REG(where))
|
|
||||||
|
|
||||||
-#define PIO_TIMEOUT_MS 1
|
|
||||||
+#define PIO_RETRY_CNT 500
|
|
||||||
+#define PIO_RETRY_DELAY 2 /* 2 us*/
|
|
||||||
|
|
||||||
#define LINK_WAIT_MAX_RETRIES 10
|
|
||||||
#define LINK_WAIT_USLEEP_MIN 90000
|
|
||||||
@@ -400,17 +401,16 @@ static void advk_pcie_check_pio_status(s
|
|
||||||
static int advk_pcie_wait_pio(struct advk_pcie *pcie)
|
|
||||||
{
|
|
||||||
struct device *dev = &pcie->pdev->dev;
|
|
||||||
- unsigned long timeout;
|
|
||||||
+ int i;
|
|
||||||
|
|
||||||
- timeout = jiffies + msecs_to_jiffies(PIO_TIMEOUT_MS);
|
|
||||||
-
|
|
||||||
- while (time_before(jiffies, timeout)) {
|
|
||||||
+ for (i = 0; i < PIO_RETRY_CNT; i++) {
|
|
||||||
u32 start, isr;
|
|
||||||
|
|
||||||
start = advk_readl(pcie, PIO_START);
|
|
||||||
isr = advk_readl(pcie, PIO_ISR);
|
|
||||||
if (!start && isr)
|
|
||||||
return 0;
|
|
||||||
+ udelay(PIO_RETRY_DELAY);
|
|
||||||
}
|
|
||||||
|
|
||||||
dev_err(dev, "config read/write timed out\n");
|
|
@ -193,7 +193,7 @@ Acked-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
|||||||
|
|
||||||
reg = advk_readl(pcie, PCIE_CORE_CMD_STATUS_REG);
|
reg = advk_readl(pcie, PCIE_CORE_CMD_STATUS_REG);
|
||||||
reg |= PCIE_CORE_CMD_MEM_ACCESS_EN |
|
reg |= PCIE_CORE_CMD_MEM_ACCESS_EN |
|
||||||
@@ -1035,6 +1093,12 @@ static int advk_pcie_probe(struct platfo
|
@@ -1066,6 +1124,12 @@ static int advk_pcie_probe(struct platfo
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -98,7 +98,7 @@ Acked-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
|||||||
* fundamental reset. As required by PCI Express spec a delay for at
|
* fundamental reset. As required by PCI Express spec a delay for at
|
||||||
* least 100ms after such a reset before link training is needed.
|
* least 100ms after such a reset before link training is needed.
|
||||||
*/
|
*/
|
||||||
@@ -1093,6 +1118,22 @@ static int advk_pcie_probe(struct platfo
|
@@ -1124,6 +1149,22 @@ static int advk_pcie_probe(struct platfo
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -76,7 +76,7 @@ Cc: Miquèl Raynal <miquel.raynal@bootlin.com>
|
|||||||
/* Set to Direct mode */
|
/* Set to Direct mode */
|
||||||
reg = advk_readl(pcie, CTRL_CONFIG_REG);
|
reg = advk_readl(pcie, CTRL_CONFIG_REG);
|
||||||
reg &= ~(CTRL_MODE_MASK << CTRL_MODE_SHIFT);
|
reg &= ~(CTRL_MODE_MASK << CTRL_MODE_SHIFT);
|
||||||
@@ -1083,6 +1092,62 @@ out_release_res:
|
@@ -1114,6 +1123,62 @@ out_release_res:
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -139,7 +139,7 @@ Cc: Miquèl Raynal <miquel.raynal@bootlin.com>
|
|||||||
static int advk_pcie_probe(struct platform_device *pdev)
|
static int advk_pcie_probe(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
struct device *dev = &pdev->dev;
|
struct device *dev = &pdev->dev;
|
||||||
@@ -1140,6 +1205,10 @@ static int advk_pcie_probe(struct platfo
|
@@ -1171,6 +1236,10 @@ static int advk_pcie_probe(struct platfo
|
||||||
else
|
else
|
||||||
pcie->link_gen = ret;
|
pcie->link_gen = ret;
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ Cc: <stable@vger.kernel.org> # 5.8+: ea17a0f153af: phy: marvell: comphy: Convert
|
|||||||
|
|
||||||
--- a/drivers/pci/controller/pci-aardvark.c
|
--- a/drivers/pci/controller/pci-aardvark.c
|
||||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||||
@@ -1123,7 +1123,9 @@ static int advk_pcie_enable_phy(struct a
|
@@ -1154,7 +1154,9 @@ static int advk_pcie_enable_phy(struct a
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = phy_power_on(pcie->phy);
|
ret = phy_power_on(pcie->phy);
|
||||||
|
@ -22,7 +22,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
|
|||||||
#include <linux/platform_data/x86/apple.h>
|
#include <linux/platform_data/x86/apple.h>
|
||||||
#include <linux/pm_runtime.h>
|
#include <linux/pm_runtime.h>
|
||||||
#include <linux/switchtec.h>
|
#include <linux/switchtec.h>
|
||||||
@@ -5625,3 +5626,34 @@ static void apex_pci_fixup_class(struct
|
@@ -5714,3 +5715,34 @@ static void apex_pci_fixup_class(struct
|
||||||
}
|
}
|
||||||
DECLARE_PCI_FIXUP_CLASS_HEADER(0x1ac1, 0x089a,
|
DECLARE_PCI_FIXUP_CLASS_HEADER(0x1ac1, 0x089a,
|
||||||
PCI_CLASS_NOT_DEFINED, 8, apex_pci_fixup_class);
|
PCI_CLASS_NOT_DEFINED, 8, apex_pci_fixup_class);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user