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:
		
				
					committed by
					
						
						Hauke Mehrtens
					
				
			
			
				
	
			
			
			
						parent
						
							a409bd7705
						
					
				
				
					commit
					aedcbaae37
				
			@@ -1,2 +1,2 @@
 | 
			
		||||
LINUX_VERSION-5.10 = .131
 | 
			
		||||
LINUX_KERNEL_HASH-5.10.131 = 8bc441442c16c330a7148fe3cca9edcd98bc0fc9f68304633c7eb641770d21ce
 | 
			
		||||
LINUX_VERSION-5.10 = .132
 | 
			
		||||
LINUX_KERNEL_HASH-5.10.132 = 7d05a931eee01dea64fc73849e275ff14664ff98813f95f40588f04fdf1cfa2a
 | 
			
		||||
 
 | 
			
		||||
@@ -14,7 +14,7 @@ use the same logic.
 | 
			
		||||
 | 
			
		||||
--- a/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))
 | 
			
		||||
 		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
 | 
			
		||||
@@ -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 */
 | 
			
		||||
 
 | 
			
		||||
@@ -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 =
 | 
			
		||||
@@ -1658,7 +1675,7 @@ static int pl011_hwinit(struct uart_port
 | 
			
		||||
@@ -1667,7 +1684,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 |
 | 
			
		||||
@@ -2292,7 +2309,7 @@ static int pl011_console_setup(struct co
 | 
			
		||||
@@ -2311,7 +2328,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;
 | 
			
		||||
@@ -2509,6 +2526,7 @@ static struct uart_driver amba_reg = {
 | 
			
		||||
@@ -2528,6 +2545,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;
 | 
			
		||||
@@ -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;
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
@@ -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 */
 | 
			
		||||
 
 | 
			
		||||
 	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
 | 
			
		||||
@@ -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))
 | 
			
		||||
 		return PTR_ERR(uap->clk);
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
@@ -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",
 | 
			
		||||
@@ -1341,6 +1344,7 @@ __acquires(&uap->port.lock)
 | 
			
		||||
@@ -1350,6 +1353,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);
 | 
			
		||||
 	/*
 | 
			
		||||
@@ -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;
 | 
			
		||||
 
 | 
			
		||||
 	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 {
 | 
			
		||||
@@ -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))
 | 
			
		||||
 				pl011_modem_status(uap);
 | 
			
		||||
 			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
 | 
			
		||||
+++ 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)
 | 
			
		||||
 			break;
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
@@ -17,7 +17,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
 | 
			
		||||
 | 
			
		||||
--- a/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;
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
@@ -27,7 +27,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
 | 
			
		||||
 /**
 | 
			
		||||
  * 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);
 | 
			
		||||
 
 | 
			
		||||
@@ -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 =
 | 
			
		||||
@@ -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))
 | 
			
		||||
 				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);
 | 
			
		||||
@@ -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);
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
@@ -1162,7 +1162,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
 | 
			
		||||
 
 | 
			
		||||
--- a/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))
 | 
			
		||||
 		return PTR_ERR(stmmac_res.addr);
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
@@ -36,7 +36,7 @@ David
 | 
			
		||||
 | 
			
		||||
--- a/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)
 | 
			
		||||
 			break;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user