mirror of
https://github.com/openwrt/openwrt.git
synced 2025-03-18 10:05:34 +00:00
kernel: bump 5.15 to 5.15.86
Removed upstreamed:
pending-5.15/101-Use-stddefs.h-instead-of-compiler.h.patch[1]
ipq806x/patches-5.15/122-01-clk-qcom-clk-krait-fix-wrong-div2-functions.patch[2]
bcm27xx/patches-5.15/950-0198-drm-fourcc-Add-packed-10bit-YUV-4-2-0-format.patch[3]
Manually rebased:
ramips/patches-5.15/100-PCI-mt7621-Add-MediaTek-MT7621-PCIe-host-controller-.patch[4]
Added patch/backported:
ramips/patches-5.15/107-PCI-mt7621-Add-sentinel-to-quirks-table.patch[5]
All other patches automatically rebased.
1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.86&id=c160505c9b574b346031fdf2c649d19e7939ca11
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.86&id=a051e10bfc6906d29dae7a31f0773f2702edfe1b
3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.86&id=ec1727f89ecd6f2252c0c75e200058819f7ce47a
4. Quilt gave this output when I applied the patch to rebase it:
% quilt push -f
Applying patch platform/100-PCI-mt7621-Add-MediaTek-MT7621-PCIe-host-controller-.patch
patching file arch/mips/ralink/Kconfig
patching file drivers/pci/controller/Kconfig
patching file drivers/pci/controller/Makefile
patching file drivers/staging/Kconfig
patching file drivers/staging/Makefile
patching file drivers/staging/mt7621-pci/Kconfig
patching file drivers/staging/mt7621-pci/Makefile
patching file drivers/staging/mt7621-pci/TODO
patching file drivers/staging/mt7621-pci/mediatek,mt7621-pci.txt
patching file drivers/staging/mt7621-pci/pci-mt7621.c
Hunk #1 FAILED at 1.
Not deleting file drivers/staging/mt7621-pci/pci-mt7621.c as content differs from patch
1 out of 1 hunk FAILED -- saving rejects to file drivers/staging/mt7621-pci/pci-mt7621.c.rej
patching file drivers/pci/controller/pcie-mt7621.c
Applied patch platform/100-PCI-mt7621-Add-MediaTek-MT7621-PCIe-host-controller-.patch (forced; needs refresh)
Upon inspecting drivers/staging/mt7621-pci/pci-mt7621.c.rej, it seems that
the original patch wants to delete drivers/staging/mt7621-pci/pci-mt7621.c
but upstream's version was not an exact match. I opted to delete that
file.
5. Suggestion by hauke: 19098934f9
"This patch is in upstream kernel, but it was backported to the old
staging driver in kernel 5.15."
Build system: x86_64
Build-tested: bcm2711/RPi4B, filogic/xiaomi_redmi-router-ax6000-ubootmod
Run-tested: bcm2711/RPi4B, filogic/xiaomi_redmi-router-ax6000-ubootmod
Signed-off-by: John Audia <therealgraysky@proton.me>
This commit is contained in:
parent
a80e630131
commit
738b04c881
@ -1,2 +1,2 @@
|
||||
LINUX_VERSION-5.15 = .85
|
||||
LINUX_KERNEL_HASH-5.15.85 = 2c0bae29fac98e0a9408914a4551b2971365ac0000351cb255d6bd9aa0849808
|
||||
LINUX_VERSION-5.15 = .86
|
||||
LINUX_KERNEL_HASH-5.15.86 = 80fcd9efa443502de9e2750f6dfb59e8de43a5d87a6d2be09dca748d79b5f2ee
|
||||
|
@ -10,7 +10,7 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
|
||||
|
||||
--- a/drivers/mtd/spi-nor/core.c
|
||||
+++ b/drivers/mtd/spi-nor/core.c
|
||||
@@ -3095,6 +3095,7 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
@@ -3096,6 +3096,7 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
struct device *dev = nor->dev;
|
||||
struct mtd_info *mtd = &nor->mtd;
|
||||
struct device_node *np = spi_nor_get_flash_node(nor);
|
||||
@ -18,7 +18,7 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
|
||||
int ret;
|
||||
int i;
|
||||
|
||||
@@ -3149,7 +3150,12 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
@@ -3150,7 +3151,12 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@ -34,7 +34,7 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
|
||||
mtd->type = MTD_NORFLASH;
|
||||
--- a/drivers/mtd/mtdcore.c
|
||||
+++ b/drivers/mtd/mtdcore.c
|
||||
@@ -845,6 +845,17 @@ out_error:
|
||||
@@ -847,6 +847,17 @@ out_error:
|
||||
*/
|
||||
static void mtd_set_dev_defaults(struct mtd_info *mtd)
|
||||
{
|
||||
|
@ -45,7 +45,7 @@ Submitted-by: Christopher Hill <ch6574@gmail.com>
|
||||
|
||||
--- a/drivers/mfd/Kconfig
|
||||
+++ b/drivers/mfd/Kconfig
|
||||
@@ -2174,6 +2174,14 @@ config RAVE_SP_CORE
|
||||
@@ -2175,6 +2175,14 @@ config RAVE_SP_CORE
|
||||
Select this to get support for the Supervisory Processor
|
||||
device found on several devices in RAVE line of hardware.
|
||||
|
||||
|
@ -11,7 +11,7 @@ This reverts commit 83b2a8fe43bda0c11981ad6afa5dd0104d78be28.
|
||||
|
||||
--- a/drivers/spi/spidev.c
|
||||
+++ b/drivers/spi/spidev.c
|
||||
@@ -402,7 +402,6 @@ spidev_ioctl(struct file *filp, unsigned
|
||||
@@ -413,7 +413,6 @@ spidev_ioctl(struct file *filp, unsigned
|
||||
else
|
||||
retval = get_user(tmp, (u32 __user *)arg);
|
||||
if (retval == 0) {
|
||||
@ -19,7 +19,7 @@ This reverts commit 83b2a8fe43bda0c11981ad6afa5dd0104d78be28.
|
||||
u32 save = spi->mode;
|
||||
|
||||
if (tmp & ~SPI_MODE_MASK) {
|
||||
@@ -410,10 +409,6 @@ spidev_ioctl(struct file *filp, unsigned
|
||||
@@ -421,10 +420,6 @@ spidev_ioctl(struct file *filp, unsigned
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -13,7 +13,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/drivers/spi/spidev.c
|
||||
+++ b/drivers/spi/spidev.c
|
||||
@@ -747,7 +747,7 @@ static int spidev_probe(struct spi_devic
|
||||
@@ -758,7 +758,7 @@ static int spidev_probe(struct spi_devic
|
||||
* compatible string, it is a Linux implementation thing
|
||||
* rather than a description of the hardware.
|
||||
*/
|
||||
|
@ -14,7 +14,7 @@ use the same logic.
|
||||
|
||||
--- a/drivers/tty/serial/amba-pl011.c
|
||||
+++ b/drivers/tty/serial/amba-pl011.c
|
||||
@@ -2744,7 +2744,12 @@ static int pl011_setup_port(struct devic
|
||||
@@ -2756,7 +2756,12 @@ static int pl011_setup_port(struct devic
|
||||
if (IS_ERR(base))
|
||||
return PTR_ERR(base);
|
||||
|
||||
|
@ -26,7 +26,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/drivers/tty/serial/amba-pl011.c
|
||||
+++ b/drivers/tty/serial/amba-pl011.c
|
||||
@@ -1727,6 +1727,23 @@ static void pl011_put_poll_char(struct u
|
||||
@@ -1730,6 +1730,23 @@ static void pl011_put_poll_char(struct u
|
||||
|
||||
#endif /* CONFIG_CONSOLE_POLL */
|
||||
|
||||
@ -50,7 +50,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
static int pl011_hwinit(struct uart_port *port)
|
||||
{
|
||||
struct uart_amba_port *uap =
|
||||
@@ -1743,7 +1760,7 @@ static int pl011_hwinit(struct uart_port
|
||||
@@ -1746,7 +1763,7 @@ static int pl011_hwinit(struct uart_port
|
||||
if (retval)
|
||||
return retval;
|
||||
|
||||
@ -59,7 +59,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
/* Clear pending error and receive interrupts */
|
||||
pl011_write(UART011_OEIS | UART011_BEIS | UART011_PEIS |
|
||||
@@ -2440,7 +2457,7 @@ static int pl011_console_setup(struct co
|
||||
@@ -2452,7 +2469,7 @@ static int pl011_console_setup(struct co
|
||||
plat->init();
|
||||
}
|
||||
|
||||
@ -68,7 +68,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
if (uap->vendor->fixed_options) {
|
||||
baud = uap->fixed_baud;
|
||||
@@ -2657,6 +2674,7 @@ static struct uart_driver amba_reg = {
|
||||
@@ -2669,6 +2686,7 @@ static struct uart_driver amba_reg = {
|
||||
.cons = AMBA_CONSOLE,
|
||||
};
|
||||
|
||||
@ -76,7 +76,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
static int pl011_probe_dt_alias(int index, struct device *dev)
|
||||
{
|
||||
struct device_node *np;
|
||||
@@ -2688,6 +2706,7 @@ static int pl011_probe_dt_alias(int inde
|
||||
@@ -2700,6 +2718,7 @@ static int pl011_probe_dt_alias(int inde
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -17,7 +17,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/drivers/tty/serial/amba-pl011.c
|
||||
+++ b/drivers/tty/serial/amba-pl011.c
|
||||
@@ -1432,6 +1432,7 @@ static bool pl011_tx_char(struct uart_am
|
||||
@@ -1435,6 +1435,7 @@ static bool pl011_tx_char(struct uart_am
|
||||
return false; /* unable to transmit character */
|
||||
|
||||
pl011_write(c, uap, REG_DR);
|
||||
|
@ -36,7 +36,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
- reg
|
||||
--- a/drivers/tty/serial/amba-pl011.c
|
||||
+++ b/drivers/tty/serial/amba-pl011.c
|
||||
@@ -2835,6 +2835,11 @@ static int pl011_probe(struct amba_devic
|
||||
@@ -2847,6 +2847,11 @@ static int pl011_probe(struct amba_devic
|
||||
if (IS_ERR(uap->clk))
|
||||
return PTR_ERR(uap->clk);
|
||||
|
||||
|
@ -29,7 +29,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/drivers/tty/serial/amba-pl011.c
|
||||
+++ b/drivers/tty/serial/amba-pl011.c
|
||||
@@ -1493,6 +1493,10 @@ static bool pl011_tx_chars(struct uart_a
|
||||
@@ -1496,6 +1496,10 @@ static bool pl011_tx_chars(struct uart_a
|
||||
if (likely(from_irq) && count-- == 0)
|
||||
break;
|
||||
|
||||
|
@ -36,7 +36,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
|
||||
static DEFINE_MUTEX(transaction_lock);
|
||||
|
||||
static void response_callback(struct mbox_client *cl, void *msg)
|
||||
@@ -279,6 +281,7 @@ static int rpi_firmware_probe(struct pla
|
||||
@@ -280,6 +282,7 @@ static int rpi_firmware_probe(struct pla
|
||||
kref_init(&fw->consumers);
|
||||
|
||||
platform_set_drvdata(pdev, fw);
|
||||
@ -44,7 +44,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
|
||||
|
||||
rpi_firmware_print_firmware_revision(fw);
|
||||
rpi_register_hwmon_driver(dev, fw);
|
||||
@@ -307,6 +310,7 @@ static int rpi_firmware_remove(struct pl
|
||||
@@ -308,6 +311,7 @@ static int rpi_firmware_remove(struct pl
|
||||
rpi_clk = NULL;
|
||||
|
||||
rpi_firmware_put(fw);
|
||||
@ -52,7 +52,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -381,7 +385,18 @@ static struct platform_driver rpi_firmwa
|
||||
@@ -382,7 +386,18 @@ static struct platform_driver rpi_firmwa
|
||||
.shutdown = rpi_firmware_shutdown,
|
||||
.remove = rpi_firmware_remove,
|
||||
};
|
||||
|
@ -27,7 +27,7 @@ mfd: Add rpi_sense_core of compatible string
|
||||
|
||||
--- a/drivers/input/joystick/Kconfig
|
||||
+++ b/drivers/input/joystick/Kconfig
|
||||
@@ -399,4 +399,12 @@ config JOYSTICK_N64
|
||||
@@ -400,4 +400,12 @@ config JOYSTICK_N64
|
||||
Say Y here if you want enable support for the four
|
||||
built-in controller ports on the Nintendo 64 console.
|
||||
|
||||
|
@ -48,7 +48,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
static void
|
||||
rpi_firmware_print_firmware_revision(struct rpi_firmware *fw)
|
||||
{
|
||||
@@ -386,15 +407,32 @@ static struct platform_driver rpi_firmwa
|
||||
@@ -387,15 +408,32 @@ static struct platform_driver rpi_firmwa
|
||||
.remove = rpi_firmware_remove,
|
||||
};
|
||||
|
||||
|
@ -80,7 +80,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -338,6 +375,7 @@ static int rpi_firmware_probe(struct pla
|
||||
@@ -339,6 +376,7 @@ static int rpi_firmware_probe(struct pla
|
||||
g_pdev = pdev;
|
||||
|
||||
rpi_firmware_print_firmware_revision(fw);
|
||||
|
@ -36,7 +36,7 @@ Co-authored-by: Phil Elwell <phil@raspberrypi.org>
|
||||
MODULE_DESCRIPTION("BCM2835 clock driver");
|
||||
--- a/drivers/firmware/raspberrypi.c
|
||||
+++ b/drivers/firmware/raspberrypi.c
|
||||
@@ -498,7 +498,7 @@ out2:
|
||||
@@ -499,7 +499,7 @@ out2:
|
||||
out1:
|
||||
return ret;
|
||||
}
|
||||
|
@ -1,55 +0,0 @@
|
||||
From cf7d5f766e0a9eeb09271c36f546ac0a1fdc0444 Mon Sep 17 00:00:00 2001
|
||||
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
Date: Fri, 24 Jan 2020 14:22:06 +0000
|
||||
Subject: [PATCH] drm/fourcc: Add packed 10bit YUV 4:2:0 format
|
||||
|
||||
Adds a format that is 3 10bit YUV 4:2:0 samples packed into
|
||||
a 32bit work (with 2 spare bits).
|
||||
|
||||
Supported on Broadcom BCM2711 chips.
|
||||
|
||||
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
---
|
||||
drivers/gpu/drm/drm_fourcc.c | 3 +++
|
||||
include/uapi/drm/drm_fourcc.h | 11 +++++++++++
|
||||
2 files changed, 14 insertions(+)
|
||||
|
||||
--- a/drivers/gpu/drm/drm_fourcc.c
|
||||
+++ b/drivers/gpu/drm/drm_fourcc.c
|
||||
@@ -266,6 +266,9 @@ const struct drm_format_info *__drm_form
|
||||
.num_planes = 3, .char_per_block = { 2, 2, 2 },
|
||||
.block_w = { 1, 1, 1 }, .block_h = { 1, 1, 1 }, .hsub = 0,
|
||||
.vsub = 0, .is_yuv = true },
|
||||
+ { .format = DRM_FORMAT_P030, .depth = 0, .num_planes = 2,
|
||||
+ .char_per_block = { 4, 4, 0 }, .block_w = { 3, 0, 0 }, .block_h = { 1, 0, 0 },
|
||||
+ .hsub = 2, .vsub = 2, .is_yuv = true},
|
||||
};
|
||||
|
||||
unsigned int i;
|
||||
--- a/include/uapi/drm/drm_fourcc.h
|
||||
+++ b/include/uapi/drm/drm_fourcc.h
|
||||
@@ -325,6 +325,13 @@ extern "C" {
|
||||
#define DRM_FORMAT_Q401 fourcc_code('Q', '4', '0', '1')
|
||||
|
||||
/*
|
||||
+ * 2 plane YCbCr MSB aligned, 3 pixels packed into 4 bytes.
|
||||
+ * index 0 = Y plane, [31:0] x:Y2:Y1:Y0 2:10:10:10 little endian
|
||||
+ * index 1 = Cr:Cb plane, [63:0] x:Cr2:Cb2:Cr1:x:Cb1:Cr0:Cb0 [2:10:10:10:2:10:10:10] little endian
|
||||
+ */
|
||||
+#define DRM_FORMAT_P030 fourcc_code('P', '0', '3', '0') /* 2x2 subsampled Cr:Cb plane 10 bits per channel packed */
|
||||
+
|
||||
+/*
|
||||
* 3 plane YCbCr
|
||||
* index 0: Y plane, [7:0] Y
|
||||
* index 1: Cb plane, [7:0] Cb
|
||||
@@ -842,6 +849,10 @@ drm_fourcc_canonicalize_nvidia_format_mo
|
||||
* and UV. Some SAND-using hardware stores UV in a separate tiled
|
||||
* image from Y to reduce the column height, which is not supported
|
||||
* with these modifiers.
|
||||
+ *
|
||||
+ * The DRM_FORMAT_MOD_BROADCOM_SAND128_COL_HEIGHT modifier is also
|
||||
+ * supported for DRM_FORMAT_P030 where the columns remain as 128 bytes
|
||||
+ * wide, but as this is a 10 bpp format that translates to 96 pixels.
|
||||
*/
|
||||
|
||||
#define DRM_FORMAT_MOD_BROADCOM_SAND32_COL_HEIGHT(v) \
|
@ -26,7 +26,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
/* Device and char device-related information */
|
||||
static DEFINE_IDA(gpio_ida);
|
||||
static dev_t gpio_devt;
|
||||
@@ -2392,8 +2394,8 @@ int gpiod_direction_output(struct gpio_d
|
||||
@@ -2395,8 +2397,8 @@ int gpiod_direction_output(struct gpio_d
|
||||
value = !!value;
|
||||
|
||||
/* GPIOs used for enabled IRQs shall not be set as output */
|
||||
@ -37,7 +37,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
gpiod_err(desc,
|
||||
"%s: tried to set a GPIO tied to an IRQ as output\n",
|
||||
__func__);
|
||||
@@ -3211,8 +3213,8 @@ int gpiochip_lock_as_irq(struct gpio_chi
|
||||
@@ -3213,8 +3215,8 @@ int gpiochip_lock_as_irq(struct gpio_chi
|
||||
}
|
||||
|
||||
/* To be valid for IRQ the line needs to be input or open drain */
|
||||
|
@ -15,7 +15,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
--- a/drivers/spi/spidev.c
|
||||
+++ b/drivers/spi/spidev.c
|
||||
@@ -669,6 +669,7 @@ static const struct file_operations spid
|
||||
@@ -680,6 +680,7 @@ static const struct file_operations spid
|
||||
static struct class *spidev_class;
|
||||
|
||||
static const struct spi_device_id spidev_spi_ids[] = {
|
||||
|
@ -205,7 +205,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
xhci_err(xhci, "Tried to move enqueue past ring segment\n");
|
||||
return;
|
||||
}
|
||||
@@ -3153,7 +3156,7 @@ irqreturn_t xhci_irq(struct usb_hcd *hcd
|
||||
@@ -3159,7 +3162,7 @@ irqreturn_t xhci_irq(struct usb_hcd *hcd
|
||||
* that clears the EHB.
|
||||
*/
|
||||
while (xhci_handle_event(xhci) > 0) {
|
||||
@ -214,7 +214,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
continue;
|
||||
xhci_update_erst_dequeue(xhci, event_ring_deq);
|
||||
event_ring_deq = xhci->event_ring->dequeue;
|
||||
@@ -3295,7 +3298,8 @@ static int prepare_ring(struct xhci_hcd
|
||||
@@ -3301,7 +3304,8 @@ static int prepare_ring(struct xhci_hcd
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -440,9 +440,9 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
st7701->dsi = dsi;
|
||||
- st7701->desc = desc;
|
||||
|
||||
return mipi_dsi_attach(dsi);
|
||||
}
|
||||
@@ -397,21 +639,115 @@ static int st7701_dsi_remove(struct mipi
|
||||
ret = mipi_dsi_attach(dsi);
|
||||
if (ret)
|
||||
@@ -405,21 +647,115 @@ static int st7701_dsi_remove(struct mipi
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -47,7 +47,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
}
|
||||
|
||||
static int spi_gpio_setup(struct spi_device *spi)
|
||||
@@ -289,6 +297,7 @@ static int spi_gpio_request(struct devic
|
||||
@@ -299,6 +307,7 @@ static int spi_gpio_request(struct devic
|
||||
if (IS_ERR(spi_gpio->miso))
|
||||
return PTR_ERR(spi_gpio->miso);
|
||||
|
||||
|
@ -36,7 +36,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
|
||||
--- a/drivers/usb/host/xhci-ring.c
|
||||
+++ b/drivers/usb/host/xhci-ring.c
|
||||
@@ -3608,14 +3608,15 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||
@@ -3614,14 +3614,15 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||
unsigned int num_trbs;
|
||||
unsigned int start_cycle, num_sgs = 0;
|
||||
unsigned int enqd_len, block_len, trb_buff_len, full_len;
|
||||
@ -54,7 +54,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
full_len = urb->transfer_buffer_length;
|
||||
/* If we have scatter/gather list, we use it. */
|
||||
if (urb->num_sgs && !(urb->transfer_flags & URB_DMA_MAP_SINGLE)) {
|
||||
@@ -3652,6 +3653,17 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||
@@ -3658,6 +3659,17 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||
start_cycle = ring->cycle_state;
|
||||
send_addr = addr;
|
||||
|
||||
@ -72,7 +72,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
/* Queue the TRBs, even if they are zero-length */
|
||||
for (enqd_len = 0; first_trb || enqd_len < full_len;
|
||||
enqd_len += trb_buff_len) {
|
||||
@@ -3664,6 +3676,11 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||
@@ -3670,6 +3682,11 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||
if (enqd_len + trb_buff_len > full_len)
|
||||
trb_buff_len = full_len - enqd_len;
|
||||
|
||||
|
@ -13,7 +13,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
|
||||
--- a/drivers/usb/host/xhci-ring.c
|
||||
+++ b/drivers/usb/host/xhci-ring.c
|
||||
@@ -3608,7 +3608,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||
@@ -3614,7 +3614,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||
unsigned int num_trbs;
|
||||
unsigned int start_cycle, num_sgs = 0;
|
||||
unsigned int enqd_len, block_len, trb_buff_len, full_len;
|
||||
@ -22,7 +22,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
u32 field, length_field, remainder, maxpacket;
|
||||
u64 addr, send_addr;
|
||||
|
||||
@@ -3654,14 +3654,9 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||
@@ -3660,14 +3660,9 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||
send_addr = addr;
|
||||
|
||||
if (xhci->quirks & XHCI_VLI_SS_BULK_OUT_BUG &&
|
||||
@ -40,7 +40,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
}
|
||||
|
||||
/* Queue the TRBs, even if they are zero-length */
|
||||
@@ -3676,7 +3671,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||
@@ -3682,7 +3677,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||
if (enqd_len + trb_buff_len > full_len)
|
||||
trb_buff_len = full_len - enqd_len;
|
||||
|
||||
|
@ -22,7 +22,7 @@ Reviewed-by: Vadim Pasternak <vadimp@nvidia.com>
|
||||
|
||||
--- a/drivers/hwmon/Kconfig
|
||||
+++ b/drivers/hwmon/Kconfig
|
||||
@@ -1684,6 +1684,19 @@ config SENSORS_EMC2103
|
||||
@@ -1685,6 +1685,19 @@ config SENSORS_EMC2103
|
||||
This driver can also be built as a module. If so, the module
|
||||
will be called emc2103.
|
||||
|
||||
|
@ -116,7 +116,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
|
||||
}
|
||||
--- a/drivers/gpio/gpiolib.c
|
||||
+++ b/drivers/gpio/gpiolib.c
|
||||
@@ -1799,7 +1799,8 @@ int gpiochip_add_pingroup_range(struct g
|
||||
@@ -1802,7 +1802,8 @@ int gpiochip_add_pingroup_range(struct g
|
||||
|
||||
list_add_tail(&pin_range->node, &gdev->pin_ranges);
|
||||
|
||||
@ -126,7 +126,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(gpiochip_add_pingroup_range);
|
||||
|
||||
@@ -1856,7 +1857,7 @@ int gpiochip_add_pin_range(struct gpio_c
|
||||
@@ -1859,7 +1860,7 @@ int gpiochip_add_pin_range(struct gpio_c
|
||||
|
||||
list_add_tail(&pin_range->node, &gdev->pin_ranges);
|
||||
|
||||
|
@ -107,7 +107,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
}
|
||||
|
||||
static struct clk clk_pcie = {
|
||||
@@ -548,6 +562,21 @@ static struct clk_lookup bcm6368_clks[]
|
||||
@@ -550,6 +564,21 @@ static struct clk_lookup bcm6368_clks[]
|
||||
CLKDEV_INIT(NULL, "ipsec", &clk_ipsec),
|
||||
};
|
||||
|
||||
@ -129,7 +129,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
#define HSSPI_PLL_HZ_6328 133333333
|
||||
#define HSSPI_PLL_HZ_6362 400000000
|
||||
|
||||
@@ -580,6 +609,10 @@ static int __init bcm63xx_clk_init(void)
|
||||
@@ -582,6 +611,10 @@ static int __init bcm63xx_clk_init(void)
|
||||
case BCM6368_CPU_ID:
|
||||
clkdev_add_table(bcm6368_clks, ARRAY_SIZE(bcm6368_clks));
|
||||
break;
|
||||
|
@ -57,7 +57,7 @@ Subject: [PATCH 51/53] MIPS: BCM63XX: add support for BCM6318
|
||||
mask = CKCTL_6328_HSSPI_EN;
|
||||
else if (BCMCPU_IS_6362())
|
||||
mask = CKCTL_6362_HSSPI_EN;
|
||||
@@ -456,6 +458,19 @@ static struct clk_lookup bcm3368_clks[]
|
||||
@@ -458,6 +460,19 @@ static struct clk_lookup bcm3368_clks[]
|
||||
CLKDEV_INIT("bcm63xx_enet.1", "enet", &clk_enet1),
|
||||
};
|
||||
|
||||
@ -77,7 +77,7 @@ Subject: [PATCH 51/53] MIPS: BCM63XX: add support for BCM6318
|
||||
static struct clk_lookup bcm6328_clks[] = {
|
||||
/* fixed rate clocks */
|
||||
CLKDEV_INIT(NULL, "periph", &clk_periph),
|
||||
@@ -577,6 +592,7 @@ static struct clk_lookup bcm63268_clks[]
|
||||
@@ -579,6 +594,7 @@ static struct clk_lookup bcm63268_clks[]
|
||||
CLKDEV_INIT(NULL, "pcie", &clk_pcie),
|
||||
};
|
||||
|
||||
@ -85,7 +85,7 @@ Subject: [PATCH 51/53] MIPS: BCM63XX: add support for BCM6318
|
||||
#define HSSPI_PLL_HZ_6328 133333333
|
||||
#define HSSPI_PLL_HZ_6362 400000000
|
||||
|
||||
@@ -586,6 +602,10 @@ static int __init bcm63xx_clk_init(void)
|
||||
@@ -588,6 +604,10 @@ static int __init bcm63xx_clk_init(void)
|
||||
case BCM3368_CPU_ID:
|
||||
clkdev_add_table(bcm3368_clks, ARRAY_SIZE(bcm3368_clks));
|
||||
break;
|
||||
|
@ -9,7 +9,7 @@ Subject: [PATCH] MIPS: BCM63XX: add clkdev lookups for device tree
|
||||
|
||||
--- a/arch/mips/bcm63xx/clk.c
|
||||
+++ b/arch/mips/bcm63xx/clk.c
|
||||
@@ -501,6 +501,8 @@ static struct clk_lookup bcm3368_clks[]
|
||||
@@ -503,6 +503,8 @@ static struct clk_lookup bcm3368_clks[]
|
||||
CLKDEV_INIT(NULL, "periph", &clk_periph),
|
||||
CLKDEV_INIT("bcm63xx_uart.0", "refclk", &clk_periph),
|
||||
CLKDEV_INIT("bcm63xx_uart.1", "refclk", &clk_periph),
|
||||
@ -18,7 +18,7 @@ Subject: [PATCH] MIPS: BCM63XX: add clkdev lookups for device tree
|
||||
/* gated clocks */
|
||||
CLKDEV_INIT(NULL, "enet0", &clk_enet0),
|
||||
CLKDEV_INIT(NULL, "enet1", &clk_enet1),
|
||||
@@ -517,7 +519,9 @@ static struct clk_lookup bcm6318_clks[]
|
||||
@@ -519,7 +521,9 @@ static struct clk_lookup bcm6318_clks[]
|
||||
/* fixed rate clocks */
|
||||
CLKDEV_INIT(NULL, "periph", &clk_periph),
|
||||
CLKDEV_INIT("bcm63xx_uart.0", "refclk", &clk_periph),
|
||||
@ -28,7 +28,7 @@ Subject: [PATCH] MIPS: BCM63XX: add clkdev lookups for device tree
|
||||
/* gated clocks */
|
||||
CLKDEV_INIT(NULL, "enetsw", &clk_enetsw),
|
||||
CLKDEV_INIT(NULL, "usbh", &clk_usbh),
|
||||
@@ -531,7 +535,10 @@ static struct clk_lookup bcm6328_clks[]
|
||||
@@ -533,7 +537,10 @@ static struct clk_lookup bcm6328_clks[]
|
||||
CLKDEV_INIT(NULL, "periph", &clk_periph),
|
||||
CLKDEV_INIT("bcm63xx_uart.0", "refclk", &clk_periph),
|
||||
CLKDEV_INIT("bcm63xx_uart.1", "refclk", &clk_periph),
|
||||
@ -39,7 +39,7 @@ Subject: [PATCH] MIPS: BCM63XX: add clkdev lookups for device tree
|
||||
/* gated clocks */
|
||||
CLKDEV_INIT(NULL, "enetsw", &clk_enetsw),
|
||||
CLKDEV_INIT(NULL, "usbh", &clk_usbh),
|
||||
@@ -544,6 +551,7 @@ static struct clk_lookup bcm6338_clks[]
|
||||
@@ -546,6 +553,7 @@ static struct clk_lookup bcm6338_clks[]
|
||||
/* fixed rate clocks */
|
||||
CLKDEV_INIT(NULL, "periph", &clk_periph),
|
||||
CLKDEV_INIT("bcm63xx_uart.0", "refclk", &clk_periph),
|
||||
@ -47,7 +47,7 @@ Subject: [PATCH] MIPS: BCM63XX: add clkdev lookups for device tree
|
||||
/* gated clocks */
|
||||
CLKDEV_INIT(NULL, "enet0", &clk_enet0),
|
||||
CLKDEV_INIT(NULL, "enet1", &clk_enet1),
|
||||
@@ -558,6 +566,7 @@ static struct clk_lookup bcm6345_clks[]
|
||||
@@ -560,6 +568,7 @@ static struct clk_lookup bcm6345_clks[]
|
||||
/* fixed rate clocks */
|
||||
CLKDEV_INIT(NULL, "periph", &clk_periph),
|
||||
CLKDEV_INIT("bcm63xx_uart.0", "refclk", &clk_periph),
|
||||
@ -55,7 +55,7 @@ Subject: [PATCH] MIPS: BCM63XX: add clkdev lookups for device tree
|
||||
/* gated clocks */
|
||||
CLKDEV_INIT(NULL, "enet0", &clk_enet0),
|
||||
CLKDEV_INIT(NULL, "enet1", &clk_enet1),
|
||||
@@ -572,6 +581,7 @@ static struct clk_lookup bcm6348_clks[]
|
||||
@@ -574,6 +583,7 @@ static struct clk_lookup bcm6348_clks[]
|
||||
/* fixed rate clocks */
|
||||
CLKDEV_INIT(NULL, "periph", &clk_periph),
|
||||
CLKDEV_INIT("bcm63xx_uart.0", "refclk", &clk_periph),
|
||||
@ -63,7 +63,7 @@ Subject: [PATCH] MIPS: BCM63XX: add clkdev lookups for device tree
|
||||
/* gated clocks */
|
||||
CLKDEV_INIT(NULL, "enet0", &clk_enet0),
|
||||
CLKDEV_INIT(NULL, "enet1", &clk_enet1),
|
||||
@@ -588,6 +598,8 @@ static struct clk_lookup bcm6358_clks[]
|
||||
@@ -590,6 +600,8 @@ static struct clk_lookup bcm6358_clks[]
|
||||
CLKDEV_INIT(NULL, "periph", &clk_periph),
|
||||
CLKDEV_INIT("bcm63xx_uart.0", "refclk", &clk_periph),
|
||||
CLKDEV_INIT("bcm63xx_uart.1", "refclk", &clk_periph),
|
||||
@ -72,7 +72,7 @@ Subject: [PATCH] MIPS: BCM63XX: add clkdev lookups for device tree
|
||||
/* gated clocks */
|
||||
CLKDEV_INIT(NULL, "enet0", &clk_enet0),
|
||||
CLKDEV_INIT(NULL, "enet1", &clk_enet1),
|
||||
@@ -607,7 +619,10 @@ static struct clk_lookup bcm6362_clks[]
|
||||
@@ -609,7 +621,10 @@ static struct clk_lookup bcm6362_clks[]
|
||||
CLKDEV_INIT(NULL, "periph", &clk_periph),
|
||||
CLKDEV_INIT("bcm63xx_uart.0", "refclk", &clk_periph),
|
||||
CLKDEV_INIT("bcm63xx_uart.1", "refclk", &clk_periph),
|
||||
@ -83,7 +83,7 @@ Subject: [PATCH] MIPS: BCM63XX: add clkdev lookups for device tree
|
||||
/* gated clocks */
|
||||
CLKDEV_INIT(NULL, "enetsw", &clk_enetsw),
|
||||
CLKDEV_INIT(NULL, "usbh", &clk_usbh),
|
||||
@@ -623,6 +638,8 @@ static struct clk_lookup bcm6368_clks[]
|
||||
@@ -625,6 +640,8 @@ static struct clk_lookup bcm6368_clks[]
|
||||
CLKDEV_INIT(NULL, "periph", &clk_periph),
|
||||
CLKDEV_INIT("bcm63xx_uart.0", "refclk", &clk_periph),
|
||||
CLKDEV_INIT("bcm63xx_uart.1", "refclk", &clk_periph),
|
||||
@ -92,7 +92,7 @@ Subject: [PATCH] MIPS: BCM63XX: add clkdev lookups for device tree
|
||||
/* gated clocks */
|
||||
CLKDEV_INIT(NULL, "enetsw", &clk_enetsw),
|
||||
CLKDEV_INIT(NULL, "usbh", &clk_usbh),
|
||||
@@ -637,7 +654,10 @@ static struct clk_lookup bcm63268_clks[]
|
||||
@@ -639,7 +656,10 @@ static struct clk_lookup bcm63268_clks[]
|
||||
CLKDEV_INIT(NULL, "periph", &clk_periph),
|
||||
CLKDEV_INIT("bcm63xx_uart.0", "refclk", &clk_periph),
|
||||
CLKDEV_INIT("bcm63xx_uart.1", "refclk", &clk_periph),
|
||||
|
@ -24,7 +24,7 @@
|
||||
* Internal peripheral clock
|
||||
*/
|
||||
static struct clk clk_periph = {
|
||||
@@ -624,6 +641,7 @@ static struct clk_lookup bcm6362_clks[]
|
||||
@@ -626,6 +643,7 @@ static struct clk_lookup bcm6362_clks[]
|
||||
CLKDEV_INIT("bcm63xx-hsspi.0", "pll", &clk_hsspi_pll),
|
||||
CLKDEV_INIT("10001000.spi", "pll", &clk_hsspi_pll),
|
||||
/* gated clocks */
|
||||
@ -32,7 +32,7 @@
|
||||
CLKDEV_INIT(NULL, "enetsw", &clk_enetsw),
|
||||
CLKDEV_INIT(NULL, "usbh", &clk_usbh),
|
||||
CLKDEV_INIT(NULL, "usbd", &clk_usbd),
|
||||
@@ -641,6 +659,7 @@ static struct clk_lookup bcm6368_clks[]
|
||||
@@ -643,6 +661,7 @@ static struct clk_lookup bcm6368_clks[]
|
||||
CLKDEV_INIT("10000100.serial", "refclk", &clk_periph),
|
||||
CLKDEV_INIT("10000120.serial", "refclk", &clk_periph),
|
||||
/* gated clocks */
|
||||
@ -40,7 +40,7 @@
|
||||
CLKDEV_INIT(NULL, "enetsw", &clk_enetsw),
|
||||
CLKDEV_INIT(NULL, "usbh", &clk_usbh),
|
||||
CLKDEV_INIT(NULL, "usbd", &clk_usbd),
|
||||
@@ -659,6 +678,7 @@ static struct clk_lookup bcm63268_clks[]
|
||||
@@ -661,6 +680,7 @@ static struct clk_lookup bcm63268_clks[]
|
||||
CLKDEV_INIT("bcm63xx-hsspi.0", "pll", &clk_hsspi_pll),
|
||||
CLKDEV_INIT("10001000.spi", "pll", &clk_hsspi_pll),
|
||||
/* gated clocks */
|
||||
|
@ -297,7 +297,7 @@ Change-Id: I25d9eda8c6bdc7c3653b9f210a159d6c247c81e8
|
||||
}
|
||||
--- a/kernel/fork.c
|
||||
+++ b/kernel/fork.c
|
||||
@@ -1080,6 +1080,7 @@ static struct mm_struct *mm_init(struct
|
||||
@@ -1083,6 +1083,7 @@ static struct mm_struct *mm_init(struct
|
||||
goto fail_nocontext;
|
||||
|
||||
mm->user_ns = get_user_ns(user_ns);
|
||||
@ -305,7 +305,7 @@ Change-Id: I25d9eda8c6bdc7c3653b9f210a159d6c247c81e8
|
||||
return mm;
|
||||
|
||||
fail_nocontext:
|
||||
@@ -1122,6 +1123,7 @@ static inline void __mmput(struct mm_str
|
||||
@@ -1125,6 +1126,7 @@ static inline void __mmput(struct mm_str
|
||||
}
|
||||
if (mm->binfmt)
|
||||
module_put(mm->binfmt->module);
|
||||
@ -313,7 +313,7 @@ Change-Id: I25d9eda8c6bdc7c3653b9f210a159d6c247c81e8
|
||||
mmdrop(mm);
|
||||
}
|
||||
|
||||
@@ -2617,6 +2619,13 @@ pid_t kernel_clone(struct kernel_clone_a
|
||||
@@ -2622,6 +2624,13 @@ pid_t kernel_clone(struct kernel_clone_a
|
||||
get_task_struct(p);
|
||||
}
|
||||
|
||||
|
@ -103,4 +103,4 @@ Link: https://lore.kernel.org/linux-mtd/20220622010628.30414-4-ansuelsmth@gmail.
|
||||
+ mtd_check_of_node(mtd);
|
||||
of_node_get(mtd_get_of_node(mtd));
|
||||
error = device_register(&mtd->dev);
|
||||
if (error)
|
||||
if (error) {
|
||||
|
@ -25,7 +25,7 @@ Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
|
||||
|
||||
--- a/drivers/mtd/mtdcore.c
|
||||
+++ b/drivers/mtd/mtdcore.c
|
||||
@@ -1227,6 +1227,34 @@ int __get_mtd_device(struct mtd_info *mt
|
||||
@@ -1229,6 +1229,34 @@ int __get_mtd_device(struct mtd_info *mt
|
||||
EXPORT_SYMBOL_GPL(__get_mtd_device);
|
||||
|
||||
/**
|
||||
|
@ -27,7 +27,7 @@ Link: https://lore.kernel.org/linux-mtd/20221022211318.32009-2-zajec5@gmail.com
|
||||
|
||||
#include <linux/mtd/mtd.h>
|
||||
#include <linux/mtd/partitions.h>
|
||||
@@ -746,6 +747,17 @@ int add_mtd_device(struct mtd_info *mtd)
|
||||
@@ -748,6 +749,17 @@ int add_mtd_device(struct mtd_info *mtd)
|
||||
not->add(mtd);
|
||||
|
||||
mutex_unlock(&mtd_table_mutex);
|
||||
|
@ -233,7 +233,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
static inline void
|
||||
--- a/include/linux/netdevice.h
|
||||
+++ b/include/linux/netdevice.h
|
||||
@@ -863,6 +863,7 @@ enum net_device_path_type {
|
||||
@@ -870,6 +870,7 @@ enum net_device_path_type {
|
||||
DEV_PATH_BRIDGE,
|
||||
DEV_PATH_PPPOE,
|
||||
DEV_PATH_DSA,
|
||||
@ -241,7 +241,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
};
|
||||
|
||||
struct net_device_path {
|
||||
@@ -888,6 +889,12 @@ struct net_device_path {
|
||||
@@ -895,6 +896,12 @@ struct net_device_path {
|
||||
int port;
|
||||
u16 proto;
|
||||
} dsa;
|
||||
|
@ -87,7 +87,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
stmmac_clear_tx_descriptors(priv, queue);
|
||||
|
||||
stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
|
||||
@@ -7398,6 +7393,25 @@ int stmmac_suspend(struct device *dev)
|
||||
@@ -7400,6 +7395,25 @@ int stmmac_suspend(struct device *dev)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(stmmac_suspend);
|
||||
|
||||
@ -113,7 +113,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
/**
|
||||
* stmmac_reset_queues_param - reset queue parameters
|
||||
* @priv: device pointer
|
||||
@@ -7408,22 +7422,11 @@ static void stmmac_reset_queues_param(st
|
||||
@@ -7410,22 +7424,11 @@ static void stmmac_reset_queues_param(st
|
||||
u32 tx_cnt = priv->plat->tx_queues_to_use;
|
||||
u32 queue;
|
||||
|
||||
|
@ -1210,7 +1210,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
if (netif_running(dev))
|
||||
ret = stmmac_open(dev);
|
||||
@@ -7344,7 +7348,7 @@ int stmmac_suspend(struct device *dev)
|
||||
@@ -7346,7 +7350,7 @@ int stmmac_suspend(struct device *dev)
|
||||
stmmac_disable_all_queues(priv);
|
||||
|
||||
for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
|
||||
@ -1219,7 +1219,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
if (priv->eee_enabled) {
|
||||
priv->tx_path_in_lpi_mode = false;
|
||||
@@ -7395,7 +7399,7 @@ EXPORT_SYMBOL_GPL(stmmac_suspend);
|
||||
@@ -7397,7 +7401,7 @@ EXPORT_SYMBOL_GPL(stmmac_suspend);
|
||||
|
||||
static void stmmac_reset_rx_queue(struct stmmac_priv *priv, u32 queue)
|
||||
{
|
||||
@ -1228,7 +1228,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
rx_q->cur_rx = 0;
|
||||
rx_q->dirty_rx = 0;
|
||||
@@ -7403,7 +7407,7 @@ static void stmmac_reset_rx_queue(struct
|
||||
@@ -7405,7 +7409,7 @@ static void stmmac_reset_rx_queue(struct
|
||||
|
||||
static void stmmac_reset_tx_queue(struct stmmac_priv *priv, u32 queue)
|
||||
{
|
||||
@ -1250,7 +1250,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
stmmac_set_rx_tail_ptr(priv, priv->ioaddr, tail, i);
|
||||
stmmac_start_rx(priv, priv->ioaddr, i);
|
||||
@@ -1680,7 +1680,7 @@ cleanup:
|
||||
@@ -1684,7 +1684,7 @@ cleanup:
|
||||
static int __stmmac_test_jumbo(struct stmmac_priv *priv, u16 queue)
|
||||
{
|
||||
struct stmmac_packet_attrs attr = { };
|
||||
@ -1259,7 +1259,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
attr.dst = priv->dev->dev_addr;
|
||||
attr.max_size = size - ETH_FCS_LEN;
|
||||
@@ -1763,7 +1763,7 @@ static int stmmac_test_tbs(struct stmmac
|
||||
@@ -1767,7 +1767,7 @@ static int stmmac_test_tbs(struct stmmac
|
||||
|
||||
/* Find first TBS enabled Queue, if any */
|
||||
for (i = 0; i < priv->plat->tx_queues_to_use; i++)
|
||||
|
@ -1150,7 +1150,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
dma_desc_error:
|
||||
return ret;
|
||||
}
|
||||
@@ -7490,7 +7606,7 @@ int stmmac_resume(struct device *dev)
|
||||
@@ -7492,7 +7608,7 @@ int stmmac_resume(struct device *dev)
|
||||
stmmac_reset_queues_param(priv);
|
||||
|
||||
stmmac_free_tx_skbufs(priv);
|
||||
|
@ -77,7 +77,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
|
||||
#include "mtdcore.h"
|
||||
|
||||
@@ -1079,6 +1080,8 @@ int mtd_device_parse_register(struct mtd
|
||||
@@ -1081,6 +1082,8 @@ int mtd_device_parse_register(struct mtd
|
||||
|
||||
ret = mtd_otp_nvmem_add(mtd);
|
||||
|
||||
|
@ -12,7 +12,7 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
|
||||
--- a/drivers/mtd/mtdcore.c
|
||||
+++ b/drivers/mtd/mtdcore.c
|
||||
@@ -759,7 +759,8 @@ int add_mtd_device(struct mtd_info *mtd)
|
||||
@@ -761,7 +761,8 @@ int add_mtd_device(struct mtd_info *mtd)
|
||||
|
||||
mutex_unlock(&mtd_table_mutex);
|
||||
|
||||
|
@ -19,7 +19,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/include/linux/netdevice.h
|
||||
+++ b/include/linux/netdevice.h
|
||||
@@ -1669,6 +1669,10 @@ enum netdev_priv_flags {
|
||||
@@ -1676,6 +1676,10 @@ enum netdev_priv_flags {
|
||||
IFF_TX_SKB_NO_LINEAR = BIT_ULL(31),
|
||||
};
|
||||
|
||||
@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
#define IFF_802_1Q_VLAN IFF_802_1Q_VLAN
|
||||
#define IFF_EBRIDGE IFF_EBRIDGE
|
||||
#define IFF_BONDING IFF_BONDING
|
||||
@@ -1701,6 +1705,7 @@ enum netdev_priv_flags {
|
||||
@@ -1708,6 +1712,7 @@ enum netdev_priv_flags {
|
||||
#define IFF_L3MDEV_RX_HANDLER IFF_L3MDEV_RX_HANDLER
|
||||
#define IFF_LIVE_RENAME_OK IFF_LIVE_RENAME_OK
|
||||
#define IFF_TX_SKB_NO_LINEAR IFF_TX_SKB_NO_LINEAR
|
||||
@ -38,7 +38,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
/* Specifies the type of the struct net_device::ml_priv pointer */
|
||||
enum netdev_ml_priv_type {
|
||||
@@ -2002,6 +2007,7 @@ struct net_device {
|
||||
@@ -2009,6 +2014,7 @@ struct net_device {
|
||||
/* Read-mostly cache-line for fast-path access */
|
||||
unsigned int flags;
|
||||
unsigned int priv_flags;
|
||||
@ -46,7 +46,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
const struct net_device_ops *netdev_ops;
|
||||
int ifindex;
|
||||
unsigned short gflags;
|
||||
@@ -2062,6 +2068,11 @@ struct net_device {
|
||||
@@ -2069,6 +2075,11 @@ struct net_device {
|
||||
const struct tlsdev_ops *tlsdev_ops;
|
||||
#endif
|
||||
|
||||
@ -58,7 +58,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
const struct header_ops *header_ops;
|
||||
|
||||
unsigned char operstate;
|
||||
@@ -2136,6 +2147,10 @@ struct net_device {
|
||||
@@ -2143,6 +2154,10 @@ struct net_device {
|
||||
struct mctp_dev __rcu *mctp_ptr;
|
||||
#endif
|
||||
|
||||
|
@ -105,7 +105,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
{
|
||||
--- a/include/linux/gpio/consumer.h
|
||||
+++ b/include/linux/gpio/consumer.h
|
||||
@@ -715,6 +715,7 @@ static inline void devm_acpi_dev_remove_
|
||||
@@ -712,6 +712,7 @@ static inline void devm_acpi_dev_remove_
|
||||
|
||||
#if IS_ENABLED(CONFIG_GPIOLIB) && IS_ENABLED(CONFIG_GPIO_SYSFS)
|
||||
|
||||
@ -113,7 +113,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
int gpiod_export(struct gpio_desc *desc, bool direction_may_change);
|
||||
int gpiod_export_link(struct device *dev, const char *name,
|
||||
struct gpio_desc *desc);
|
||||
@@ -722,6 +723,13 @@ void gpiod_unexport(struct gpio_desc *de
|
||||
@@ -719,6 +720,13 @@ void gpiod_unexport(struct gpio_desc *de
|
||||
|
||||
#else /* CONFIG_GPIOLIB && CONFIG_GPIO_SYSFS */
|
||||
|
||||
|
@ -1,22 +0,0 @@
|
||||
From d3c5b26768dbe990c4e1bd79e420c11ce7491d51 Mon Sep 17 00:00:00 2001
|
||||
From: OpenWrt community <openwrt-devel@lists.openwrt.org>
|
||||
Date: Wed, 13 Jul 2022 11:36:00 +0200
|
||||
Subject: [PATCH] swab: use stddefs.h instead of compiler.h
|
||||
|
||||
Fix an issue with kernel headers that broke perf.
|
||||
|
||||
---
|
||||
include/uapi/linux/swab.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/include/uapi/linux/swab.h
|
||||
+++ b/include/uapi/linux/swab.h
|
||||
@@ -3,7 +3,7 @@
|
||||
#define _UAPI_LINUX_SWAB_H
|
||||
|
||||
#include <linux/types.h>
|
||||
-#include <linux/compiler.h>
|
||||
+#include <linux/stddef.h>
|
||||
#include <asm/bitsperlong.h>
|
||||
#include <asm/swab.h>
|
||||
|
@ -8,7 +8,7 @@ Signed-off-by: Giuseppe Lippolis <giu.lippolis@gmail.com>
|
||||
|
||||
--- a/drivers/spi/spidev.c
|
||||
+++ b/drivers/spi/spidev.c
|
||||
@@ -696,6 +696,7 @@ static const struct of_device_id spidev_
|
||||
@@ -707,6 +707,7 @@ static const struct of_device_id spidev_
|
||||
{ .compatible = "menlo,m53cpld" },
|
||||
{ .compatible = "cisco,spi-petra" },
|
||||
{ .compatible = "micron,spi-authenta" },
|
||||
|
@ -202,7 +202,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
|
||||
return !!nor->params->erase_map.uniform_erase_type;
|
||||
}
|
||||
|
||||
@@ -2388,6 +2390,7 @@ static int spi_nor_select_erase(struct s
|
||||
@@ -2389,6 +2391,7 @@ static int spi_nor_select_erase(struct s
|
||||
{
|
||||
struct spi_nor_erase_map *map = &nor->params->erase_map;
|
||||
const struct spi_nor_erase_type *erase = NULL;
|
||||
@ -210,7 +210,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
|
||||
struct mtd_info *mtd = &nor->mtd;
|
||||
u32 wanted_size = nor->info->sector_size;
|
||||
int i;
|
||||
@@ -2420,8 +2423,9 @@ static int spi_nor_select_erase(struct s
|
||||
@@ -2421,8 +2424,9 @@ static int spi_nor_select_erase(struct s
|
||||
*/
|
||||
for (i = SNOR_ERASE_TYPE_MAX - 1; i >= 0; i--) {
|
||||
if (map->erase_type[i].size) {
|
||||
@ -222,7 +222,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2429,6 +2433,9 @@ static int spi_nor_select_erase(struct s
|
||||
@@ -2430,6 +2434,9 @@ static int spi_nor_select_erase(struct s
|
||||
return -EINVAL;
|
||||
|
||||
mtd->erasesize = erase->size;
|
||||
|
@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/include/linux/netdevice.h
|
||||
+++ b/include/linux/netdevice.h
|
||||
@@ -2089,6 +2089,8 @@ struct net_device {
|
||||
@@ -2096,6 +2096,8 @@ struct net_device {
|
||||
struct netdev_hw_addr_list mc;
|
||||
struct netdev_hw_addr_list dev_addrs;
|
||||
|
||||
|
@ -134,7 +134,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
|
||||
/*
|
||||
* Define if arch has non-standard setup. This is a _PCI_ standard
|
||||
@@ -888,6 +891,12 @@ struct ata_port {
|
||||
@@ -894,6 +897,12 @@ struct ata_port {
|
||||
#ifdef CONFIG_ATA_ACPI
|
||||
struct ata_acpi_gtm __acpi_init_gtm; /* use ata_acpi_init_gtm() */
|
||||
#endif
|
||||
|
@ -1,28 +0,0 @@
|
||||
From 2acc3260050cf17d72ec5fb7a00cd91cf53ef5b6 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Marangi <ansuelsmth@gmail.com>
|
||||
Date: Fri, 23 Sep 2022 18:42:29 +0200
|
||||
Subject: [PATCH 1/4] clk: qcom: clk-krait: fix wrong div2 functions
|
||||
|
||||
Currently div2 value is applied to the wrong bits. This is caused by a
|
||||
bug in the code where the shift is done only for lpl, for anything
|
||||
else the mask is not shifted to the correct bits.
|
||||
|
||||
Fix this by correctly shift if lpl is not supported.
|
||||
|
||||
Fixes: 4d7dc77babfe ("clk: qcom: Add support for Krait clocks")
|
||||
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
|
||||
---
|
||||
drivers/clk/qcom/clk-krait.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
--- a/drivers/clk/qcom/clk-krait.c
|
||||
+++ b/drivers/clk/qcom/clk-krait.c
|
||||
@@ -114,6 +114,8 @@ static int krait_div2_set_rate(struct cl
|
||||
|
||||
if (d->lpl)
|
||||
mask = mask << (d->shift + LPL_SHIFT) | mask << d->shift;
|
||||
+ else
|
||||
+ mask <<= d->shift;
|
||||
|
||||
spin_lock_irqsave(&krait_clock_reg_lock, flags);
|
||||
val = krait_get_l2_indirect_reg(d->offset);
|
@ -39,7 +39,7 @@
|
||||
|
||||
/* check we are the Master VPE */
|
||||
local_irq_save(flags);
|
||||
@@ -417,6 +418,8 @@ int __init vpe_module_init(void)
|
||||
@@ -416,6 +417,8 @@ int __init vpe_module_init(void)
|
||||
}
|
||||
|
||||
v->ntcs = hw_tcs - aprp_cpu_index();
|
||||
|
@ -26,7 +26,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
|
||||
|
||||
--- a/arch/arm/boot/dts/armada-385-turris-omnia.dts
|
||||
+++ b/arch/arm/boot/dts/armada-385-turris-omnia.dts
|
||||
@@ -390,7 +390,8 @@
|
||||
@@ -396,7 +396,8 @@
|
||||
phy1: ethernet-phy@1 {
|
||||
compatible = "ethernet-phy-ieee802.3-c22";
|
||||
reg = <1>;
|
||||
|
@ -20,7 +20,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
|
||||
|
||||
--- a/arch/arm/boot/dts/armada-385-turris-omnia.dts
|
||||
+++ b/arch/arm/boot/dts/armada-385-turris-omnia.dts
|
||||
@@ -188,15 +188,13 @@
|
||||
@@ -194,15 +194,13 @@
|
||||
reg = <0x2b>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
@ -38,7 +38,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
|
||||
* - there are 3 LEDs connected via MCU to PCIe
|
||||
* ports. One of these ports supports mSATA.
|
||||
* There is no mSATA nor PCIe function.
|
||||
@@ -207,7 +205,6 @@
|
||||
@@ -213,7 +211,6 @@
|
||||
* B. Again there is no such function defined.
|
||||
* For now we use LED_FUNCTION_INDICATOR
|
||||
*/
|
||||
|
@ -26,7 +26,7 @@ Cc: Robert Marko <robert.marko@sartura.hr>
|
||||
|
||||
--- a/drivers/mfd/Kconfig
|
||||
+++ b/drivers/mfd/Kconfig
|
||||
@@ -2187,6 +2187,15 @@ config SGI_MFD_IOC3
|
||||
@@ -2188,6 +2188,15 @@ config SGI_MFD_IOC3
|
||||
If you have an SGI Origin, Octane, or a PCI IOC3 card,
|
||||
then say Y. Otherwise say N.
|
||||
|
||||
|
@ -36,7 +36,7 @@
|
||||
|
||||
--- a/include/linux/libata.h
|
||||
+++ b/include/linux/libata.h
|
||||
@@ -917,6 +917,8 @@ struct ata_port_operations {
|
||||
@@ -923,6 +923,8 @@ struct ata_port_operations {
|
||||
enum ata_completion_errors (*qc_prep)(struct ata_queued_cmd *qc);
|
||||
unsigned int (*qc_issue)(struct ata_queued_cmd *qc);
|
||||
bool (*qc_fill_rtf)(struct ata_queued_cmd *qc);
|
||||
@ -45,7 +45,7 @@
|
||||
|
||||
/*
|
||||
* Configuration and exception handling
|
||||
@@ -1007,6 +1009,9 @@ struct ata_port_operations {
|
||||
@@ -1013,6 +1015,9 @@ struct ata_port_operations {
|
||||
void (*phy_reset)(struct ata_port *ap);
|
||||
void (*eng_timeout)(struct ata_port *ap);
|
||||
|
||||
|
@ -211,7 +211,7 @@ Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
-
|
||||
--- a/drivers/staging/mt7621-pci/pci-mt7621.c
|
||||
+++ /dev/null
|
||||
@@ -1,600 +0,0 @@
|
||||
@@ -1,601 +0,0 @@
|
||||
-// SPDX-License-Identifier: GPL-2.0+
|
||||
-/*
|
||||
- * BRIEF MODULE DESCRIPTION
|
||||
@ -307,8 +307,8 @@ Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
- * reset lines are inverted.
|
||||
- */
|
||||
-struct mt7621_pcie {
|
||||
- void __iomem *base;
|
||||
- struct device *dev;
|
||||
- void __iomem *base;
|
||||
- struct list_head ports;
|
||||
- bool resets_inverted;
|
||||
-};
|
||||
@ -343,7 +343,7 @@ Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
- writel_relaxed(val, port->base + reg);
|
||||
-}
|
||||
-
|
||||
-static inline u32 mt7621_pci_get_cfgaddr(unsigned int bus, unsigned int slot,
|
||||
-static inline u32 mt7621_pcie_get_cfgaddr(unsigned int bus, unsigned int slot,
|
||||
- unsigned int func, unsigned int where)
|
||||
-{
|
||||
- return (((where & 0xF00) >> 8) << 24) | (bus << 16) | (slot << 11) |
|
||||
@ -354,7 +354,7 @@ Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
- unsigned int devfn, int where)
|
||||
-{
|
||||
- struct mt7621_pcie *pcie = bus->sysdata;
|
||||
- u32 address = mt7621_pci_get_cfgaddr(bus->number, PCI_SLOT(devfn),
|
||||
- u32 address = mt7621_pcie_get_cfgaddr(bus->number, PCI_SLOT(devfn),
|
||||
- PCI_FUNC(devfn), where);
|
||||
-
|
||||
- writel_relaxed(address, pcie->base + RALINK_PCI_CONFIG_ADDR);
|
||||
@ -362,7 +362,7 @@ Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
- return pcie->base + RALINK_PCI_CONFIG_DATA + (where & 3);
|
||||
-}
|
||||
-
|
||||
-struct pci_ops mt7621_pci_ops = {
|
||||
-struct pci_ops mt7621_pcie_ops = {
|
||||
- .map_bus = mt7621_pcie_map_bus,
|
||||
- .read = pci_generic_config_read,
|
||||
- .write = pci_generic_config_write,
|
||||
@ -370,7 +370,7 @@ Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
-
|
||||
-static u32 read_config(struct mt7621_pcie *pcie, unsigned int dev, u32 reg)
|
||||
-{
|
||||
- u32 address = mt7621_pci_get_cfgaddr(0, dev, 0, reg);
|
||||
- u32 address = mt7621_pcie_get_cfgaddr(0, dev, 0, reg);
|
||||
-
|
||||
- pcie_write(pcie, address, RALINK_PCI_CONFIG_ADDR);
|
||||
- return pcie_read(pcie, RALINK_PCI_CONFIG_DATA);
|
||||
@ -379,7 +379,7 @@ Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
-static void write_config(struct mt7621_pcie *pcie, unsigned int dev,
|
||||
- u32 reg, u32 val)
|
||||
-{
|
||||
- u32 address = mt7621_pci_get_cfgaddr(0, dev, 0, reg);
|
||||
- u32 address = mt7621_pcie_get_cfgaddr(0, dev, 0, reg);
|
||||
-
|
||||
- pcie_write(pcie, address, RALINK_PCI_CONFIG_ADDR);
|
||||
- pcie_write(pcie, val, RALINK_PCI_CONFIG_DATA);
|
||||
@ -719,16 +719,17 @@ Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
-{
|
||||
- struct mt7621_pcie *pcie = pci_host_bridge_priv(host);
|
||||
-
|
||||
- host->ops = &mt7621_pci_ops;
|
||||
- host->ops = &mt7621_pcie_ops;
|
||||
- host->sysdata = pcie;
|
||||
- return pci_host_probe(host);
|
||||
-}
|
||||
-
|
||||
-static const struct soc_device_attribute mt7621_pci_quirks_match[] = {
|
||||
- { .soc_id = "mt7621", .revision = "E2" }
|
||||
-static const struct soc_device_attribute mt7621_pcie_quirks_match[] = {
|
||||
- { .soc_id = "mt7621", .revision = "E2" },
|
||||
- { /* sentinel */ }
|
||||
-};
|
||||
-
|
||||
-static int mt7621_pci_probe(struct platform_device *pdev)
|
||||
-static int mt7621_pcie_probe(struct platform_device *pdev)
|
||||
-{
|
||||
- struct device *dev = &pdev->dev;
|
||||
- const struct soc_device_attribute *attr;
|
||||
@ -749,7 +750,7 @@ Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
- platform_set_drvdata(pdev, pcie);
|
||||
- INIT_LIST_HEAD(&pcie->ports);
|
||||
-
|
||||
- attr = soc_device_match(mt7621_pci_quirks_match);
|
||||
- attr = soc_device_match(mt7621_pcie_quirks_match);
|
||||
- if (attr)
|
||||
- pcie->resets_inverted = true;
|
||||
-
|
||||
@ -786,7 +787,7 @@ Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
- return err;
|
||||
-}
|
||||
-
|
||||
-static int mt7621_pci_remove(struct platform_device *pdev)
|
||||
-static int mt7621_pcie_remove(struct platform_device *pdev)
|
||||
-{
|
||||
- struct mt7621_pcie *pcie = platform_get_drvdata(pdev);
|
||||
- struct mt7621_pcie_port *port;
|
||||
@ -797,21 +798,21 @@ Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
- return 0;
|
||||
-}
|
||||
-
|
||||
-static const struct of_device_id mt7621_pci_ids[] = {
|
||||
-static const struct of_device_id mt7621_pcie_ids[] = {
|
||||
- { .compatible = "mediatek,mt7621-pci" },
|
||||
- {},
|
||||
-};
|
||||
-MODULE_DEVICE_TABLE(of, mt7621_pci_ids);
|
||||
-MODULE_DEVICE_TABLE(of, mt7621_pcie_ids);
|
||||
-
|
||||
-static struct platform_driver mt7621_pci_driver = {
|
||||
- .probe = mt7621_pci_probe,
|
||||
- .remove = mt7621_pci_remove,
|
||||
-static struct platform_driver mt7621_pcie_driver = {
|
||||
- .probe = mt7621_pcie_probe,
|
||||
- .remove = mt7621_pcie_remove,
|
||||
- .driver = {
|
||||
- .name = "mt7621-pci",
|
||||
- .of_match_table = of_match_ptr(mt7621_pci_ids),
|
||||
- .of_match_table = of_match_ptr(mt7621_pcie_ids),
|
||||
- },
|
||||
-};
|
||||
-builtin_platform_driver(mt7621_pci_driver);
|
||||
-builtin_platform_driver(mt7621_pcie_driver);
|
||||
--- /dev/null
|
||||
+++ b/drivers/pci/controller/pcie-mt7621.c
|
||||
@@ -0,0 +1,600 @@
|
||||
|
@ -28,9 +28,9 @@ Acked-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de> # arch/mips
|
||||
|
||||
#include <asm/bootinfo.h>
|
||||
#include <asm/mipsregs.h>
|
||||
@@ -24,6 +26,35 @@
|
||||
|
||||
@@ -25,6 +27,35 @@
|
||||
static u32 detect_magic __initdata;
|
||||
static struct ralink_soc_info *soc_info_ptr;
|
||||
|
||||
+int pcibios_root_bridge_prepare(struct pci_host_bridge *bridge)
|
||||
+{
|
||||
|
@ -0,0 +1,38 @@
|
||||
From 19098934f910b4d47cb30251dd39ffa57bef9523 Mon Sep 17 00:00:00 2001
|
||||
From: John Thomson <git@johnthomson.fastmail.com.au>
|
||||
Date: Tue, 6 Dec 2022 06:46:45 +1000
|
||||
Subject: [PATCH] PCI: mt7621: Add sentinel to quirks table
|
||||
|
||||
Current driver is missing a sentinel in the struct soc_device_attribute
|
||||
array, which causes an oops when assessed by the
|
||||
soc_device_match(mt7621_pcie_quirks_match) call.
|
||||
|
||||
This was only exposed once the CONFIG_SOC_MT7621 mt7621 soc_dev_attr
|
||||
was fixed to register the SOC as a device, in:
|
||||
|
||||
commit 7c18b64bba3b ("mips: ralink: mt7621: do not use kzalloc too early")
|
||||
|
||||
Fix it by adding the required sentinel.
|
||||
|
||||
Link: https://lore.kernel.org/lkml/26ebbed1-0fe9-4af9-8466-65f841d0b382@app.fastmail.com
|
||||
Link: https://lore.kernel.org/r/20221205204645.301301-1-git@johnthomson.fastmail.com.au
|
||||
Fixes: b483b4e4d3f6 ("staging: mt7621-pci: add quirks for 'E2' revision using 'soc_device_attribute'")
|
||||
Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
|
||||
Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
|
||||
Acked-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
|
||||
---
|
||||
drivers/pci/controller/pcie-mt7621.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/drivers/pci/controller/pcie-mt7621.c
|
||||
+++ b/drivers/pci/controller/pcie-mt7621.c
|
||||
@@ -471,7 +471,8 @@ static int mt7621_pcie_register_host(str
|
||||
}
|
||||
|
||||
static const struct soc_device_attribute mt7621_pcie_quirks_match[] = {
|
||||
- { .soc_id = "mt7621", .revision = "E2" }
|
||||
+ { .soc_id = "mt7621", .revision = "E2" },
|
||||
+ { /* sentinel */ }
|
||||
};
|
||||
|
||||
static int mt7621_pcie_probe(struct platform_device *pdev)
|
Loading…
x
Reference in New Issue
Block a user