mirror of
https://github.com/openwrt/openwrt.git
synced 2025-02-18 16:40:29 +00:00
kernel: bump 5.4 to 5.4.211
Similar version was upstreamed: bcm27xx/patches-5.4/950-0392-tty-amba-pl011-Add-un-throttle-support.patch Manually adapted: ipq806x/patches-5.4/0063-2-tsens-support-configurable-interrupts.patch layerscape/patches-5.4/301-arch-0008-arm-add-new-non-shareable-ioremap.patch Compile-tested: x86/64 Run-tested: x86/64 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
parent
8d24ea3f31
commit
bcaabe6d05
@ -6,9 +6,9 @@ ifdef CONFIG_TESTING_KERNEL
|
||||
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
|
||||
endif
|
||||
|
||||
LINUX_VERSION-5.4 = .203
|
||||
LINUX_VERSION-5.4 = .211
|
||||
|
||||
LINUX_KERNEL_HASH-5.4.203 = fc933f5b13066cfa54aacb5e86747a167bad1d8d23972e4a03ab5ee36c29798a
|
||||
LINUX_KERNEL_HASH-5.4.211 = bfb43241b72cd55797af68bea1cebe630d37664c0f9a99b6e9263a63a67e2dec
|
||||
|
||||
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
||||
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
|
||||
|
@ -9,7 +9,7 @@
|
||||
struct fis_image_desc {
|
||||
unsigned char name[16]; // Null terminated name
|
||||
uint32_t flash_base; // Address within FLASH of image
|
||||
@@ -72,6 +74,7 @@ static int parse_redboot_partitions(stru
|
||||
@@ -73,6 +75,7 @@ static int parse_redboot_partitions(stru
|
||||
const struct mtd_partition **pparts,
|
||||
struct mtd_part_parser_data *data)
|
||||
{
|
||||
@ -17,7 +17,7 @@
|
||||
int nrparts = 0;
|
||||
struct fis_image_desc *buf;
|
||||
struct mtd_partition *parts;
|
||||
@@ -239,14 +242,15 @@ static int parse_redboot_partitions(stru
|
||||
@@ -240,14 +243,15 @@ static int parse_redboot_partitions(stru
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@ -35,7 +35,7 @@
|
||||
#ifdef CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED
|
||||
if (nulllen > 0) {
|
||||
strcpy(nullname, nullstring);
|
||||
@@ -265,6 +269,8 @@ static int parse_redboot_partitions(stru
|
||||
@@ -266,6 +270,8 @@ static int parse_redboot_partitions(stru
|
||||
}
|
||||
#endif
|
||||
for ( ; i<nrparts; i++) {
|
||||
@ -44,7 +44,7 @@
|
||||
parts[i].size = fl->img->size;
|
||||
parts[i].offset = fl->img->flash_base;
|
||||
parts[i].name = names;
|
||||
@@ -298,6 +304,13 @@ static int parse_redboot_partitions(stru
|
||||
@@ -299,6 +305,13 @@ static int parse_redboot_partitions(stru
|
||||
fl = fl->next;
|
||||
kfree(tmp_fl);
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- a/drivers/mtd/parsers/redboot.c
|
||||
+++ b/drivers/mtd/parsers/redboot.c
|
||||
@@ -93,12 +93,18 @@ static int parse_redboot_partitions(stru
|
||||
@@ -94,12 +94,18 @@ static int parse_redboot_partitions(stru
|
||||
|
||||
parse_redboot_of(master);
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
return -EIO;
|
||||
}
|
||||
offset -= master->erasesize;
|
||||
@@ -111,10 +117,6 @@ static int parse_redboot_partitions(stru
|
||||
@@ -112,10 +118,6 @@ static int parse_redboot_partitions(stru
|
||||
goto nogood;
|
||||
}
|
||||
}
|
||||
@ -30,7 +30,7 @@
|
||||
|
||||
printk(KERN_NOTICE "Searching for RedBoot partition table in %s at offset 0x%lx\n",
|
||||
master->name, offset);
|
||||
@@ -187,6 +189,11 @@ static int parse_redboot_partitions(stru
|
||||
@@ -188,6 +190,11 @@ static int parse_redboot_partitions(stru
|
||||
}
|
||||
if (i == numslots) {
|
||||
/* Didn't find it */
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- a/drivers/mtd/parsers/redboot.c
|
||||
+++ b/drivers/mtd/parsers/redboot.c
|
||||
@@ -70,6 +70,22 @@ static void parse_redboot_of(struct mtd_
|
||||
@@ -71,6 +71,22 @@ static void parse_redboot_of(struct mtd_
|
||||
directory = dirblock;
|
||||
}
|
||||
|
||||
@ -23,7 +23,7 @@
|
||||
static int parse_redboot_partitions(struct mtd_info *master,
|
||||
const struct mtd_partition **pparts,
|
||||
struct mtd_part_parser_data *data)
|
||||
@@ -86,6 +102,7 @@ static int parse_redboot_partitions(stru
|
||||
@@ -87,6 +103,7 @@ static int parse_redboot_partitions(stru
|
||||
int namelen = 0;
|
||||
int nulllen = 0;
|
||||
int numslots;
|
||||
@ -31,7 +31,7 @@
|
||||
unsigned long offset;
|
||||
#ifdef CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED
|
||||
static char nullstring[] = "unallocated";
|
||||
@@ -200,7 +217,10 @@ static int parse_redboot_partitions(stru
|
||||
@@ -201,7 +218,10 @@ static int parse_redboot_partitions(stru
|
||||
goto out;
|
||||
}
|
||||
|
||||
@ -43,7 +43,7 @@
|
||||
struct fis_list *new_fl, **prev;
|
||||
|
||||
if (buf[i].name[0] == 0xff) {
|
||||
@@ -276,12 +296,13 @@ static int parse_redboot_partitions(stru
|
||||
@@ -277,12 +297,13 @@ static int parse_redboot_partitions(stru
|
||||
}
|
||||
#endif
|
||||
for ( ; i<nrparts; i++) {
|
||||
@ -59,7 +59,7 @@
|
||||
strcpy(names, fl->img->name);
|
||||
#ifdef CONFIG_MTD_REDBOOT_PARTS_READONLY
|
||||
if (!memcmp(names, "RedBoot", 8) ||
|
||||
@@ -311,7 +332,9 @@ static int parse_redboot_partitions(stru
|
||||
@@ -312,7 +333,9 @@ static int parse_redboot_partitions(stru
|
||||
fl = fl->next;
|
||||
kfree(tmp_fl);
|
||||
}
|
||||
|
@ -13,9 +13,9 @@ Signed-off-by: John Crispin <john@phrozen.org>
|
||||
|
||||
--- a/drivers/leds/Kconfig
|
||||
+++ b/drivers/leds/Kconfig
|
||||
@@ -824,6 +824,17 @@ config LEDS_LM36274
|
||||
Say Y to enable the LM36274 LED driver for TI LMU devices.
|
||||
This supports the LED device LM36274.
|
||||
@@ -826,6 +826,17 @@ config LEDS_LM36274
|
||||
|
||||
source "drivers/leds/blink/Kconfig"
|
||||
|
||||
+config LEDS_RESET
|
||||
+ tristate "LED support for reset-controller API"
|
||||
|
@ -22,7 +22,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
|
||||
#include "gpiolib.h"
|
||||
#include "gpiolib-of.h"
|
||||
@@ -915,3 +917,68 @@ void of_gpiochip_remove(struct gpio_chip
|
||||
@@ -917,3 +919,68 @@ void of_gpiochip_remove(struct gpio_chip
|
||||
{
|
||||
of_node_put(chip->of_node);
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- a/drivers/mtd/parsers/redboot.c
|
||||
+++ b/drivers/mtd/parsers/redboot.c
|
||||
@@ -90,12 +90,18 @@ static int parse_redboot_partitions(stru
|
||||
@@ -91,12 +91,18 @@ static int parse_redboot_partitions(stru
|
||||
|
||||
parse_redboot_of(master);
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
return -EIO;
|
||||
}
|
||||
offset -= master->erasesize;
|
||||
@@ -108,10 +114,6 @@ static int parse_redboot_partitions(stru
|
||||
@@ -109,10 +115,6 @@ static int parse_redboot_partitions(stru
|
||||
goto nogood;
|
||||
}
|
||||
}
|
||||
@ -30,7 +30,7 @@
|
||||
|
||||
printk(KERN_NOTICE "Searching for RedBoot partition table in %s at offset 0x%lx\n",
|
||||
master->name, offset);
|
||||
@@ -184,6 +186,11 @@ static int parse_redboot_partitions(stru
|
||||
@@ -185,6 +187,11 @@ static int parse_redboot_partitions(stru
|
||||
}
|
||||
if (i == numslots) {
|
||||
/* Didn't find it */
|
||||
|
@ -706,7 +706,7 @@
|
||||
EXPORT_SYMBOL(xfrm_parse_spi);
|
||||
--- a/net/ipv4/tcp_input.c
|
||||
+++ b/net/ipv4/tcp_input.c
|
||||
@@ -3980,14 +3980,16 @@ static bool tcp_parse_aligned_timestamp(
|
||||
@@ -3986,14 +3986,16 @@ static bool tcp_parse_aligned_timestamp(
|
||||
{
|
||||
const __be32 *ptr = (const __be32 *)(th + 1);
|
||||
|
||||
|
@ -14,7 +14,7 @@ use the same logic.
|
||||
|
||||
--- a/drivers/tty/serial/amba-pl011.c
|
||||
+++ b/drivers/tty/serial/amba-pl011.c
|
||||
@@ -2557,7 +2557,12 @@ static int pl011_setup_port(struct devic
|
||||
@@ -2576,7 +2576,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
|
||||
@@ -1653,6 +1653,23 @@ static void pl011_put_poll_char(struct u
|
||||
@@ -1662,6 +1662,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 =
|
||||
@@ -1669,7 +1686,7 @@ static int pl011_hwinit(struct uart_port
|
||||
@@ -1678,7 +1695,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 |
|
||||
@@ -2303,7 +2320,7 @@ static int pl011_console_setup(struct co
|
||||
@@ -2322,7 +2339,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;
|
||||
@@ -2488,6 +2505,7 @@ static struct uart_driver amba_reg = {
|
||||
@@ -2507,6 +2524,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;
|
||||
@@ -2519,6 +2537,7 @@ static int pl011_probe_dt_alias(int inde
|
||||
@@ -2538,6 +2556,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
|
||||
@@ -1386,6 +1386,7 @@ static bool pl011_tx_char(struct uart_am
|
||||
@@ -1395,6 +1395,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
|
||||
@@ -2644,6 +2644,11 @@ static int pl011_probe(struct amba_devic
|
||||
@@ -2663,6 +2663,11 @@ static int pl011_probe(struct amba_devic
|
||||
if (IS_ERR(uap->clk))
|
||||
return PTR_ERR(uap->clk);
|
||||
|
||||
|
@ -234,7 +234,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
||||
static int bcm2708_fb_register(struct bcm2708_fb *fb)
|
||||
--- a/drivers/video/fbdev/core/fbmem.c
|
||||
+++ b/drivers/video/fbdev/core/fbmem.c
|
||||
@@ -1080,6 +1080,30 @@ fb_blank(struct fb_info *info, int blank
|
||||
@@ -1090,6 +1090,30 @@ fb_blank(struct fb_info *info, int blank
|
||||
}
|
||||
EXPORT_SYMBOL(fb_blank);
|
||||
|
||||
@ -265,7 +265,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
||||
static long do_fb_ioctl(struct fb_info *info, unsigned int cmd,
|
||||
unsigned long arg)
|
||||
{
|
||||
@@ -1088,6 +1112,7 @@ static long do_fb_ioctl(struct fb_info *
|
||||
@@ -1098,6 +1122,7 @@ static long do_fb_ioctl(struct fb_info *
|
||||
struct fb_fix_screeninfo fix;
|
||||
struct fb_cmap cmap_from;
|
||||
struct fb_cmap_user cmap;
|
||||
@ -273,7 +273,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
||||
void __user *argp = (void __user *)arg;
|
||||
long ret = 0;
|
||||
|
||||
@@ -1163,6 +1188,15 @@ static long do_fb_ioctl(struct fb_info *
|
||||
@@ -1175,6 +1200,15 @@ static long do_fb_ioctl(struct fb_info *
|
||||
unlock_fb_info(info);
|
||||
console_unlock();
|
||||
break;
|
||||
@ -289,7 +289,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
||||
default:
|
||||
lock_fb_info(info);
|
||||
fb = info->fbops;
|
||||
@@ -1308,6 +1342,7 @@ static long fb_compat_ioctl(struct file
|
||||
@@ -1320,6 +1354,7 @@ static long fb_compat_ioctl(struct file
|
||||
case FBIOPAN_DISPLAY:
|
||||
case FBIOGET_CON2FBMAP:
|
||||
case FBIOPUT_CON2FBMAP:
|
||||
|
@ -10,7 +10,7 @@ Subject: [PATCH] ARM64: Force hardware emulation of deprecated
|
||||
|
||||
--- a/arch/arm64/kernel/armv8_deprecated.c
|
||||
+++ b/arch/arm64/kernel/armv8_deprecated.c
|
||||
@@ -182,10 +182,15 @@ static void __init register_insn_emulati
|
||||
@@ -183,10 +183,15 @@ static void __init register_insn_emulati
|
||||
|
||||
switch (ops->status) {
|
||||
case INSN_DEPRECATED:
|
||||
|
@ -17,7 +17,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/kernel/cgroup/cgroup.c
|
||||
+++ b/kernel/cgroup/cgroup.c
|
||||
@@ -5788,6 +5788,9 @@ int __init cgroup_init_early(void)
|
||||
@@ -5797,6 +5797,9 @@ int __init cgroup_init_early(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -27,7 +27,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
/**
|
||||
* cgroup_init - cgroup initialization
|
||||
*
|
||||
@@ -5826,6 +5829,12 @@ int __init cgroup_init(void)
|
||||
@@ -5835,6 +5838,12 @@ int __init cgroup_init(void)
|
||||
|
||||
mutex_unlock(&cgroup_mutex);
|
||||
|
||||
@ -40,7 +40,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
for_each_subsys(ss, ssid) {
|
||||
if (ss->early_init) {
|
||||
struct cgroup_subsys_state *css =
|
||||
@@ -6235,6 +6244,10 @@ static int __init cgroup_disable(char *s
|
||||
@@ -6244,6 +6253,10 @@ static int __init cgroup_disable(char *s
|
||||
strcmp(token, ss->legacy_name))
|
||||
continue;
|
||||
|
||||
@ -51,7 +51,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
static_branch_disable(cgroup_subsys_enabled_key[i]);
|
||||
pr_info("Disabling %s control group subsystem\n",
|
||||
ss->name);
|
||||
@@ -6244,6 +6257,31 @@ static int __init cgroup_disable(char *s
|
||||
@@ -6253,6 +6266,31 @@ static int __init cgroup_disable(char *s
|
||||
}
|
||||
__setup("cgroup_disable=", cgroup_disable);
|
||||
|
||||
|
@ -13,7 +13,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/drivers/spi/spi-bcm2835.c
|
||||
+++ b/drivers/spi/spi-bcm2835.c
|
||||
@@ -1236,31 +1236,6 @@ static int bcm2835_spi_setup(struct spi_
|
||||
@@ -1240,31 +1240,6 @@ static int bcm2835_spi_setup(struct spi_
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
|
@ -23,7 +23,7 @@ Signed-off-by: Martin Sperl <kernel@martin.sperl.org>
|
||||
/* Read as many bytes as possible from FIFO */
|
||||
bcm2835_rd_fifo(bs);
|
||||
/* Write as many bytes as possible to FIFO */
|
||||
@@ -1287,7 +1291,8 @@ static int bcm2835_spi_probe(struct plat
|
||||
@@ -1291,7 +1295,8 @@ static int bcm2835_spi_probe(struct plat
|
||||
bcm2835_wr(bs, BCM2835_SPI_CS,
|
||||
BCM2835_SPI_CS_CLEAR_RX | BCM2835_SPI_CS_CLEAR_TX);
|
||||
|
||||
|
@ -27,7 +27,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
|
||||
--- a/drivers/usb/core/hcd.c
|
||||
+++ b/drivers/usb/core/hcd.c
|
||||
@@ -1962,6 +1962,16 @@ reset:
|
||||
@@ -1965,6 +1965,16 @@ reset:
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -81,7 +81,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
extern int usb_driver_set_configuration(struct usb_device *udev, int config);
|
||||
--- a/include/linux/usb/hcd.h
|
||||
+++ b/include/linux/usb/hcd.h
|
||||
@@ -384,6 +384,11 @@ struct hc_driver {
|
||||
@@ -385,6 +385,11 @@ struct hc_driver {
|
||||
* or bandwidth constraints.
|
||||
*/
|
||||
void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *);
|
||||
@ -93,7 +93,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
/* Returns the hardware-chosen device address */
|
||||
int (*address_device)(struct usb_hcd *, struct usb_device *udev);
|
||||
/* prepares the hardware to send commands to the device */
|
||||
@@ -445,6 +450,8 @@ extern void usb_hcd_unmap_urb_setup_for_
|
||||
@@ -446,6 +451,8 @@ extern void usb_hcd_unmap_urb_setup_for_
|
||||
extern void usb_hcd_unmap_urb_for_dma(struct usb_hcd *, struct urb *);
|
||||
extern void usb_hcd_flush_endpoint(struct usb_device *udev,
|
||||
struct usb_host_endpoint *ep);
|
||||
|
@ -11,7 +11,7 @@ Signed-off-by: Chris G Miller <chris@creative-electronics.net>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_dsi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_dsi.c
|
||||
@@ -1485,9 +1485,11 @@ static int vc4_dsi_bind(struct device *d
|
||||
@@ -1483,9 +1483,11 @@ static int vc4_dsi_bind(struct device *d
|
||||
/* DSI1 has a broken AXI slave that doesn't respond to writes
|
||||
* from the ARM. It does handle writes from the DMA engine,
|
||||
* so set up a channel for talking to it.
|
||||
@ -24,7 +24,7 @@ Signed-off-by: Chris G Miller <chris@creative-electronics.net>
|
||||
&dsi->reg_dma_paddr,
|
||||
GFP_KERNEL);
|
||||
if (!dsi->reg_dma_mem) {
|
||||
@@ -1506,6 +1508,8 @@ static int vc4_dsi_bind(struct device *d
|
||||
@@ -1504,6 +1506,8 @@ static int vc4_dsi_bind(struct device *d
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -33,7 +33,7 @@ Signed-off-by: Chris G Miller <chris@creative-electronics.net>
|
||||
/* Get the physical address of the device's registers. The
|
||||
* struct resource for the regs gives us the bus address
|
||||
* instead.
|
||||
@@ -1532,7 +1536,7 @@ static int vc4_dsi_bind(struct device *d
|
||||
@@ -1530,7 +1534,7 @@ static int vc4_dsi_bind(struct device *d
|
||||
if (ret) {
|
||||
if (ret != -EPROBE_DEFER)
|
||||
dev_err(dev, "Failed to get interrupt: %d\n", ret);
|
||||
@ -42,7 +42,7 @@ Signed-off-by: Chris G Miller <chris@creative-electronics.net>
|
||||
}
|
||||
|
||||
dsi->escape_clock = devm_clk_get(dev, "escape");
|
||||
@@ -1540,7 +1544,7 @@ static int vc4_dsi_bind(struct device *d
|
||||
@@ -1538,7 +1542,7 @@ static int vc4_dsi_bind(struct device *d
|
||||
ret = PTR_ERR(dsi->escape_clock);
|
||||
if (ret != -EPROBE_DEFER)
|
||||
dev_err(dev, "Failed to get escape clock: %d\n", ret);
|
||||
@ -51,7 +51,7 @@ Signed-off-by: Chris G Miller <chris@creative-electronics.net>
|
||||
}
|
||||
|
||||
dsi->pll_phy_clock = devm_clk_get(dev, "phy");
|
||||
@@ -1548,7 +1552,7 @@ static int vc4_dsi_bind(struct device *d
|
||||
@@ -1546,7 +1550,7 @@ static int vc4_dsi_bind(struct device *d
|
||||
ret = PTR_ERR(dsi->pll_phy_clock);
|
||||
if (ret != -EPROBE_DEFER)
|
||||
dev_err(dev, "Failed to get phy clock: %d\n", ret);
|
||||
@ -60,7 +60,7 @@ Signed-off-by: Chris G Miller <chris@creative-electronics.net>
|
||||
}
|
||||
|
||||
dsi->pixel_clock = devm_clk_get(dev, "pixel");
|
||||
@@ -1556,7 +1560,7 @@ static int vc4_dsi_bind(struct device *d
|
||||
@@ -1554,7 +1558,7 @@ static int vc4_dsi_bind(struct device *d
|
||||
ret = PTR_ERR(dsi->pixel_clock);
|
||||
if (ret != -EPROBE_DEFER)
|
||||
dev_err(dev, "Failed to get pixel clock: %d\n", ret);
|
||||
@ -69,7 +69,7 @@ Signed-off-by: Chris G Miller <chris@creative-electronics.net>
|
||||
}
|
||||
|
||||
ret = drm_of_find_panel_or_bridge(dev->of_node, 0, 0,
|
||||
@@ -1571,26 +1575,28 @@ static int vc4_dsi_bind(struct device *d
|
||||
@@ -1569,26 +1573,28 @@ static int vc4_dsi_bind(struct device *d
|
||||
if (ret == -ENODEV)
|
||||
return 0;
|
||||
|
||||
@ -103,7 +103,7 @@ Signed-off-by: Chris G Miller <chris@creative-electronics.net>
|
||||
|
||||
if (dsi->port == 1)
|
||||
vc4->dsi1 = dsi;
|
||||
@@ -1602,7 +1608,7 @@ static int vc4_dsi_bind(struct device *d
|
||||
@@ -1600,7 +1606,7 @@ static int vc4_dsi_bind(struct device *d
|
||||
ret = drm_bridge_attach(dsi->encoder, dsi->bridge, NULL);
|
||||
if (ret) {
|
||||
dev_err(dev, "bridge attach failed: %d\n", ret);
|
||||
@ -112,7 +112,7 @@ Signed-off-by: Chris G Miller <chris@creative-electronics.net>
|
||||
}
|
||||
/* Disable the atomic helper calls into the bridge. We
|
||||
* manually call the bridge pre_enable / enable / etc. calls
|
||||
@@ -1619,6 +1625,11 @@ static int vc4_dsi_bind(struct device *d
|
||||
@@ -1617,6 +1623,11 @@ static int vc4_dsi_bind(struct device *d
|
||||
pm_runtime_enable(dev);
|
||||
|
||||
return 0;
|
||||
@ -124,7 +124,7 @@ Signed-off-by: Chris G Miller <chris@creative-electronics.net>
|
||||
}
|
||||
|
||||
static void vc4_dsi_unbind(struct device *dev, struct device *master,
|
||||
@@ -1633,6 +1644,8 @@ static void vc4_dsi_unbind(struct device
|
||||
@@ -1631,6 +1642,8 @@ static void vc4_dsi_unbind(struct device
|
||||
|
||||
vc4_dsi_encoder_destroy(dsi->encoder);
|
||||
|
||||
|
@ -58,7 +58,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
spin_unlock(&uap->port.lock);
|
||||
dev_vdbg(uap->port.dev,
|
||||
"Took %d chars from DMA buffer and %d chars from the FIFO\n",
|
||||
@@ -1350,6 +1353,7 @@ __acquires(&uap->port.lock)
|
||||
@@ -1359,6 +1362,7 @@ __acquires(&uap->port.lock)
|
||||
{
|
||||
pl011_fifo_to_tty(uap);
|
||||
|
||||
@ -66,7 +66,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
spin_unlock(&uap->port.lock);
|
||||
tty_flip_buffer_push(&uap->port.state->port);
|
||||
/*
|
||||
@@ -1485,6 +1489,7 @@ static irqreturn_t pl011_int(int irq, vo
|
||||
@@ -1494,6 +1498,7 @@ static irqreturn_t pl011_int(int irq, vo
|
||||
int handled = 0;
|
||||
|
||||
spin_lock_irqsave(&uap->port.lock, flags);
|
||||
@ -74,7 +74,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
status = pl011_read(uap, REG_RIS) & uap->im;
|
||||
if (status) {
|
||||
do {
|
||||
@@ -1504,7 +1509,7 @@ static irqreturn_t pl011_int(int irq, vo
|
||||
@@ -1513,7 +1518,7 @@ static irqreturn_t pl011_int(int irq, vo
|
||||
UART011_CTSMIS|UART011_RIMIS))
|
||||
pl011_modem_status(uap);
|
||||
if (status & UART011_TXIS)
|
||||
|
@ -24,7 +24,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1269,6 +1269,9 @@ ifneq ($(dtstree),)
|
||||
@@ -1272,6 +1272,9 @@ ifneq ($(dtstree),)
|
||||
%.dtb: include/config/kernel.release scripts_dtc
|
||||
$(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@
|
||||
|
||||
|
@ -18,7 +18,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_plane.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_plane.c
|
||||
@@ -585,6 +585,53 @@ static int vc4_plane_allocate_lbm(struct
|
||||
@@ -581,6 +581,53 @@ static int vc4_plane_allocate_lbm(struct
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -72,7 +72,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
||||
/* Writes out a full display list for an active plane to the plane's
|
||||
* private dlist state.
|
||||
*/
|
||||
@@ -864,9 +911,20 @@ static int vc4_plane_mode_set(struct drm
|
||||
@@ -860,9 +907,20 @@ static int vc4_plane_mode_set(struct drm
|
||||
|
||||
/* Colorspace conversion words */
|
||||
if (vc4_state->is_yuv) {
|
||||
@ -96,7 +96,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
||||
}
|
||||
|
||||
vc4_state->lbm_offset = 0;
|
||||
@@ -1275,5 +1333,13 @@ struct drm_plane *vc4_plane_init(struct
|
||||
@@ -1271,5 +1329,13 @@ struct drm_plane *vc4_plane_init(struct
|
||||
DRM_MODE_REFLECT_X |
|
||||
DRM_MODE_REFLECT_Y);
|
||||
|
||||
|
@ -1,61 +0,0 @@
|
||||
From a3749ee48539fa832b1832cdcae26d34e5d20f00 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
|
||||
@@ -1326,6 +1326,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 =
|
||||
@@ -2150,6 +2176,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
|
||||
+++ b/drivers/tty/serial/amba-pl011.c
|
||||
@@ -1447,6 +1447,10 @@ static bool pl011_tx_chars(struct uart_a
|
||||
@@ -1430,6 +1430,10 @@ static bool pl011_tx_chars(struct uart_a
|
||||
if (likely(from_irq) && count-- == 0)
|
||||
break;
|
||||
|
||||
|
@ -12,7 +12,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
--- a/drivers/spi/spi-bcm2835.c
|
||||
+++ b/drivers/spi/spi-bcm2835.c
|
||||
@@ -1182,7 +1182,6 @@ static int bcm2835_spi_setup(struct spi_
|
||||
@@ -1186,7 +1186,6 @@ static int bcm2835_spi_setup(struct spi_
|
||||
{
|
||||
struct spi_controller *ctlr = spi->controller;
|
||||
struct bcm2835_spi *bs = spi_controller_get_devdata(ctlr);
|
||||
|
@ -29,7 +29,7 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
|
||||
|
||||
--- a/arch/arm64/Kconfig
|
||||
+++ b/arch/arm64/Kconfig
|
||||
@@ -267,6 +267,10 @@ config GENERIC_CSUM
|
||||
@@ -266,6 +266,10 @@ config GENERIC_CSUM
|
||||
config GENERIC_CALIBRATE_DELAY
|
||||
def_bool y
|
||||
|
||||
|
@ -31,7 +31,7 @@ Signed-off-by: Christoph Hellwig <hch@lst.de>
|
||||
|
||||
--- a/arch/x86/Kconfig
|
||||
+++ b/arch/x86/Kconfig
|
||||
@@ -709,7 +709,6 @@ config X86_SUPPORTS_MEMORY_FAILURE
|
||||
@@ -708,7 +708,6 @@ config X86_SUPPORTS_MEMORY_FAILURE
|
||||
config STA2X11
|
||||
bool "STA2X11 Companion Chip Support"
|
||||
depends on X86_32_NON_STANDARD && PCI
|
||||
|
@ -15,7 +15,7 @@ Signed-off-by: Nataliya Korovkina <malus.brandywine@gmail.com>
|
||||
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1269,7 +1269,7 @@ ifneq ($(dtstree),)
|
||||
@@ -1272,7 +1272,7 @@ ifneq ($(dtstree),)
|
||||
%.dtb: include/config/kernel.release scripts_dtc
|
||||
$(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@
|
||||
|
||||
|
@ -21,7 +21,7 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
|
||||
|
||||
--- a/drivers/media/v4l2-core/v4l2-mem2mem.c
|
||||
+++ b/drivers/media/v4l2-core/v4l2-mem2mem.c
|
||||
@@ -1216,6 +1216,59 @@ int v4l2_m2m_ioctl_try_decoder_cmd(struc
|
||||
@@ -1248,6 +1248,59 @@ int v4l2_m2m_ioctl_try_decoder_cmd(struc
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(v4l2_m2m_ioctl_try_decoder_cmd);
|
||||
|
||||
|
@ -168,7 +168,7 @@ Signed-off-by: John Cox <jc@kynesim.co.uk>
|
||||
}
|
||||
schedule_next = _v4l2_m2m_job_finish(m2m_dev, m2m_ctx);
|
||||
unlock:
|
||||
@@ -981,12 +1072,14 @@ struct v4l2_m2m_ctx *v4l2_m2m_ctx_init(s
|
||||
@@ -1013,12 +1104,14 @@ struct v4l2_m2m_ctx *v4l2_m2m_ctx_init(s
|
||||
m2m_ctx->priv = drv_priv;
|
||||
m2m_ctx->m2m_dev = m2m_dev;
|
||||
init_waitqueue_head(&m2m_ctx->finished);
|
||||
|
@ -95,7 +95,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_plane.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_plane.c
|
||||
@@ -500,6 +500,11 @@ static void vc4_plane_calc_load(struct d
|
||||
@@ -496,6 +496,11 @@ static void vc4_plane_calc_load(struct d
|
||||
struct vc4_plane_state *vc4_state;
|
||||
struct drm_crtc_state *crtc_state;
|
||||
unsigned int vscale_factor;
|
||||
|
@ -186,7 +186,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
.pixel_order = HVS_PIXEL_ORDER_XBGR,
|
||||
},
|
||||
{
|
||||
@@ -836,35 +851,6 @@ static int vc4_plane_mode_set(struct drm
|
||||
@@ -832,35 +847,6 @@ static int vc4_plane_mode_set(struct drm
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@ -222,7 +222,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
/* Don't waste cycles mixing with plane alpha if the set alpha
|
||||
* is opaque or there is no per-pixel alpha information.
|
||||
* In any case we use the alpha property value as the fixed alpha.
|
||||
@@ -872,20 +858,120 @@ static int vc4_plane_mode_set(struct drm
|
||||
@@ -868,20 +854,120 @@ static int vc4_plane_mode_set(struct drm
|
||||
mix_plane_alpha = state->alpha != DRM_BLEND_ALPHA_OPAQUE &&
|
||||
fb->format->has_alpha;
|
||||
|
||||
@ -356,7 +356,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
|
||||
/* Pointer Word 0/1/2: RGB / Y / Cb / Cr Pointers
|
||||
@@ -1276,6 +1362,10 @@ static bool vc4_format_mod_supported(str
|
||||
@@ -1272,6 +1358,10 @@ static bool vc4_format_mod_supported(str
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
@ -32,7 +32,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
return VC4_SCALING_NONE;
|
||||
if (3 * dst >= 2 * src)
|
||||
return VC4_SCALING_PPF;
|
||||
@@ -377,9 +378,11 @@ static int vc4_plane_setup_clipping_and_
|
||||
@@ -373,9 +374,11 @@ static int vc4_plane_setup_clipping_and_
|
||||
return ret;
|
||||
|
||||
vc4_state->x_scaling[0] = vc4_get_scaling_mode(vc4_state->src_w[0],
|
||||
@ -46,7 +46,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
vc4_state->is_unity = (vc4_state->x_scaling[0] == VC4_SCALING_NONE &&
|
||||
vc4_state->y_scaling[0] == VC4_SCALING_NONE);
|
||||
@@ -392,10 +395,12 @@ static int vc4_plane_setup_clipping_and_
|
||||
@@ -388,10 +391,12 @@ static int vc4_plane_setup_clipping_and_
|
||||
|
||||
vc4_state->x_scaling[1] =
|
||||
vc4_get_scaling_mode(vc4_state->src_w[1],
|
||||
@ -61,7 +61,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
/* YUV conversion requires that horizontal scaling be enabled
|
||||
* on the UV plane even if vc4_get_scaling_mode() returned
|
||||
@@ -445,10 +450,7 @@ static void vc4_write_ppf(struct vc4_pla
|
||||
@@ -441,10 +446,7 @@ static void vc4_write_ppf(struct vc4_pla
|
||||
static u32 vc4_lbm_size(struct drm_plane_state *state)
|
||||
{
|
||||
struct vc4_plane_state *vc4_state = to_vc4_plane_state(state);
|
||||
@ -73,7 +73,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
u32 lbm;
|
||||
|
||||
/* LBM is not needed when there's no vertical scaling. */
|
||||
@@ -456,6 +458,11 @@ static u32 vc4_lbm_size(struct drm_plane
|
||||
@@ -452,6 +454,11 @@ static u32 vc4_lbm_size(struct drm_plane
|
||||
vc4_state->y_scaling[1] == VC4_SCALING_NONE)
|
||||
return 0;
|
||||
|
||||
@ -85,7 +85,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
if (!vc4_state->is_yuv) {
|
||||
if (vc4_state->y_scaling[0] == VC4_SCALING_TPZ)
|
||||
lbm = pix_per_line * 8;
|
||||
@@ -591,7 +598,9 @@ static int vc4_plane_allocate_lbm(struct
|
||||
@@ -587,7 +594,9 @@ static int vc4_plane_allocate_lbm(struct
|
||||
spin_lock_irqsave(&vc4->hvs->mm_lock, irqflags);
|
||||
ret = drm_mm_insert_node_generic(&vc4->hvs->lbm_mm,
|
||||
&vc4_state->lbm,
|
||||
|
@ -81,7 +81,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
void vc4_plane_async_set_fb(struct drm_plane *plane,
|
||||
--- a/drivers/gpu/drm/vc4/vc4_plane.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_plane.c
|
||||
@@ -1447,3 +1447,41 @@ struct drm_plane *vc4_plane_init(struct
|
||||
@@ -1443,3 +1443,41 @@ struct drm_plane *vc4_plane_init(struct
|
||||
|
||||
return plane;
|
||||
}
|
||||
|
@ -55,7 +55,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
void vc4_plane_async_set_fb(struct drm_plane *plane,
|
||||
--- a/drivers/gpu/drm/vc4/vc4_plane.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_plane.c
|
||||
@@ -1448,39 +1448,41 @@ struct drm_plane *vc4_plane_init(struct
|
||||
@@ -1444,39 +1444,41 @@ struct drm_plane *vc4_plane_init(struct
|
||||
return plane;
|
||||
}
|
||||
|
||||
|
@ -23,7 +23,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_plane.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_plane.c
|
||||
@@ -1454,26 +1454,27 @@ int vc4_plane_create_additional_planes(s
|
||||
@@ -1450,26 +1450,27 @@ int vc4_plane_create_additional_planes(s
|
||||
struct drm_crtc *crtc;
|
||||
unsigned int i;
|
||||
|
||||
|
@ -21,7 +21,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_plane.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_plane.c
|
||||
@@ -1463,7 +1463,7 @@ int vc4_plane_create_additional_planes(s
|
||||
@@ -1459,7 +1459,7 @@ int vc4_plane_create_additional_planes(s
|
||||
* modest number of planes to expose, that should hopefully
|
||||
* still cover any sane usecase.
|
||||
*/
|
||||
|
@ -38,7 +38,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
};
|
||||
|
||||
static const struct hvs_format *vc4_get_hvs_format(u32 drm_format)
|
||||
@@ -809,27 +816,33 @@ static int vc4_plane_mode_set(struct drm
|
||||
@@ -805,27 +812,33 @@ static int vc4_plane_mode_set(struct drm
|
||||
uint32_t param = fourcc_mod_broadcom_param(fb->modifier);
|
||||
u32 tile_w, tile, x_off, pix_per_tile;
|
||||
|
||||
@ -90,7 +90,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@@ -839,6 +852,13 @@ static int vc4_plane_mode_set(struct drm
|
||||
@@ -835,6 +848,13 @@ static int vc4_plane_mode_set(struct drm
|
||||
|
||||
/* Adjust the base pointer to the first pixel to be scanned
|
||||
* out.
|
||||
@ -104,7 +104,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
*/
|
||||
for (i = 0; i < num_planes; i++) {
|
||||
vc4_state->offsets[i] += param * tile_w * tile;
|
||||
@@ -951,8 +971,8 @@ static int vc4_plane_mode_set(struct drm
|
||||
@@ -947,8 +967,8 @@ static int vc4_plane_mode_set(struct drm
|
||||
vc4_dlist_write(vc4_state,
|
||||
VC4_SET_FIELD(state->alpha >> 4,
|
||||
SCALER5_CTL2_ALPHA) |
|
||||
@ -115,7 +115,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
(mix_plane_alpha ?
|
||||
SCALER5_CTL2_ALPHA_MIX : 0) |
|
||||
VC4_SET_FIELD(fb->format->has_alpha ?
|
||||
@@ -1000,7 +1020,8 @@ static int vc4_plane_mode_set(struct drm
|
||||
@@ -996,7 +1016,8 @@ static int vc4_plane_mode_set(struct drm
|
||||
|
||||
/* Pitch word 1/2 */
|
||||
for (i = 1; i < num_planes; i++) {
|
||||
@ -125,7 +125,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
vc4_dlist_write(vc4_state,
|
||||
VC4_SET_FIELD(fb->pitches[i],
|
||||
SCALER_SRC_PITCH));
|
||||
@@ -1371,6 +1392,13 @@ static bool vc4_format_mod_supported(str
|
||||
@@ -1367,6 +1388,13 @@ static bool vc4_format_mod_supported(str
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
@ -139,7 +139,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
case DRM_FORMAT_RGBX1010102:
|
||||
case DRM_FORMAT_BGRX1010102:
|
||||
case DRM_FORMAT_RGBA1010102:
|
||||
@@ -1403,8 +1431,11 @@ struct drm_plane *vc4_plane_init(struct
|
||||
@@ -1399,8 +1427,11 @@ struct drm_plane *vc4_plane_init(struct
|
||||
struct drm_plane *plane = NULL;
|
||||
struct vc4_plane *vc4_plane;
|
||||
u32 formats[ARRAY_SIZE(hvs_formats)];
|
||||
@ -151,7 +151,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
static const uint64_t modifiers[] = {
|
||||
DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED,
|
||||
DRM_FORMAT_MOD_BROADCOM_SAND128,
|
||||
@@ -1419,13 +1450,17 @@ struct drm_plane *vc4_plane_init(struct
|
||||
@@ -1415,13 +1446,17 @@ struct drm_plane *vc4_plane_init(struct
|
||||
if (!vc4_plane)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
|
@ -15,7 +15,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_plane.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_plane.c
|
||||
@@ -1451,7 +1451,7 @@ struct drm_plane *vc4_plane_init(struct
|
||||
@@ -1447,7 +1447,7 @@ struct drm_plane *vc4_plane_init(struct
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(hvs_formats); i++) {
|
||||
|
@ -12,7 +12,7 @@ See: https://github.com/raspberrypi/linux/pull/3687
|
||||
|
||||
--- a/drivers/spi/spi-bcm2835.c
|
||||
+++ b/drivers/spi/spi-bcm2835.c
|
||||
@@ -1182,6 +1182,8 @@ static int bcm2835_spi_setup(struct spi_
|
||||
@@ -1186,6 +1186,8 @@ static int bcm2835_spi_setup(struct spi_
|
||||
{
|
||||
struct spi_controller *ctlr = spi->controller;
|
||||
struct bcm2835_spi *bs = spi_controller_get_devdata(ctlr);
|
||||
|
@ -13,7 +13,7 @@ See: https://github.com/raspberrypi/linux/pull/3687
|
||||
|
||||
--- a/drivers/spi/spi-bcm2835.c
|
||||
+++ b/drivers/spi/spi-bcm2835.c
|
||||
@@ -1241,6 +1241,43 @@ static int bcm2835_spi_setup(struct spi_
|
||||
@@ -1245,6 +1245,43 @@ static int bcm2835_spi_setup(struct spi_
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
|
@ -78,7 +78,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
offset = CORE_STS_OVERRIDE_GMIIP_PORT(port);
|
||||
else
|
||||
offset = CORE_STS_OVERRIDE_GMIIP2_PORT(port);
|
||||
@@ -985,6 +987,30 @@ struct bcm_sf2_of_data {
|
||||
@@ -990,6 +992,30 @@ struct bcm_sf2_of_data {
|
||||
unsigned int num_cfp_rules;
|
||||
};
|
||||
|
||||
@ -109,7 +109,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
/* Register offsets for the SWITCH_REG_* block */
|
||||
static const u16 bcm_sf2_7445_reg_offsets[] = {
|
||||
[REG_SWITCH_CNTRL] = 0x00,
|
||||
@@ -1033,6 +1059,9 @@ static const struct bcm_sf2_of_data bcm_
|
||||
@@ -1038,6 +1064,9 @@ static const struct bcm_sf2_of_data bcm_
|
||||
};
|
||||
|
||||
static const struct of_device_id bcm_sf2_of_match[] = {
|
||||
|
@ -82,7 +82,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
static void bcm_sf2_intr_disable(struct bcm_sf2_priv *priv)
|
||||
{
|
||||
intrl2_0_mask_set(priv, 0xffffffff);
|
||||
@@ -734,6 +772,8 @@ static int bcm_sf2_sw_resume(struct dsa_
|
||||
@@ -739,6 +777,8 @@ static int bcm_sf2_sw_resume(struct dsa_
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -91,7 +91,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
ret = bcm_sf2_cfp_resume(ds);
|
||||
if (ret)
|
||||
return ret;
|
||||
@@ -996,6 +1036,7 @@ struct bcm_sf2_of_data {
|
||||
@@ -1001,6 +1041,7 @@ struct bcm_sf2_of_data {
|
||||
const u16 *reg_offsets;
|
||||
unsigned int core_reg_align;
|
||||
unsigned int num_cfp_rules;
|
||||
@ -99,7 +99,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
};
|
||||
|
||||
static const u16 bcm_sf2_4908_reg_offsets[] = {
|
||||
@@ -1020,6 +1061,7 @@ static const struct bcm_sf2_of_data bcm_
|
||||
@@ -1025,6 +1066,7 @@ static const struct bcm_sf2_of_data bcm_
|
||||
.core_reg_align = 0,
|
||||
.reg_offsets = bcm_sf2_4908_reg_offsets,
|
||||
.num_cfp_rules = 0, /* FIXME */
|
||||
@ -107,7 +107,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
};
|
||||
|
||||
/* Register offsets for the SWITCH_REG_* block */
|
||||
@@ -1130,6 +1172,7 @@ static int bcm_sf2_sw_probe(struct platf
|
||||
@@ -1135,6 +1177,7 @@ static int bcm_sf2_sw_probe(struct platf
|
||||
priv->reg_offsets = data->reg_offsets;
|
||||
priv->core_reg_align = data->core_reg_align;
|
||||
priv->num_cfp_rules = data->num_cfp_rules;
|
||||
@ -115,7 +115,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
/* Auto-detection using standard registers will not work, so
|
||||
* provide an indication of what kind of device we are for
|
||||
@@ -1184,6 +1227,8 @@ static int bcm_sf2_sw_probe(struct platf
|
||||
@@ -1189,6 +1232,8 @@ static int bcm_sf2_sw_probe(struct platf
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -14,7 +14,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/drivers/net/dsa/bcm_sf2.c
|
||||
+++ b/drivers/net/dsa/bcm_sf2.c
|
||||
@@ -1060,7 +1060,7 @@ static const struct bcm_sf2_of_data bcm_
|
||||
@@ -1065,7 +1065,7 @@ static const struct bcm_sf2_of_data bcm_
|
||||
.type = BCM4908_DEVICE_ID,
|
||||
.core_reg_align = 0,
|
||||
.reg_offsets = bcm_sf2_4908_reg_offsets,
|
||||
|
@ -88,7 +88,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
force_link:
|
||||
/* Force link settings detected from the PHY */
|
||||
@@ -661,6 +689,7 @@ static void bcm_sf2_sw_mac_link_set(stru
|
||||
@@ -666,6 +694,7 @@ static void bcm_sf2_sw_mac_link_set(stru
|
||||
phy_interface_t interface, bool link)
|
||||
{
|
||||
struct bcm_sf2_priv *priv = bcm_sf2_to_priv(ds);
|
||||
@ -96,7 +96,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
u32 reg;
|
||||
|
||||
if (!phy_interface_mode_is_rgmii(interface) &&
|
||||
@@ -668,13 +697,15 @@ static void bcm_sf2_sw_mac_link_set(stru
|
||||
@@ -673,13 +702,15 @@ static void bcm_sf2_sw_mac_link_set(stru
|
||||
interface != PHY_INTERFACE_MODE_REVMII)
|
||||
return;
|
||||
|
||||
|
@ -33,7 +33,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
break;
|
||||
default:
|
||||
switch (port) {
|
||||
@@ -1079,9 +1084,7 @@ static const u16 bcm_sf2_4908_reg_offset
|
||||
@@ -1084,9 +1089,7 @@ static const u16 bcm_sf2_4908_reg_offset
|
||||
[REG_PHY_REVISION] = 0x14,
|
||||
[REG_SPHY_CNTRL] = 0x24,
|
||||
[REG_CROSSBAR] = 0xc8,
|
||||
|
@ -82,7 +82,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1085,9 +1122,14 @@ static const u16 bcm_sf2_4908_reg_offset
|
||||
@@ -1090,9 +1127,14 @@ static const u16 bcm_sf2_4908_reg_offset
|
||||
[REG_SPHY_CNTRL] = 0x24,
|
||||
[REG_CROSSBAR] = 0xc8,
|
||||
[REG_RGMII_11_CNTRL] = 0x014c,
|
||||
|
@ -29,7 +29,7 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
|
||||
--- a/drivers/net/dsa/bcm_sf2.c
|
||||
+++ b/drivers/net/dsa/bcm_sf2.c
|
||||
@@ -1363,10 +1363,14 @@ static int bcm_sf2_sw_probe(struct platf
|
||||
@@ -1368,10 +1368,14 @@ static int bcm_sf2_sw_probe(struct platf
|
||||
rev = reg_readl(priv, REG_PHY_REVISION);
|
||||
priv->hw_params.gphy_rev = rev & PHY_REVISION_MASK;
|
||||
|
||||
|
@ -15,7 +15,7 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
|
||||
--- a/drivers/net/dsa/bcm_sf2.c
|
||||
+++ b/drivers/net/dsa/bcm_sf2.c
|
||||
@@ -1377,6 +1377,12 @@ static int bcm_sf2_sw_probe(struct platf
|
||||
@@ -1382,6 +1382,12 @@ static int bcm_sf2_sw_probe(struct platf
|
||||
priv->hw_params.core_rev >> 8, priv->hw_params.core_rev & 0xff,
|
||||
priv->irq0, priv->irq1);
|
||||
|
||||
|
@ -68,7 +68,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
|
||||
ret = gpiod_hog(desc, name, lflags, dflags);
|
||||
if (ret < 0) {
|
||||
of_node_put(np);
|
||||
@@ -904,9 +911,11 @@ int of_gpiochip_add(struct gpio_chip *ch
|
||||
@@ -906,9 +913,11 @@ int of_gpiochip_add(struct gpio_chip *ch
|
||||
|
||||
of_node_get(chip->of_node);
|
||||
|
||||
|
@ -23,7 +23,7 @@ Signed-off-by: Axel Gembe <ago@bastart.eu.org>
|
||||
.width = 2,
|
||||
--- a/drivers/mtd/parsers/redboot.c
|
||||
+++ b/drivers/mtd/parsers/redboot.c
|
||||
@@ -84,6 +84,7 @@ static int parse_redboot_partitions(stru
|
||||
@@ -85,6 +85,7 @@ static int parse_redboot_partitions(stru
|
||||
int nulllen = 0;
|
||||
int numslots;
|
||||
unsigned long offset;
|
||||
@ -31,7 +31,7 @@ Signed-off-by: Axel Gembe <ago@bastart.eu.org>
|
||||
#ifdef CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED
|
||||
static char nullstring[] = "unallocated";
|
||||
#endif
|
||||
@@ -190,6 +191,16 @@ static int parse_redboot_partitions(stru
|
||||
@@ -191,6 +192,16 @@ static int parse_redboot_partitions(stru
|
||||
goto out;
|
||||
}
|
||||
|
||||
@ -48,7 +48,7 @@ Signed-off-by: Axel Gembe <ago@bastart.eu.org>
|
||||
for (i = 0; i < numslots; i++) {
|
||||
struct fis_list *new_fl, **prev;
|
||||
|
||||
@@ -210,10 +221,10 @@ static int parse_redboot_partitions(stru
|
||||
@@ -211,10 +222,10 @@ static int parse_redboot_partitions(stru
|
||||
goto out;
|
||||
}
|
||||
new_fl->img = &buf[i];
|
||||
|
@ -26,7 +26,7 @@ Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
|
||||
|
||||
--- a/arch/arm64/crypto/Kconfig
|
||||
+++ b/arch/arm64/crypto/Kconfig
|
||||
@@ -103,7 +103,7 @@ config CRYPTO_CHACHA20_NEON
|
||||
@@ -104,7 +104,7 @@ config CRYPTO_CHACHA20_NEON
|
||||
tristate "ChaCha20, XChaCha20, and XChaCha12 stream ciphers using NEON instructions"
|
||||
depends on KERNEL_MODE_NEON
|
||||
select CRYPTO_BLKCIPHER
|
||||
|
@ -25,7 +25,7 @@ Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
|
||||
|
||||
--- a/arch/arm64/crypto/Kconfig
|
||||
+++ b/arch/arm64/crypto/Kconfig
|
||||
@@ -104,6 +104,7 @@ config CRYPTO_CHACHA20_NEON
|
||||
@@ -105,6 +105,7 @@ config CRYPTO_CHACHA20_NEON
|
||||
depends on KERNEL_MODE_NEON
|
||||
select CRYPTO_BLKCIPHER
|
||||
select CRYPTO_LIB_CHACHA_GENERIC
|
||||
|
@ -34,7 +34,7 @@ Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
|
||||
|
||||
--- a/arch/arm64/crypto/Kconfig
|
||||
+++ b/arch/arm64/crypto/Kconfig
|
||||
@@ -106,6 +106,12 @@ config CRYPTO_CHACHA20_NEON
|
||||
@@ -107,6 +107,12 @@ config CRYPTO_CHACHA20_NEON
|
||||
select CRYPTO_LIB_CHACHA_GENERIC
|
||||
select CRYPTO_ARCH_HAVE_LIB_CHACHA
|
||||
|
||||
|
@ -16,7 +16,7 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
|
||||
|
||||
--- a/arch/powerpc/Makefile
|
||||
+++ b/arch/powerpc/Makefile
|
||||
@@ -61,20 +61,6 @@ machine-$(CONFIG_PPC64) += 64
|
||||
@@ -44,20 +44,6 @@ machine-$(CONFIG_PPC64) += 64
|
||||
machine-$(CONFIG_CPU_LITTLE_ENDIAN) += le
|
||||
UTS_MACHINE := $(subst $(space),,$(machine-y))
|
||||
|
||||
|
@ -12,7 +12,7 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
|
||||
--- a/drivers/mtd/parsers/redboot.c
|
||||
+++ b/drivers/mtd/parsers/redboot.c
|
||||
@@ -305,6 +305,7 @@ static int parse_redboot_partitions(stru
|
||||
@@ -306,6 +306,7 @@ static int parse_redboot_partitions(stru
|
||||
|
||||
static const struct of_device_id mtd_parser_redboot_of_match_table[] = {
|
||||
{ .compatible = "redboot-fis" },
|
||||
|
@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/drivers/mtd/parsers/redboot.c
|
||||
+++ b/drivers/mtd/parsers/redboot.c
|
||||
@@ -279,14 +279,21 @@ static int parse_redboot_partitions(stru
|
||||
@@ -280,14 +280,21 @@ static int parse_redboot_partitions(stru
|
||||
#endif
|
||||
names += strlen(names)+1;
|
||||
|
||||
|
@ -506,7 +506,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
+MODULE_ALIAS("nf-flow-table-hw");
|
||||
--- a/net/netfilter/nf_tables_api.c
|
||||
+++ b/net/netfilter/nf_tables_api.c
|
||||
@@ -5752,6 +5752,13 @@ static int nf_tables_flowtable_parse_hoo
|
||||
@@ -5758,6 +5758,13 @@ static int nf_tables_flowtable_parse_hoo
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
@ -520,7 +520,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
ops = kcalloc(n, sizeof(struct nf_hook_ops), GFP_KERNEL);
|
||||
if (!ops)
|
||||
return -ENOMEM;
|
||||
@@ -5882,10 +5889,19 @@ static int nf_tables_newflowtable(struct
|
||||
@@ -5888,10 +5895,19 @@ static int nf_tables_newflowtable(struct
|
||||
}
|
||||
|
||||
flowtable->data.type = type;
|
||||
@ -540,7 +540,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
err = nf_tables_flowtable_parse_hook(&ctx, nla[NFTA_FLOWTABLE_HOOK],
|
||||
flowtable);
|
||||
if (err < 0)
|
||||
@@ -6011,7 +6027,8 @@ static int nf_tables_fill_flowtable_info
|
||||
@@ -6017,7 +6033,8 @@ static int nf_tables_fill_flowtable_info
|
||||
nla_put_string(skb, NFTA_FLOWTABLE_NAME, flowtable->name) ||
|
||||
nla_put_be32(skb, NFTA_FLOWTABLE_USE, htonl(flowtable->use)) ||
|
||||
nla_put_be64(skb, NFTA_FLOWTABLE_HANDLE, cpu_to_be64(flowtable->handle),
|
||||
|
@ -175,7 +175,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
/*
|
||||
* Allocate a dst for local (unicast / anycast) address.
|
||||
*/
|
||||
@@ -4933,7 +4963,8 @@ static int rtm_to_fib6_config(struct sk_
|
||||
@@ -4940,7 +4970,8 @@ static int rtm_to_fib6_config(struct sk_
|
||||
if (rtm->rtm_type == RTN_UNREACHABLE ||
|
||||
rtm->rtm_type == RTN_BLACKHOLE ||
|
||||
rtm->rtm_type == RTN_PROHIBIT ||
|
||||
@ -185,7 +185,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
cfg->fc_flags |= RTF_REJECT;
|
||||
|
||||
if (rtm->rtm_type == RTN_LOCAL)
|
||||
@@ -6084,6 +6115,8 @@ static int ip6_route_dev_notify(struct n
|
||||
@@ -6091,6 +6122,8 @@ static int ip6_route_dev_notify(struct n
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
net->ipv6.ip6_prohibit_entry->dst.dev = 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->rt6i_idev = in6_dev_get(dev);
|
||||
#endif
|
||||
@@ -6095,6 +6128,7 @@ static int ip6_route_dev_notify(struct n
|
||||
@@ -6102,6 +6135,7 @@ static int ip6_route_dev_notify(struct n
|
||||
in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev);
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
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);
|
||||
#endif
|
||||
}
|
||||
@@ -6287,6 +6321,8 @@ static int __net_init ip6_route_net_init
|
||||
@@ -6294,6 +6328,8 @@ static int __net_init ip6_route_net_init
|
||||
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
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,
|
||||
sizeof(*net->ipv6.ip6_prohibit_entry),
|
||||
GFP_KERNEL);
|
||||
@@ -6297,11 +6333,21 @@ static int __net_init ip6_route_net_init
|
||||
@@ -6304,11 +6340,21 @@ static int __net_init ip6_route_net_init
|
||||
ip6_template_metrics, true);
|
||||
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;
|
||||
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
|
||||
ip6_template_metrics, true);
|
||||
@@ -6325,6 +6371,8 @@ out:
|
||||
@@ -6332,6 +6378,8 @@ out:
|
||||
return ret;
|
||||
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
out_ip6_prohibit_entry:
|
||||
kfree(net->ipv6.ip6_prohibit_entry);
|
||||
out_ip6_null_entry:
|
||||
@@ -6344,6 +6392,7 @@ static void __net_exit ip6_route_net_exi
|
||||
@@ -6351,6 +6399,7 @@ static void __net_exit ip6_route_net_exi
|
||||
kfree(net->ipv6.ip6_null_entry);
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
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);
|
||||
#endif
|
||||
dst_entries_destroy(&net->ipv6.ip6_dst_ops);
|
||||
@@ -6421,6 +6470,9 @@ void __init ip6_route_init_special_entri
|
||||
@@ -6428,6 +6477,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_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);
|
||||
|
@ -98,7 +98,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
#endif /* __LINUX_USB_PCI_QUIRKS_H */
|
||||
--- a/include/linux/usb/hcd.h
|
||||
+++ b/include/linux/usb/hcd.h
|
||||
@@ -485,7 +485,14 @@ extern int usb_hcd_pci_probe(struct pci_
|
||||
@@ -486,7 +486,14 @@ extern int usb_hcd_pci_probe(struct pci_
|
||||
extern void usb_hcd_pci_remove(struct pci_dev *dev);
|
||||
extern void usb_hcd_pci_shutdown(struct pci_dev *dev);
|
||||
|
||||
|
@ -22,7 +22,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
|
||||
#include "gpiolib.h"
|
||||
#include "gpiolib-of.h"
|
||||
@@ -915,3 +917,68 @@ void of_gpiochip_remove(struct gpio_chip
|
||||
@@ -917,3 +919,68 @@ void of_gpiochip_remove(struct gpio_chip
|
||||
{
|
||||
of_node_put(chip->of_node);
|
||||
}
|
||||
|
@ -33,7 +33,7 @@ Signed-off-by: Mathieu Olivari <mathieu@codeaurora.org>
|
||||
|
||||
--- a/arch/arm/Kconfig
|
||||
+++ b/arch/arm/Kconfig
|
||||
@@ -319,7 +319,7 @@ config ARCH_MULTIPLATFORM
|
||||
@@ -318,7 +318,7 @@ config ARCH_MULTIPLATFORM
|
||||
depends on MMU
|
||||
select ARM_HAS_SG_CHAIN
|
||||
select ARM_PATCH_PHYS_VIRT
|
||||
|
@ -27,8 +27,8 @@ Signed-off-by: Rajith Cherian <rajith@codeaurora.org>
|
||||
{
|
||||
struct __thermal_zone *data = tz->devdata;
|
||||
|
||||
- if (!data->ops->get_temp)
|
||||
+ if (!data->ops->get_temp || (data->mode == THERMAL_DEVICE_DISABLED))
|
||||
- if (!data->ops || !data->ops->get_temp)
|
||||
+ if (!data->ops || !data->ops->get_temp || (data->mode == THERMAL_DEVICE_DISABLED))
|
||||
return -EINVAL;
|
||||
|
||||
return data->ops->get_temp(data->sensor_data, temp);
|
||||
@ -42,9 +42,9 @@ Signed-off-by: Rajith Cherian <rajith@codeaurora.org>
|
||||
return -EINVAL;
|
||||
|
||||
return data->ops->set_trips(data->sensor_data, low, high);
|
||||
@@ -188,6 +189,9 @@ static int of_thermal_set_emul_temp(stru
|
||||
{
|
||||
struct __thermal_zone *data = tz->devdata;
|
||||
@@ -191,6 +192,9 @@ static int of_thermal_set_emul_temp(stru
|
||||
if (!data->ops || !data->ops->set_emul_temp)
|
||||
return -EINVAL;
|
||||
|
||||
+ if (data->mode == THERMAL_DEVICE_DISABLED)
|
||||
+ return -EINVAL;
|
||||
@ -52,16 +52,16 @@ Signed-off-by: Rajith Cherian <rajith@codeaurora.org>
|
||||
return data->ops->set_emul_temp(data->sensor_data, temp);
|
||||
}
|
||||
|
||||
@@ -196,7 +200,7 @@ static int of_thermal_get_trend(struct t
|
||||
@@ -199,7 +203,7 @@ static int of_thermal_get_trend(struct t
|
||||
{
|
||||
struct __thermal_zone *data = tz->devdata;
|
||||
|
||||
- if (!data->ops->get_trend)
|
||||
+ if (!data->ops->get_trend || (data->mode == THERMAL_DEVICE_DISABLED))
|
||||
- if (!data->ops || !data->ops->get_trend)
|
||||
+ if (!data->ops || !data->ops->get_trend || (data->mode == THERMAL_DEVICE_DISABLED))
|
||||
return -EINVAL;
|
||||
|
||||
return data->ops->get_trend(data->sensor_data, trip, trend);
|
||||
@@ -297,7 +301,9 @@ static int of_thermal_set_mode(struct th
|
||||
@@ -300,7 +304,9 @@ static int of_thermal_set_mode(struct th
|
||||
mutex_unlock(&tz->lock);
|
||||
|
||||
data->mode = mode;
|
||||
@ -72,7 +72,7 @@ Signed-off-by: Rajith Cherian <rajith@codeaurora.org>
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -307,7 +313,8 @@ static int of_thermal_get_trip_type(stru
|
||||
@@ -310,7 +316,8 @@ static int of_thermal_get_trip_type(stru
|
||||
{
|
||||
struct __thermal_zone *data = tz->devdata;
|
||||
|
||||
@ -82,7 +82,7 @@ Signed-off-by: Rajith Cherian <rajith@codeaurora.org>
|
||||
return -EDOM;
|
||||
|
||||
*type = data->trips[trip].type;
|
||||
@@ -315,12 +322,39 @@ static int of_thermal_get_trip_type(stru
|
||||
@@ -318,12 +325,39 @@ static int of_thermal_get_trip_type(stru
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -123,7 +123,7 @@ Signed-off-by: Rajith Cherian <rajith@codeaurora.org>
|
||||
return -EDOM;
|
||||
|
||||
*temp = data->trips[trip].temperature;
|
||||
@@ -333,7 +367,8 @@ static int of_thermal_set_trip_temp(stru
|
||||
@@ -336,7 +370,8 @@ static int of_thermal_set_trip_temp(stru
|
||||
{
|
||||
struct __thermal_zone *data = tz->devdata;
|
||||
|
||||
@ -132,8 +132,8 @@ Signed-off-by: Rajith Cherian <rajith@codeaurora.org>
|
||||
+ || (data->mode == THERMAL_DEVICE_DISABLED))
|
||||
return -EDOM;
|
||||
|
||||
if (data->ops->set_trip_temp) {
|
||||
@@ -355,7 +390,8 @@ static int of_thermal_get_trip_hyst(stru
|
||||
if (data->ops && data->ops->set_trip_temp) {
|
||||
@@ -358,7 +393,8 @@ static int of_thermal_get_trip_hyst(stru
|
||||
{
|
||||
struct __thermal_zone *data = tz->devdata;
|
||||
|
||||
@ -143,7 +143,7 @@ Signed-off-by: Rajith Cherian <rajith@codeaurora.org>
|
||||
return -EDOM;
|
||||
|
||||
*hyst = data->trips[trip].hysteresis;
|
||||
@@ -368,7 +404,8 @@ static int of_thermal_set_trip_hyst(stru
|
||||
@@ -371,7 +407,8 @@ static int of_thermal_set_trip_hyst(stru
|
||||
{
|
||||
struct __thermal_zone *data = tz->devdata;
|
||||
|
||||
@ -153,7 +153,7 @@ Signed-off-by: Rajith Cherian <rajith@codeaurora.org>
|
||||
return -EDOM;
|
||||
|
||||
/* thermal framework should take care of data->mask & (1 << trip) */
|
||||
@@ -443,6 +480,9 @@ thermal_zone_of_add_sensor(struct device
|
||||
@@ -446,6 +483,9 @@ thermal_zone_of_add_sensor(struct device
|
||||
if (ops->set_emul_temp)
|
||||
tzd->ops->set_emul_temp = of_thermal_set_emul_temp;
|
||||
|
||||
@ -163,7 +163,7 @@ Signed-off-by: Rajith Cherian <rajith@codeaurora.org>
|
||||
mutex_unlock(&tzd->lock);
|
||||
|
||||
return tzd;
|
||||
@@ -765,7 +805,10 @@ static const char * const trip_types[] =
|
||||
@@ -768,7 +808,10 @@ static const char * const trip_types[] =
|
||||
[THERMAL_TRIP_ACTIVE] = "active",
|
||||
[THERMAL_TRIP_PASSIVE] = "passive",
|
||||
[THERMAL_TRIP_HOT] = "hot",
|
||||
|
@ -22,7 +22,7 @@ Signed-off-by: Adrian Panella <ianchi74@outlook.com>
|
||||
|
||||
--- a/arch/arm/Kconfig
|
||||
+++ b/arch/arm/Kconfig
|
||||
@@ -1824,6 +1824,17 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN
|
||||
@@ -1823,6 +1823,17 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN
|
||||
The command-line arguments provided by the boot loader will be
|
||||
appended to the the device tree bootargs property.
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- a/arch/arm/Kconfig
|
||||
+++ b/arch/arm/Kconfig
|
||||
@@ -1837,6 +1837,14 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_MANGL
|
||||
@@ -1836,6 +1836,14 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_MANGL
|
||||
|
||||
endchoice
|
||||
|
||||
|
@ -5491,7 +5491,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
unsigned long type);
|
||||
--- a/include/linux/pci_ids.h
|
||||
+++ b/include/linux/pci_ids.h
|
||||
@@ -1076,6 +1076,12 @@
|
||||
@@ -1078,6 +1078,12 @@
|
||||
#define PCI_DEVICE_ID_SGI_IOC3 0x0003
|
||||
#define PCI_DEVICE_ID_SGI_LITHIUM 0x1002
|
||||
|
||||
|
@ -22,7 +22,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
|
||||
#include "gpiolib.h"
|
||||
#include "gpiolib-of.h"
|
||||
@@ -915,3 +917,72 @@ void of_gpiochip_remove(struct gpio_chip
|
||||
@@ -917,3 +919,72 @@ void of_gpiochip_remove(struct gpio_chip
|
||||
{
|
||||
of_node_put(chip->of_node);
|
||||
}
|
||||
|
@ -63,8 +63,8 @@ Signed-off-by: Roy Pledge <roy.pledge@nxp.com>
|
||||
* address space as memory. Needed when the kernel wants to execute
|
||||
--- a/arch/arm/mm/mmu.c
|
||||
+++ b/arch/arm/mm/mmu.c
|
||||
@@ -316,6 +316,13 @@ static struct mem_type mem_types[] __ro_
|
||||
.prot_sect = PMD_TYPE_SECT | PMD_SECT_AP_WRITE,
|
||||
@@ -323,6 +323,13 @@ static struct mem_type mem_types[] __ro_
|
||||
.prot_sect = PMD_TYPE_SECT,
|
||||
.domain = DOMAIN_KERNEL,
|
||||
},
|
||||
+ [MT_MEMORY_RW_NS] = {
|
||||
@ -77,7 +77,7 @@ Signed-off-by: Roy Pledge <roy.pledge@nxp.com>
|
||||
[MT_ROM] = {
|
||||
.prot_sect = PMD_TYPE_SECT,
|
||||
.domain = DOMAIN_KERNEL,
|
||||
@@ -652,6 +659,7 @@ static void __init build_mem_type_table(
|
||||
@@ -663,6 +670,7 @@ static void __init build_mem_type_table(
|
||||
}
|
||||
kern_pgprot |= PTE_EXT_AF;
|
||||
vecs_pgprot |= PTE_EXT_AF;
|
||||
@ -85,11 +85,11 @@ Signed-off-by: Roy Pledge <roy.pledge@nxp.com>
|
||||
|
||||
/*
|
||||
* Set PXN for user mappings
|
||||
@@ -680,6 +688,7 @@ static void __init build_mem_type_table(
|
||||
@@ -691,6 +699,7 @@ static void __init build_mem_type_table(
|
||||
mem_types[MT_MEMORY_RWX].prot_pte |= kern_pgprot;
|
||||
mem_types[MT_MEMORY_RW].prot_sect |= ecc_mask | cp->pmd;
|
||||
mem_types[MT_MEMORY_RW].prot_pte |= kern_pgprot;
|
||||
+ mem_types[MT_MEMORY_RW_NS].prot_sect |= ecc_mask | cp->pmd;
|
||||
mem_types[MT_MEMORY_RO].prot_sect |= ecc_mask | cp->pmd;
|
||||
mem_types[MT_MEMORY_RO].prot_pte |= kern_pgprot;
|
||||
mem_types[MT_MEMORY_DMA_READY].prot_pte |= kern_pgprot;
|
||||
mem_types[MT_MEMORY_RWX_NONCACHED].prot_sect |= ecc_mask;
|
||||
mem_types[MT_ROM].prot_sect |= cp->pmd;
|
||||
|
@ -27,7 +27,7 @@ Signed-off-by: Li Yang <leoyang.li@nxp.com>
|
||||
/* internal flags, do not use outside cgroup core proper */
|
||||
__CFTYPE_ONLY_ON_DFL = (1 << 16), /* only on default hierarchy */
|
||||
__CFTYPE_NOT_ON_DFL = (1 << 17), /* not on default hierarchy */
|
||||
@@ -544,6 +546,7 @@ struct cftype {
|
||||
@@ -545,6 +547,7 @@ struct cftype {
|
||||
* end of cftype array.
|
||||
*/
|
||||
char name[MAX_CFTYPE_NAME];
|
||||
@ -37,7 +37,7 @@ Signed-off-by: Li Yang <leoyang.li@nxp.com>
|
||||
/*
|
||||
--- a/kernel/cgroup/cgroup.c
|
||||
+++ b/kernel/cgroup/cgroup.c
|
||||
@@ -1465,8 +1465,8 @@ struct cgroup *task_cgroup_from_root(str
|
||||
@@ -1467,8 +1467,8 @@ struct cgroup *task_cgroup_from_root(str
|
||||
|
||||
static struct kernfs_syscall_ops cgroup_kf_syscall_ops;
|
||||
|
||||
@ -48,7 +48,7 @@ Signed-off-by: Li Yang <leoyang.li@nxp.com>
|
||||
{
|
||||
struct cgroup_subsys *ss = cft->ss;
|
||||
|
||||
@@ -1476,13 +1476,26 @@ static char *cgroup_file_name(struct cgr
|
||||
@@ -1478,13 +1478,26 @@ static char *cgroup_file_name(struct cgr
|
||||
|
||||
snprintf(buf, CGROUP_FILE_NAME_MAX, "%s%s.%s",
|
||||
dbg, cgroup_on_dfl(cgrp) ? ss->name : ss->legacy_name,
|
||||
@ -77,7 +77,7 @@ Signed-off-by: Li Yang <leoyang.li@nxp.com>
|
||||
/**
|
||||
* cgroup_file_mode - deduce file mode of a control file
|
||||
* @cft: the control file in question
|
||||
@@ -1641,6 +1654,9 @@ static void cgroup_rm_file(struct cgroup
|
||||
@@ -1643,6 +1656,9 @@ static void cgroup_rm_file(struct cgroup
|
||||
}
|
||||
|
||||
kernfs_remove_by_name(cgrp->kn, cgroup_file_name(cgrp, cft, name));
|
||||
@ -87,7 +87,7 @@ Signed-off-by: Li Yang <leoyang.li@nxp.com>
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -3924,6 +3940,7 @@ static int cgroup_add_file(struct cgroup
|
||||
@@ -3933,6 +3949,7 @@ static int cgroup_add_file(struct cgroup
|
||||
{
|
||||
char name[CGROUP_FILE_NAME_MAX];
|
||||
struct kernfs_node *kn;
|
||||
@ -95,7 +95,7 @@ Signed-off-by: Li Yang <leoyang.li@nxp.com>
|
||||
struct lock_class_key *key = NULL;
|
||||
int ret;
|
||||
|
||||
@@ -3954,6 +3971,14 @@ static int cgroup_add_file(struct cgroup
|
||||
@@ -3963,6 +3980,14 @@ static int cgroup_add_file(struct cgroup
|
||||
spin_unlock_irq(&cgroup_file_kn_lock);
|
||||
}
|
||||
|
||||
|
@ -29,7 +29,7 @@ Signed-off-by: Li Yang <leoyang.li@nxp.com>
|
||||
/* internal flags, do not use outside cgroup core proper */
|
||||
__CFTYPE_ONLY_ON_DFL = (1 << 16), /* only on default hierarchy */
|
||||
__CFTYPE_NOT_ON_DFL = (1 << 17), /* not on default hierarchy */
|
||||
@@ -546,7 +544,6 @@ struct cftype {
|
||||
@@ -547,7 +545,6 @@ struct cftype {
|
||||
* end of cftype array.
|
||||
*/
|
||||
char name[MAX_CFTYPE_NAME];
|
||||
@ -39,7 +39,7 @@ Signed-off-by: Li Yang <leoyang.li@nxp.com>
|
||||
/*
|
||||
--- a/kernel/cgroup/cgroup.c
|
||||
+++ b/kernel/cgroup/cgroup.c
|
||||
@@ -1465,8 +1465,8 @@ struct cgroup *task_cgroup_from_root(str
|
||||
@@ -1467,8 +1467,8 @@ struct cgroup *task_cgroup_from_root(str
|
||||
|
||||
static struct kernfs_syscall_ops cgroup_kf_syscall_ops;
|
||||
|
||||
@ -50,7 +50,7 @@ Signed-off-by: Li Yang <leoyang.li@nxp.com>
|
||||
{
|
||||
struct cgroup_subsys *ss = cft->ss;
|
||||
|
||||
@@ -1476,26 +1476,13 @@ static char *cgroup_fill_name(struct cgr
|
||||
@@ -1478,26 +1478,13 @@ static char *cgroup_fill_name(struct cgr
|
||||
|
||||
snprintf(buf, CGROUP_FILE_NAME_MAX, "%s%s.%s",
|
||||
dbg, cgroup_on_dfl(cgrp) ? ss->name : ss->legacy_name,
|
||||
@ -79,7 +79,7 @@ Signed-off-by: Li Yang <leoyang.li@nxp.com>
|
||||
/**
|
||||
* cgroup_file_mode - deduce file mode of a control file
|
||||
* @cft: the control file in question
|
||||
@@ -1654,9 +1641,6 @@ static void cgroup_rm_file(struct cgroup
|
||||
@@ -1656,9 +1643,6 @@ static void cgroup_rm_file(struct cgroup
|
||||
}
|
||||
|
||||
kernfs_remove_by_name(cgrp->kn, cgroup_file_name(cgrp, cft, name));
|
||||
@ -89,7 +89,7 @@ Signed-off-by: Li Yang <leoyang.li@nxp.com>
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -3940,7 +3924,6 @@ static int cgroup_add_file(struct cgroup
|
||||
@@ -3949,7 +3933,6 @@ static int cgroup_add_file(struct cgroup
|
||||
{
|
||||
char name[CGROUP_FILE_NAME_MAX];
|
||||
struct kernfs_node *kn;
|
||||
@ -97,7 +97,7 @@ Signed-off-by: Li Yang <leoyang.li@nxp.com>
|
||||
struct lock_class_key *key = NULL;
|
||||
int ret;
|
||||
|
||||
@@ -3971,14 +3954,6 @@ static int cgroup_add_file(struct cgroup
|
||||
@@ -3980,14 +3963,6 @@ static int cgroup_add_file(struct cgroup
|
||||
spin_unlock_irq(&cgroup_file_kn_lock);
|
||||
}
|
||||
|
||||
|
@ -58,7 +58,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
}
|
||||
|
||||
/* Wait max 20 ms */
|
||||
@@ -892,10 +916,7 @@ static void esdhc_tuning_block_enable(st
|
||||
@@ -893,10 +917,7 @@ static void esdhc_tuning_block_enable(st
|
||||
u32 val;
|
||||
|
||||
esdhc_clock_enable(host, false);
|
||||
|
@ -15,7 +15,7 @@ Acked-by: Adrian Hunter <adrian.hunter@intel.com>
|
||||
|
||||
--- a/drivers/mmc/host/sdhci-of-esdhc.c
|
||||
+++ b/drivers/mmc/host/sdhci-of-esdhc.c
|
||||
@@ -928,20 +928,11 @@ static void esdhc_tuning_block_enable(st
|
||||
@@ -929,20 +929,11 @@ static void esdhc_tuning_block_enable(st
|
||||
esdhc_clock_enable(host, true);
|
||||
}
|
||||
|
||||
@ -37,7 +37,7 @@ Acked-by: Adrian Hunter <adrian.hunter@intel.com>
|
||||
/* Write TBCTL[11:8]=4'h8 */
|
||||
val = sdhci_readl(host, ESDHC_TBCTL);
|
||||
val &= ~(0xf << 8);
|
||||
@@ -960,6 +951,25 @@ static void esdhc_prepare_sw_tuning(stru
|
||||
@@ -961,6 +952,25 @@ static void esdhc_prepare_sw_tuning(stru
|
||||
val = sdhci_readl(host, ESDHC_TBSTAT);
|
||||
val = sdhci_readl(host, ESDHC_TBSTAT);
|
||||
|
||||
@ -63,7 +63,7 @@ Acked-by: Adrian Hunter <adrian.hunter@intel.com>
|
||||
/* Reset data lines by setting ESDHCCTL[RSTD] */
|
||||
sdhci_reset(host, SDHCI_RESET_DATA);
|
||||
/* Write 32'hFFFF_FFFF to IRQSTAT register */
|
||||
@@ -970,10 +980,8 @@ static void esdhc_prepare_sw_tuning(stru
|
||||
@@ -971,10 +981,8 @@ static void esdhc_prepare_sw_tuning(stru
|
||||
* then program TBPTR[TB_WNDW_END_PTR] = 4 * div_ratio
|
||||
* and program TBPTR[TB_WNDW_START_PTR] = 8 * div_ratio.
|
||||
*/
|
||||
|
@ -20,7 +20,7 @@ Acked-by: Adrian Hunter <adrian.hunter@intel.com>
|
||||
|
||||
--- a/drivers/mmc/host/sdhci-of-esdhc.c
|
||||
+++ b/drivers/mmc/host/sdhci-of-esdhc.c
|
||||
@@ -894,20 +894,20 @@ static int esdhc_signal_voltage_switch(s
|
||||
@@ -895,20 +895,20 @@ static int esdhc_signal_voltage_switch(s
|
||||
}
|
||||
|
||||
static struct soc_device_attribute soc_tuning_erratum_type1[] = {
|
||||
@ -51,7 +51,7 @@ Acked-by: Adrian Hunter <adrian.hunter@intel.com>
|
||||
{ },
|
||||
};
|
||||
|
||||
@@ -975,13 +975,13 @@ static void esdhc_prepare_sw_tuning(stru
|
||||
@@ -976,13 +976,13 @@ static void esdhc_prepare_sw_tuning(stru
|
||||
/* Write 32'hFFFF_FFFF to IRQSTAT register */
|
||||
sdhci_writel(host, 0xFFFFFFFF, SDHCI_INT_STATUS);
|
||||
|
||||
@ -68,7 +68,7 @@ Acked-by: Adrian Hunter <adrian.hunter@intel.com>
|
||||
*window_start = 8 * esdhc->div_ratio;
|
||||
*window_end = 4 * esdhc->div_ratio;
|
||||
} else {
|
||||
@@ -1065,6 +1065,19 @@ static int esdhc_execute_tuning(struct m
|
||||
@@ -1066,6 +1066,19 @@ static int esdhc_execute_tuning(struct m
|
||||
if (ret)
|
||||
break;
|
||||
|
||||
|
@ -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
|
||||
--- a/drivers/usb/dwc3/gadget.c
|
||||
+++ b/drivers/usb/dwc3/gadget.c
|
||||
@@ -3699,6 +3699,10 @@ int dwc3_gadget_init(struct dwc3 *dwc)
|
||||
@@ -3701,6 +3701,10 @@ int dwc3_gadget_init(struct dwc3 *dwc)
|
||||
dwc->gadget.sg_supported = true;
|
||||
dwc->gadget.name = "dwc3-gadget";
|
||||
dwc->gadget.lpm_capable = true;
|
||||
|
@ -20,7 +20,7 @@ Signed-off-by: Peter Chen <peter.chen@nxp.com>
|
||||
|
||||
--- a/drivers/usb/core/hcd.c
|
||||
+++ b/drivers/usb/core/hcd.c
|
||||
@@ -2125,6 +2125,140 @@ int usb_hcd_get_frame_number (struct usb
|
||||
@@ -2128,6 +2128,140 @@ int usb_hcd_get_frame_number (struct usb
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
@ -335,7 +335,7 @@ Signed-off-by: Peter Chen <peter.chen@nxp.com>
|
||||
int is_setup
|
||||
--- a/include/linux/usb/hcd.h
|
||||
+++ b/include/linux/usb/hcd.h
|
||||
@@ -411,7 +411,10 @@ struct hc_driver {
|
||||
@@ -412,7 +412,10 @@ struct hc_driver {
|
||||
int (*find_raw_port_number)(struct usb_hcd *, int);
|
||||
/* Call for power on/off the port if necessary */
|
||||
int (*port_power)(struct usb_hcd *hcd, int portnum, bool enable);
|
||||
@ -347,7 +347,7 @@ Signed-off-by: Peter Chen <peter.chen@nxp.com>
|
||||
};
|
||||
|
||||
static inline int hcd_giveback_urb_in_bh(struct usb_hcd *hcd)
|
||||
@@ -476,6 +479,14 @@ int usb_hcd_setup_local_mem(struct usb_h
|
||||
@@ -477,6 +480,14 @@ int usb_hcd_setup_local_mem(struct usb_h
|
||||
|
||||
struct platform_device;
|
||||
extern void usb_hcd_platform_shutdown(struct platform_device *dev);
|
||||
|
@ -11,7 +11,7 @@ Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
|
||||
|
||||
--- a/drivers/gpio/gpio-pca953x.c
|
||||
+++ b/drivers/gpio/gpio-pca953x.c
|
||||
@@ -881,10 +881,12 @@ static int pca953x_irq_setup(struct pca9
|
||||
@@ -884,10 +884,12 @@ static int pca953x_irq_setup(struct pca9
|
||||
for (i = 0; i < NBANK(chip); i++)
|
||||
chip->irq_stat[i] &= reg_direction[i];
|
||||
mutex_init(&chip->irq_lock);
|
||||
|
@ -590,7 +590,7 @@
|
||||
clk_disable_unprepare(priv->clk);
|
||||
|
||||
for (i = 0; i < priv->config.rings; i++)
|
||||
@@ -1666,9 +1795,7 @@ static struct platform_driver crypto_sa
|
||||
@@ -1668,9 +1797,7 @@ static struct platform_driver crypto_sa
|
||||
.of_match_table = safexcel_of_match_table,
|
||||
},
|
||||
};
|
||||
@ -600,7 +600,7 @@
|
||||
/* PCIE devices - i.e. Inside Secure development boards */
|
||||
|
||||
static int safexcel_pci_probe(struct pci_dev *pdev,
|
||||
@@ -1759,7 +1886,7 @@ static int safexcel_pci_probe(struct pci
|
||||
@@ -1761,7 +1888,7 @@ static int safexcel_pci_probe(struct pci
|
||||
return rc;
|
||||
}
|
||||
|
||||
@ -609,7 +609,7 @@
|
||||
{
|
||||
struct safexcel_crypto_priv *priv = pci_get_drvdata(pdev);
|
||||
int i;
|
||||
@@ -1789,54 +1916,32 @@ static struct pci_driver safexcel_pci_dr
|
||||
@@ -1791,54 +1918,32 @@ static struct pci_driver safexcel_pci_dr
|
||||
.probe = safexcel_pci_probe,
|
||||
.remove = safexcel_pci_remove,
|
||||
};
|
||||
|
@ -38,7 +38,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
const struct switchdev_obj_port_vlan *vlan);
|
||||
--- a/drivers/net/dsa/bcm_sf2.c
|
||||
+++ b/drivers/net/dsa/bcm_sf2.c
|
||||
@@ -636,7 +636,9 @@ static void bcm_sf2_sw_mac_link_down(str
|
||||
@@ -641,7 +641,9 @@ static void bcm_sf2_sw_mac_link_down(str
|
||||
static void bcm_sf2_sw_mac_link_up(struct dsa_switch *ds, int port,
|
||||
unsigned int mode,
|
||||
phy_interface_t interface,
|
||||
|
@ -1,8 +1,8 @@
|
||||
--- a/drivers/leds/Kconfig
|
||||
+++ b/drivers/leds/Kconfig
|
||||
@@ -824,6 +824,16 @@ config LEDS_LM36274
|
||||
Say Y to enable the LM36274 LED driver for TI LMU devices.
|
||||
This supports the LED device LM36274.
|
||||
@@ -826,6 +826,16 @@ config LEDS_LM36274
|
||||
|
||||
source "drivers/leds/blink/Kconfig"
|
||||
|
||||
+config LEDS_UBNT_LEDBAR
|
||||
+ tristate "LED support for Ubiquiti UniFi 6 LR"
|
||||
|
@ -28,7 +28,7 @@ Signed-off-by: Michael Gray <michael.gray@lantisproject.com>
|
||||
|
||||
--- a/arch/arm/Kconfig
|
||||
+++ b/arch/arm/Kconfig
|
||||
@@ -1824,6 +1824,17 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN
|
||||
@@ -1823,6 +1823,17 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN
|
||||
The command-line arguments provided by the boot loader will be
|
||||
appended to the the device tree bootargs property.
|
||||
|
||||
|
@ -20,7 +20,7 @@
|
||||
}
|
||||
--- a/arch/mips/cavium-octeon/octeon-platform.c
|
||||
+++ b/arch/mips/cavium-octeon/octeon-platform.c
|
||||
@@ -773,7 +773,7 @@ int __init octeon_prune_device_tree(void
|
||||
@@ -774,7 +774,7 @@ int __init octeon_prune_device_tree(void
|
||||
if (fdt_check_header(initial_boot_params))
|
||||
panic("Corrupt Device Tree.");
|
||||
|
||||
|
@ -22,7 +22,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
|
||||
#include <linux/platform_data/x86/apple.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/suspend.h>
|
||||
@@ -5793,3 +5794,34 @@ static void nvidia_ion_ahci_fixup(struct
|
||||
@@ -5796,3 +5797,34 @@ static void nvidia_ion_ahci_fixup(struct
|
||||
pdev->dev_flags |= PCI_DEV_FLAGS_HAS_MSI_MASKING;
|
||||
}
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, 0x0ab8, nvidia_ion_ahci_fixup);
|
||||
|
@ -22,7 +22,7 @@ Signed-off-by: Adrian Panella <ianchi74@outlook.com>
|
||||
|
||||
--- a/arch/arm/Kconfig
|
||||
+++ b/arch/arm/Kconfig
|
||||
@@ -1824,6 +1824,17 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN
|
||||
@@ -1823,6 +1823,17 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN
|
||||
The command-line arguments provided by the boot loader will be
|
||||
appended to the the device tree bootargs property.
|
||||
|
||||
|
@ -22,7 +22,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
|
||||
#include "gpiolib.h"
|
||||
#include "gpiolib-of.h"
|
||||
@@ -915,3 +917,68 @@ void of_gpiochip_remove(struct gpio_chip
|
||||
@@ -917,3 +919,68 @@ void of_gpiochip_remove(struct gpio_chip
|
||||
{
|
||||
of_node_put(chip->of_node);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user