kernel: bump 5.10 to 5.10.132
All patches automatically rebased.
The following patch was replaced by a similar version upstream:
bcm27xx/patches-5.10/950-0036-tty-amba-pl011-Add-un-throttle-support.patch
Signed-off-by: John Audia <therealgraysky@proton.me>
(cherry picked from commit 7d3c0928de
)
This commit is contained in:
parent
a409bd7705
commit
aedcbaae37
11 changed files with 20 additions and 81 deletions
|
@ -1,2 +1,2 @@
|
||||||
LINUX_VERSION-5.10 = .131
|
LINUX_VERSION-5.10 = .132
|
||||||
LINUX_KERNEL_HASH-5.10.131 = 8bc441442c16c330a7148fe3cca9edcd98bc0fc9f68304633c7eb641770d21ce
|
LINUX_KERNEL_HASH-5.10.132 = 7d05a931eee01dea64fc73849e275ff14664ff98813f95f40588f04fdf1cfa2a
|
||||||
|
|
|
@ -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
|
||||||
@@ -2578,7 +2578,12 @@ static int pl011_setup_port(struct devic
|
@@ -2597,7 +2597,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
|
||||||
@@ -1642,6 +1642,23 @@ static void pl011_put_poll_char(struct u
|
@@ -1651,6 +1651,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 =
|
||||||
@@ -1658,7 +1675,7 @@ static int pl011_hwinit(struct uart_port
|
@@ -1667,7 +1684,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 |
|
||||||
@@ -2292,7 +2309,7 @@ static int pl011_console_setup(struct co
|
@@ -2311,7 +2328,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;
|
||||||
@@ -2509,6 +2526,7 @@ static struct uart_driver amba_reg = {
|
@@ -2528,6 +2545,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;
|
||||||
@@ -2540,6 +2558,7 @@ static int pl011_probe_dt_alias(int inde
|
@@ -2559,6 +2577,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
|
||||||
@@ -1377,6 +1377,7 @@ static bool pl011_tx_char(struct uart_am
|
@@ -1386,6 +1386,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
|
||||||
@@ -2665,6 +2665,11 @@ static int pl011_probe(struct amba_devic
|
@@ -2684,6 +2684,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);
|
||||||
|
|
||||||
|
|
|
@ -58,7 +58,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||||
spin_unlock(&uap->port.lock);
|
spin_unlock(&uap->port.lock);
|
||||||
dev_vdbg(uap->port.dev,
|
dev_vdbg(uap->port.dev,
|
||||||
"Took %d chars from DMA buffer and %d chars from the FIFO\n",
|
"Took %d chars from DMA buffer and %d chars from the FIFO\n",
|
||||||
@@ -1341,6 +1344,7 @@ __acquires(&uap->port.lock)
|
@@ -1350,6 +1353,7 @@ __acquires(&uap->port.lock)
|
||||||
{
|
{
|
||||||
pl011_fifo_to_tty(uap);
|
pl011_fifo_to_tty(uap);
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||||
spin_unlock(&uap->port.lock);
|
spin_unlock(&uap->port.lock);
|
||||||
tty_flip_buffer_push(&uap->port.state->port);
|
tty_flip_buffer_push(&uap->port.state->port);
|
||||||
/*
|
/*
|
||||||
@@ -1474,6 +1478,7 @@ static irqreturn_t pl011_int(int irq, vo
|
@@ -1483,6 +1487,7 @@ static irqreturn_t pl011_int(int irq, vo
|
||||||
int handled = 0;
|
int handled = 0;
|
||||||
|
|
||||||
spin_lock_irqsave(&uap->port.lock, flags);
|
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;
|
status = pl011_read(uap, REG_RIS) & uap->im;
|
||||||
if (status) {
|
if (status) {
|
||||||
do {
|
do {
|
||||||
@@ -1493,7 +1498,7 @@ static irqreturn_t pl011_int(int irq, vo
|
@@ -1502,7 +1507,7 @@ static irqreturn_t pl011_int(int irq, vo
|
||||||
UART011_CTSMIS|UART011_RIMIS))
|
UART011_CTSMIS|UART011_RIMIS))
|
||||||
pl011_modem_status(uap);
|
pl011_modem_status(uap);
|
||||||
if (status & UART011_TXIS)
|
if (status & UART011_TXIS)
|
||||||
|
|
|
@ -1,61 +0,0 @@
|
||||||
From 3cec61f1b19a6f589f8b2aef97977e1c38eb7b70 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
|
|
||||||
@@ -1317,6 +1317,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 =
|
|
||||||
@@ -2139,6 +2165,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
|
||||||
@@ -1438,6 +1438,10 @@ static bool pl011_tx_chars(struct uart_a
|
@@ -1421,6 +1421,10 @@ static bool pl011_tx_chars(struct uart_a
|
||||||
if (likely(from_irq) && count-- == 0)
|
if (likely(from_irq) && count-- == 0)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
@@ -5735,6 +5735,9 @@ int __init cgroup_init_early(void)
|
@@ -5744,6 +5744,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
|
||||||
*
|
*
|
||||||
@@ -5773,6 +5776,12 @@ int __init cgroup_init(void)
|
@@ -5782,6 +5785,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 =
|
||||||
@@ -6311,6 +6320,10 @@ static int __init cgroup_disable(char *s
|
@@ -6320,6 +6329,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);
|
||||||
@@ -6320,6 +6333,31 @@ static int __init cgroup_disable(char *s
|
@@ -6329,6 +6342,31 @@ static int __init cgroup_disable(char *s
|
||||||
}
|
}
|
||||||
__setup("cgroup_disable=", cgroup_disable);
|
__setup("cgroup_disable=", cgroup_disable);
|
||||||
|
|
||||||
|
|
|
@ -1162,7 +1162,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
|
|
||||||
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.c
|
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.c
|
||||||
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.c
|
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.c
|
||||||
@@ -444,7 +444,7 @@ static int dwc_eth_dwmac_probe(struct pl
|
@@ -445,7 +445,7 @@ static int dwc_eth_dwmac_probe(struct pl
|
||||||
if (IS_ERR(stmmac_res.addr))
|
if (IS_ERR(stmmac_res.addr))
|
||||||
return PTR_ERR(stmmac_res.addr);
|
return PTR_ERR(stmmac_res.addr);
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@ David
|
||||||
|
|
||||||
--- a/drivers/tty/serial/8250/8250_core.c
|
--- a/drivers/tty/serial/8250/8250_core.c
|
||||||
+++ b/drivers/tty/serial/8250/8250_core.c
|
+++ b/drivers/tty/serial/8250/8250_core.c
|
||||||
@@ -133,6 +133,38 @@ static irqreturn_t serial8250_interrupt(
|
@@ -134,6 +134,38 @@ static irqreturn_t serial8250_interrupt(
|
||||||
|
|
||||||
if (l == i->head && pass_counter++ > PASS_LIMIT)
|
if (l == i->head && pass_counter++ > PASS_LIMIT)
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in a new issue