mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-19 05:38:00 +00:00
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:
parent
ce014b1e39
commit
4921ab0be4
@ -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
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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,
|
|
@ -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;
|
||||||
|
|
||||||
|
@ -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:
|
||||||
|
@ -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),
|
||||||
|
|
||||||
|
@ -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.
|
||||||
*/
|
*/
|
||||||
|
@ -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)
|
||||||
{
|
{
|
||||||
|
@ -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 \
|
||||||
|
@ -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)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user