kernel: bump 5.15 to 5.15.56

Manually rebased:
  bcm27xx/patches-5.15/950-0470-sound-usb-add-device-quirks-for-A4Tech-FHD-1080p-web.patch

Remove upstreamed:
  bcm27xx/patches-5.15/950-0060-tty-amba-pl011-Add-un-throttle-support.patch[1]

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.56&id=2db3b95166f72e6481a79b82b1d6f94f4b18fcc1

Build system: x86_64
Build-tested: bcm2711/RPi4B, mt7622/RT3200
Run-tested: bcm2711/RPi4B, mt7622/RT3200

Signed-off-by: John Audia <therealgraysky@proton.me>
This commit is contained in:
John Audia 2022-07-21 16:12:42 -04:00 committed by Hauke Mehrtens
parent ce014b1e39
commit 4921ab0be4
14 changed files with 29 additions and 90 deletions

View File

@ -1,2 +1,2 @@
LINUX_VERSION-5.15 = .55 LINUX_VERSION-5.15 = .56
LINUX_KERNEL_HASH-5.15.55 = 1ef6bd508b6c3af3bef2d5b337e4477254dba284c79e329aa38f9763ae3bfdcc LINUX_KERNEL_HASH-5.15.56 = e9a6bb3437f1497b1c74841ebf70d5b96f915d6ac767b5ba3d8d820dd89b8223

View File

@ -17,7 +17,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/kernel/cgroup/cgroup.c --- a/kernel/cgroup/cgroup.c
+++ b/kernel/cgroup/cgroup.c +++ b/kernel/cgroup/cgroup.c
@@ -5824,6 +5824,9 @@ int __init cgroup_init_early(void) @@ -5833,6 +5833,9 @@ int __init cgroup_init_early(void)
return 0; return 0;
} }
@ -27,7 +27,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
/** /**
* cgroup_init - cgroup initialization * cgroup_init - cgroup initialization
* *
@@ -5862,6 +5865,12 @@ int __init cgroup_init(void) @@ -5871,6 +5874,12 @@ int __init cgroup_init(void)
mutex_unlock(&cgroup_mutex); mutex_unlock(&cgroup_mutex);
@ -40,7 +40,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
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 =
@@ -6446,6 +6455,10 @@ static int __init cgroup_disable(char *s @@ -6455,6 +6464,10 @@ static int __init cgroup_disable(char *s
strcmp(token, ss->legacy_name)) strcmp(token, ss->legacy_name))
continue; continue;
@ -51,7 +51,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
static_branch_disable(cgroup_subsys_enabled_key[i]); static_branch_disable(cgroup_subsys_enabled_key[i]);
pr_info("Disabling %s control group subsystem\n", pr_info("Disabling %s control group subsystem\n",
ss->name); ss->name);
@@ -6464,6 +6477,31 @@ static int __init cgroup_disable(char *s @@ -6473,6 +6486,31 @@ static int __init cgroup_disable(char *s
} }
__setup("cgroup_disable=", cgroup_disable); __setup("cgroup_disable=", cgroup_disable);

View File

@ -14,7 +14,7 @@ use the same logic.
--- a/drivers/tty/serial/amba-pl011.c --- a/drivers/tty/serial/amba-pl011.c
+++ b/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c
@@ -2725,7 +2725,12 @@ static int pl011_setup_port(struct devic @@ -2744,7 +2744,12 @@ static int pl011_setup_port(struct devic
if (IS_ERR(base)) if (IS_ERR(base))
return PTR_ERR(base); return PTR_ERR(base);

View File

@ -26,7 +26,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/drivers/tty/serial/amba-pl011.c --- a/drivers/tty/serial/amba-pl011.c
+++ b/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c
@@ -1718,6 +1718,23 @@ static void pl011_put_poll_char(struct u @@ -1727,6 +1727,23 @@ static void pl011_put_poll_char(struct u
#endif /* CONFIG_CONSOLE_POLL */ #endif /* CONFIG_CONSOLE_POLL */
@ -50,7 +50,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
static int pl011_hwinit(struct uart_port *port) static int pl011_hwinit(struct uart_port *port)
{ {
struct uart_amba_port *uap = struct uart_amba_port *uap =
@@ -1734,7 +1751,7 @@ static int pl011_hwinit(struct uart_port @@ -1743,7 +1760,7 @@ static int pl011_hwinit(struct uart_port
if (retval) if (retval)
return retval; return retval;
@ -59,7 +59,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
/* Clear pending error and receive interrupts */ /* Clear pending error and receive interrupts */
pl011_write(UART011_OEIS | UART011_BEIS | UART011_PEIS | pl011_write(UART011_OEIS | UART011_BEIS | UART011_PEIS |
@@ -2421,7 +2438,7 @@ static int pl011_console_setup(struct co @@ -2440,7 +2457,7 @@ static int pl011_console_setup(struct co
plat->init(); plat->init();
} }
@ -68,7 +68,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
if (uap->vendor->fixed_options) { if (uap->vendor->fixed_options) {
baud = uap->fixed_baud; baud = uap->fixed_baud;
@@ -2638,6 +2655,7 @@ static struct uart_driver amba_reg = { @@ -2657,6 +2674,7 @@ static struct uart_driver amba_reg = {
.cons = AMBA_CONSOLE, .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) static int pl011_probe_dt_alias(int index, struct device *dev)
{ {
struct device_node *np; struct device_node *np;
@@ -2669,6 +2687,7 @@ static int pl011_probe_dt_alias(int inde @@ -2688,6 +2706,7 @@ static int pl011_probe_dt_alias(int inde
return ret; return ret;
} }

View File

@ -17,7 +17,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/drivers/tty/serial/amba-pl011.c --- a/drivers/tty/serial/amba-pl011.c
+++ b/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c
@@ -1423,6 +1423,7 @@ static bool pl011_tx_char(struct uart_am @@ -1432,6 +1432,7 @@ static bool pl011_tx_char(struct uart_am
return false; /* unable to transmit character */ return false; /* unable to transmit character */
pl011_write(c, uap, REG_DR); pl011_write(c, uap, REG_DR);

View File

@ -36,7 +36,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
- reg - reg
--- a/drivers/tty/serial/amba-pl011.c --- a/drivers/tty/serial/amba-pl011.c
+++ b/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c
@@ -2816,6 +2816,11 @@ static int pl011_probe(struct amba_devic @@ -2835,6 +2835,11 @@ static int pl011_probe(struct amba_devic
if (IS_ERR(uap->clk)) if (IS_ERR(uap->clk))
return PTR_ERR(uap->clk); return PTR_ERR(uap->clk);

View File

@ -1,61 +0,0 @@
From 48cb6ac7067b412c56a0a6aca43f5c964dfb7dec Mon Sep 17 00:00:00 2001
From: Phil Elwell <phil@raspberrypi.org>
Date: Fri, 24 Jan 2020 11:38:28 +0000
Subject: [PATCH] tty: amba-pl011: Add un/throttle support
The PL011 driver lacks throttle and unthrottle methods. As a result,
sending more data to the Pi than it can immediately sink while CRTSCTS
is enabled causes a NULL pointer to be followed.
Add a throttle handler that disables the RX interrupts, and an
unthrottle handler that reenables them.
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
---
drivers/tty/serial/amba-pl011.c | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
--- a/drivers/tty/serial/amba-pl011.c
+++ b/drivers/tty/serial/amba-pl011.c
@@ -1360,6 +1360,32 @@ static void pl011_start_tx(struct uart_p
pl011_start_tx_pio(uap);
}
+static void pl011_throttle(struct uart_port *port)
+{
+ struct uart_amba_port *uap =
+ container_of(port, struct uart_amba_port, port);
+ unsigned long flags;
+
+ spin_lock_irqsave(&uap->port.lock, flags);
+ uap->im &= ~(UART011_RTIM | UART011_RXIM);
+ pl011_write(uap->im, uap, REG_IMSC);
+ spin_unlock_irqrestore(&uap->port.lock, flags);
+}
+
+static void pl011_unthrottle(struct uart_port *port)
+{
+ struct uart_amba_port *uap =
+ container_of(port, struct uart_amba_port, port);
+ unsigned long flags;
+
+ spin_lock_irqsave(&uap->port.lock, flags);
+ uap->im |= UART011_RTIM;
+ if (!pl011_dma_rx_running(uap))
+ uap->im |= UART011_RXIM;
+ pl011_write(uap->im, uap, REG_IMSC);
+ spin_unlock_irqrestore(&uap->port.lock, flags);
+}
+
static void pl011_stop_rx(struct uart_port *port)
{
struct uart_amba_port *uap =
@@ -2263,6 +2289,8 @@ static const struct uart_ops amba_pl011_
.stop_tx = pl011_stop_tx,
.start_tx = pl011_start_tx,
.stop_rx = pl011_stop_rx,
+ .throttle = pl011_throttle,
+ .unthrottle = pl011_unthrottle,
.enable_ms = pl011_enable_ms,
.break_ctl = pl011_break_ctl,
.startup = pl011_startup,

View File

@ -29,7 +29,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/drivers/tty/serial/amba-pl011.c --- a/drivers/tty/serial/amba-pl011.c
+++ b/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c
@@ -1510,6 +1510,10 @@ static bool pl011_tx_chars(struct uart_a @@ -1493,6 +1493,10 @@ static bool pl011_tx_chars(struct uart_a
if (likely(from_irq) && count-- == 0) if (likely(from_irq) && count-- == 0)
break; break;

View File

@ -244,7 +244,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
static int bcm2708_fb_register(struct bcm2708_fb *fb) static int bcm2708_fb_register(struct bcm2708_fb *fb)
--- a/drivers/video/fbdev/core/fbmem.c --- a/drivers/video/fbdev/core/fbmem.c
+++ b/drivers/video/fbdev/core/fbmem.c +++ b/drivers/video/fbdev/core/fbmem.c
@@ -1096,6 +1096,30 @@ fb_blank(struct fb_info *info, int blank @@ -1097,6 +1097,30 @@ fb_blank(struct fb_info *info, int blank
} }
EXPORT_SYMBOL(fb_blank); EXPORT_SYMBOL(fb_blank);
@ -275,7 +275,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
static long do_fb_ioctl(struct fb_info *info, unsigned int cmd, static long do_fb_ioctl(struct fb_info *info, unsigned int cmd,
unsigned long arg) unsigned long arg)
{ {
@@ -1104,6 +1128,7 @@ static long do_fb_ioctl(struct fb_info * @@ -1105,6 +1129,7 @@ static long do_fb_ioctl(struct fb_info *
struct fb_fix_screeninfo fix; struct fb_fix_screeninfo fix;
struct fb_cmap cmap_from; struct fb_cmap cmap_from;
struct fb_cmap_user cmap; struct fb_cmap_user cmap;
@ -283,7 +283,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
void __user *argp = (void __user *)arg; void __user *argp = (void __user *)arg;
long ret = 0; long ret = 0;
@@ -1181,6 +1206,15 @@ static long do_fb_ioctl(struct fb_info * @@ -1182,6 +1207,15 @@ static long do_fb_ioctl(struct fb_info *
unlock_fb_info(info); unlock_fb_info(info);
console_unlock(); console_unlock();
break; break;
@ -299,7 +299,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
default: default:
lock_fb_info(info); lock_fb_info(info);
fb = info->fbops; fb = info->fbops;
@@ -1320,6 +1354,7 @@ static long fb_compat_ioctl(struct file @@ -1321,6 +1355,7 @@ static long fb_compat_ioctl(struct file
case FBIOPAN_DISPLAY: case FBIOPAN_DISPLAY:
case FBIOGET_CON2FBMAP: case FBIOGET_CON2FBMAP:
case FBIOPUT_CON2FBMAP: case FBIOPUT_CON2FBMAP:

View File

@ -16,10 +16,10 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
--- a/sound/usb/quirks.c --- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c +++ b/sound/usb/quirks.c
@@ -1912,6 +1912,8 @@ static const struct usb_audio_quirk_flag @@ -1921,6 +1921,8 @@ static const struct usb_audio_quirk_flag
QUIRK_FLAG_ALIGN_TRANSFER), QUIRK_FLAG_GENERIC_IMPLICIT_FB),
DEVICE_FLG(0x1224, 0x2a25, /* Jieli Technology USB PHY 2.0 */ DEVICE_FLG(0x2b53, 0x0031, /* Fiero SC-01 (firmware v1.1.0) */
QUIRK_FLAG_GET_SAMPLE_RATE), QUIRK_FLAG_GENERIC_IMPLICIT_FB),
+ DEVICE_FLG(0x09da, 0x2695, /* A4Tech FHD 1080p webcam */ + DEVICE_FLG(0x09da, 0x2695, /* A4Tech FHD 1080p webcam */
+ QUIRK_FLAG_DISABLE_AUTOSUSPEND | QUIRK_FLAG_GET_SAMPLE_RATE), + QUIRK_FLAG_DISABLE_AUTOSUSPEND | QUIRK_FLAG_GET_SAMPLE_RATE),

View File

@ -11,7 +11,7 @@ This reverts commit 2388f826cdc9af2651991adc0feb79de9bdf2232.
--- a/drivers/video/fbdev/core/fbmem.c --- a/drivers/video/fbdev/core/fbmem.c
+++ b/drivers/video/fbdev/core/fbmem.c +++ b/drivers/video/fbdev/core/fbmem.c
@@ -1628,14 +1628,7 @@ static void do_remove_conflicting_frameb @@ -1629,14 +1629,7 @@ static void do_remove_conflicting_frameb
* If it's not a platform device, at least print a warning. A * If it's not a platform device, at least print a warning. A
* fix would add code to remove the device from the system. * fix would add code to remove the device from the system.
*/ */

View File

@ -12,7 +12,7 @@ This reverts commit c894ac44786cfed383a6c6b20c1bfb12eb96018a.
--- a/drivers/video/fbdev/core/fbmem.c --- a/drivers/video/fbdev/core/fbmem.c
+++ b/drivers/video/fbdev/core/fbmem.c +++ b/drivers/video/fbdev/core/fbmem.c
@@ -25,7 +25,6 @@ @@ -26,7 +26,6 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/linux_logo.h> #include <linux/linux_logo.h>
#include <linux/proc_fs.h> #include <linux/proc_fs.h>
@ -20,7 +20,7 @@ This reverts commit c894ac44786cfed383a6c6b20c1bfb12eb96018a.
#include <linux/seq_file.h> #include <linux/seq_file.h>
#include <linux/console.h> #include <linux/console.h>
#include <linux/kmod.h> #include <linux/kmod.h>
@@ -1605,36 +1604,18 @@ static void do_remove_conflicting_frameb @@ -1606,36 +1605,18 @@ static void do_remove_conflicting_frameb
/* check all firmware fbs and kick off if the base addr overlaps */ /* check all firmware fbs and kick off if the base addr overlaps */
for_each_registered_fb(i) { for_each_registered_fb(i) {
struct apertures_struct *gen_aper; struct apertures_struct *gen_aper;
@ -58,7 +58,7 @@ This reverts commit c894ac44786cfed383a6c6b20c1bfb12eb96018a.
} }
} }
} }
@@ -1961,13 +1942,9 @@ EXPORT_SYMBOL(register_framebuffer); @@ -1973,13 +1954,9 @@ EXPORT_SYMBOL(register_framebuffer);
void void
unregister_framebuffer(struct fb_info *fb_info) unregister_framebuffer(struct fb_info *fb_info)
{ {

View File

@ -232,7 +232,7 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
+}; +};
--- a/arch/arm/boot/dts/Makefile --- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile
@@ -129,6 +129,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \ @@ -128,6 +128,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
bcm47094-luxul-xwr-3150-v1.dtb \ bcm47094-luxul-xwr-3150-v1.dtb \
bcm47094-netgear-r8500.dtb \ bcm47094-netgear-r8500.dtb \
bcm47094-phicomm-k3.dtb \ bcm47094-phicomm-k3.dtb \

View File

@ -19,7 +19,7 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
--- a/drivers/base/core.c --- a/drivers/base/core.c
+++ b/drivers/base/core.c +++ b/drivers/base/core.c
@@ -1561,7 +1561,7 @@ static void device_links_purge(struct de @@ -1562,7 +1562,7 @@ static void device_links_purge(struct de
#define FW_DEVLINK_FLAGS_RPM (FW_DEVLINK_FLAGS_ON | \ #define FW_DEVLINK_FLAGS_RPM (FW_DEVLINK_FLAGS_ON | \
DL_FLAG_PM_RUNTIME) DL_FLAG_PM_RUNTIME)