diff options
author | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2022-10-25 16:54:18 +0200 |
---|---|---|
committer | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2022-10-25 16:54:18 +0200 |
commit | 9b0d72982f9f497f698203c4eea5f19a7f55e15e (patch) | |
tree | 846c21e637c9cd3db3d6a94175bd2a1b40ac81f6 | |
parent | a4e604f4131a112585764f6db5a73f4acd592541 (diff) | |
download | linux-rt-6.0.3-rt12-patches.tar.gz |
[ANNOUNCE] v6.0.3-rt12v6.0.3-rt12-patches
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
-rw-r--r-- | patches/0017-serial-8250-implement-write_atomic.patch | 102 | ||||
-rw-r--r-- | patches/Add_localversion_for_-RT_release.patch | 2 |
2 files changed, 52 insertions, 52 deletions
diff --git a/patches/0017-serial-8250-implement-write_atomic.patch b/patches/0017-serial-8250-implement-write_atomic.patch index 77c4764a669e..c4b347b02c81 100644 --- a/patches/0017-serial-8250-implement-write_atomic.patch +++ b/patches/0017-serial-8250-implement-write_atomic.patch @@ -248,7 +248,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> spin_unlock_irqrestore(&up->port.lock, flags); -@@ -569,6 +580,14 @@ serial8250_register_ports(struct uart_dr +@@ -575,6 +586,14 @@ serial8250_register_ports(struct uart_dr #ifdef CONFIG_SERIAL_8250_CONSOLE @@ -263,7 +263,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> static void univ8250_console_write(struct console *co, const char *s, unsigned int count) { -@@ -662,6 +681,7 @@ static int univ8250_console_match(struct +@@ -668,6 +687,7 @@ static int univ8250_console_match(struct static struct console univ8250_console = { .name = "ttyS", @@ -271,7 +271,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> .write = univ8250_console_write, .device = uart_console_device, .setup = univ8250_console_setup, -@@ -955,7 +975,7 @@ static void serial_8250_overrun_backoff_ +@@ -961,7 +981,7 @@ static void serial_8250_overrun_backoff_ spin_lock_irqsave(&port->lock, flags); up->ier |= UART_IER_RLSI | UART_IER_RDI; up->port.read_status_mask |= UART_LSR_DR; @@ -387,7 +387,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B); serial_dl_write(up, priv->quot); -@@ -512,7 +512,7 @@ static void omap_8250_pm(struct uart_por +@@ -515,7 +515,7 @@ static void omap_8250_pm(struct uart_por serial_out(up, UART_EFR, efr | UART_EFR_ECB); serial_out(up, UART_LCR, 0); @@ -396,7 +396,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B); serial_out(up, UART_EFR, efr); serial_out(up, UART_LCR, 0); -@@ -633,7 +633,7 @@ static irqreturn_t omap8250_irq(int irq, +@@ -636,7 +636,7 @@ static irqreturn_t omap8250_irq(int irq, if ((lsr & UART_LSR_OE) && up->overrun_backoff_time_ms > 0) { unsigned long delay; @@ -405,7 +405,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> if (up->ier & (UART_IER_RLSI | UART_IER_RDI)) { port->ops->stop_rx(port); } else { -@@ -693,7 +693,7 @@ static int omap_8250_startup(struct uart +@@ -696,7 +696,7 @@ static int omap_8250_startup(struct uart goto err; up->ier = UART_IER_RLSI | UART_IER_RDI; @@ -414,7 +414,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> #ifdef CONFIG_PM up->capabilities |= UART_CAP_RPM; -@@ -734,7 +734,7 @@ static void omap_8250_shutdown(struct ua +@@ -737,7 +737,7 @@ static void omap_8250_shutdown(struct ua serial_out(up, UART_OMAP_EFR2, 0x0); up->ier = 0; @@ -423,7 +423,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> if (up->dma) serial8250_release_dma(up); -@@ -782,7 +782,7 @@ static void omap_8250_unthrottle(struct +@@ -785,7 +785,7 @@ static void omap_8250_unthrottle(struct up->dma->rx_dma(up); up->ier |= UART_IER_RLSI | UART_IER_RDI; port->read_status_mask |= UART_LSR_DR; @@ -432,7 +432,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> spin_unlock_irqrestore(&port->lock, flags); pm_runtime_mark_last_busy(port->dev); -@@ -873,7 +873,7 @@ static void __dma_rx_complete(void *para +@@ -876,7 +876,7 @@ static void __dma_rx_complete(void *para __dma_rx_do_complete(p); if (!priv->throttled) { p->ier |= UART_IER_RLSI | UART_IER_RDI; @@ -441,7 +441,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> if (!(priv->habit & UART_HAS_EFR2)) omap_8250_rx_dma(p); } -@@ -930,7 +930,7 @@ static int omap_8250_rx_dma(struct uart_ +@@ -933,7 +933,7 @@ static int omap_8250_rx_dma(struct uart_ * callback to run. */ p->ier &= ~(UART_IER_RLSI | UART_IER_RDI); @@ -450,7 +450,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> } goto out; } -@@ -1145,12 +1145,12 @@ static void am654_8250_handle_rx_dma(str +@@ -1148,12 +1148,12 @@ static void am654_8250_handle_rx_dma(str * periodic timeouts, re-enable interrupts. */ up->ier &= ~(UART_IER_RLSI | UART_IER_RDI); @@ -467,7 +467,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c -@@ -741,7 +741,7 @@ static void serial8250_set_sleep(struct +@@ -743,7 +743,7 @@ static void serial8250_set_sleep(struct serial_out(p, UART_EFR, UART_EFR_ECB); serial_out(p, UART_LCR, 0); } @@ -476,7 +476,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> if (p->capabilities & UART_CAP_EFR) { serial_out(p, UART_LCR, UART_LCR_CONF_MODE_B); serial_out(p, UART_EFR, efr); -@@ -1015,8 +1015,11 @@ static int broken_efr(struct uart_8250_p +@@ -1017,8 +1017,11 @@ static int broken_efr(struct uart_8250_p */ static void autoconfig_16550a(struct uart_8250_port *up) { @@ -488,7 +488,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> up->port.type = PORT_16550A; up->capabilities |= UART_CAP_FIFO; -@@ -1127,6 +1130,11 @@ static void autoconfig_16550a(struct uar +@@ -1130,6 +1133,11 @@ static void autoconfig_16550a(struct uar return; } @@ -500,7 +500,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> /* * Try writing and reading the UART_IER_UUE bit (b6). * If it works, this is probably one of the Xscale platform's -@@ -1162,6 +1170,9 @@ static void autoconfig_16550a(struct uar +@@ -1165,6 +1173,9 @@ static void autoconfig_16550a(struct uar } serial_out(up, UART_IER, iersave); @@ -510,7 +510,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> /* * We distinguish between 16550A and U6 16550A by counting * how many bytes are in the FIFO. -@@ -1184,8 +1195,10 @@ static void autoconfig(struct uart_8250_ +@@ -1187,8 +1198,10 @@ static void autoconfig(struct uart_8250_ unsigned char status1, scratch, scratch2, scratch3; unsigned char save_lcr, save_mcr; struct uart_port *port = &up->port; @@ -521,7 +521,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> if (!port->iobase && !port->mapbase && !port->membase) return; -@@ -1203,6 +1216,11 @@ static void autoconfig(struct uart_8250_ +@@ -1206,6 +1219,11 @@ static void autoconfig(struct uart_8250_ up->bugs = 0; if (!(port->flags & UPF_BUGGY_UART)) { @@ -533,7 +533,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> /* * Do a simple existence test first; if we fail this, * there's no point trying anything else. -@@ -1232,6 +1250,10 @@ static void autoconfig(struct uart_8250_ +@@ -1235,6 +1253,10 @@ static void autoconfig(struct uart_8250_ #endif scratch3 = serial_in(up, UART_IER) & 0x0f; serial_out(up, UART_IER, scratch); @@ -544,7 +544,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> if (scratch2 != 0 || scratch3 != 0x0F) { /* * We failed; there's nothing here -@@ -1329,10 +1351,7 @@ static void autoconfig(struct uart_8250_ +@@ -1332,10 +1354,7 @@ static void autoconfig(struct uart_8250_ serial8250_out_MCR(up, save_mcr); serial8250_clear_fifos(up); serial_in(up, UART_RX); @@ -556,7 +556,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> out_unlock: spin_unlock_irqrestore(&port->lock, flags); -@@ -1358,7 +1377,9 @@ static void autoconfig_irq(struct uart_8 +@@ -1361,7 +1380,9 @@ static void autoconfig_irq(struct uart_8 unsigned char save_mcr, save_ier; unsigned char save_ICP = 0; unsigned int ICP = 0; @@ -566,7 +566,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> int irq; if (port->flags & UPF_FOURPORT) { -@@ -1368,8 +1389,12 @@ static void autoconfig_irq(struct uart_8 +@@ -1371,8 +1392,12 @@ static void autoconfig_irq(struct uart_8 inb_p(ICP); } @@ -580,7 +580,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> /* forget possible initially masked and pending IRQ */ probe_irq_off(probe_irq_on()); -@@ -1401,8 +1426,10 @@ static void autoconfig_irq(struct uart_8 +@@ -1404,8 +1429,10 @@ static void autoconfig_irq(struct uart_8 if (port->flags & UPF_FOURPORT) outb_p(save_ICP, ICP); @@ -592,7 +592,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> port->irq = (irq > 0) ? irq : 0; } -@@ -1415,7 +1442,7 @@ static void serial8250_stop_rx(struct ua +@@ -1418,7 +1445,7 @@ static void serial8250_stop_rx(struct ua up->ier &= ~(UART_IER_RLSI | UART_IER_RDI); up->port.read_status_mask &= ~UART_LSR_DR; @@ -601,7 +601,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> serial8250_rpm_put(up); } -@@ -1445,7 +1472,7 @@ void serial8250_em485_stop_tx(struct uar +@@ -1448,7 +1475,7 @@ void serial8250_em485_stop_tx(struct uar serial8250_clear_and_reinit_fifos(p); p->ier |= UART_IER_RLSI | UART_IER_RDI; @@ -610,7 +610,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> } } EXPORT_SYMBOL_GPL(serial8250_em485_stop_tx); -@@ -1694,7 +1721,7 @@ static void serial8250_disable_ms(struct +@@ -1697,7 +1724,7 @@ static void serial8250_disable_ms(struct mctrl_gpio_disable_ms(up->gpios); up->ier &= ~UART_IER_MSI; @@ -619,7 +619,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> } static void serial8250_enable_ms(struct uart_port *port) -@@ -1710,7 +1737,7 @@ static void serial8250_enable_ms(struct +@@ -1713,7 +1740,7 @@ static void serial8250_enable_ms(struct up->ier |= UART_IER_MSI; serial8250_rpm_get(up); @@ -628,7 +628,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> serial8250_rpm_put(up); } -@@ -2138,14 +2165,7 @@ static void serial8250_put_poll_char(str +@@ -2144,14 +2171,7 @@ static void serial8250_put_poll_char(str struct uart_8250_port *up = up_to_u8250p(port); serial8250_rpm_get(up); @@ -644,7 +644,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> wait_for_xmitr(up, UART_LSR_BOTH_EMPTY); /* -@@ -2158,7 +2178,7 @@ static void serial8250_put_poll_char(str +@@ -2164,7 +2184,7 @@ static void serial8250_put_poll_char(str * and restore the IER */ wait_for_xmitr(up, UART_LSR_BOTH_EMPTY); @@ -653,7 +653,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> serial8250_rpm_put(up); } -@@ -2167,8 +2187,10 @@ static void serial8250_put_poll_char(str +@@ -2173,8 +2193,10 @@ static void serial8250_put_poll_char(str int serial8250_do_startup(struct uart_port *port) { struct uart_8250_port *up = up_to_u8250p(port); @@ -664,7 +664,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> int retval; u16 lsr; -@@ -2189,7 +2211,7 @@ int serial8250_do_startup(struct uart_po +@@ -2195,7 +2217,7 @@ int serial8250_do_startup(struct uart_po up->acr = 0; serial_port_out(port, UART_LCR, UART_LCR_CONF_MODE_B); serial_port_out(port, UART_EFR, UART_EFR_ECB); @@ -673,7 +673,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> serial_port_out(port, UART_LCR, 0); serial_icr_write(up, UART_CSR, 0); /* Reset the UART */ serial_port_out(port, UART_LCR, UART_LCR_CONF_MODE_B); -@@ -2199,7 +2221,7 @@ int serial8250_do_startup(struct uart_po +@@ -2205,7 +2227,7 @@ int serial8250_do_startup(struct uart_po if (port->type == PORT_DA830) { /* Reset the port */ @@ -682,16 +682,16 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> serial_port_out(port, UART_DA830_PWREMU_MGMT, 0); mdelay(10); -@@ -2294,6 +2316,8 @@ int serial8250_do_startup(struct uart_po - if (port->irq && (up->port.flags & UPF_SHARE_IRQ)) - up->port.irqflags |= IRQF_SHARED; +@@ -2304,6 +2326,8 @@ int serial8250_do_startup(struct uart_po + if (retval) + goto out; + is_console = uart_console(port); + if (port->irq && !(up->port.flags & UPF_NO_THRE_TEST)) { unsigned char iir1; -@@ -2310,6 +2334,9 @@ int serial8250_do_startup(struct uart_po +@@ -2320,6 +2344,9 @@ int serial8250_do_startup(struct uart_po */ spin_lock_irqsave(&port->lock, flags); @@ -701,7 +701,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> wait_for_xmitr(up, UART_LSR_THRE); serial_port_out_sync(port, UART_IER, UART_IER_THRI); udelay(1); /* allow THRE to set */ -@@ -2320,6 +2347,9 @@ int serial8250_do_startup(struct uart_po +@@ -2330,6 +2357,9 @@ int serial8250_do_startup(struct uart_po iir = serial_port_in(port, UART_IIR); serial_port_out(port, UART_IER, 0); @@ -711,7 +711,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> spin_unlock_irqrestore(&port->lock, flags); if (port->irqflags & IRQF_SHARED) -@@ -2376,10 +2406,14 @@ int serial8250_do_startup(struct uart_po +@@ -2384,10 +2414,14 @@ int serial8250_do_startup(struct uart_po * Do a quick test to see if we receive an interrupt when we enable * the TX irq. */ @@ -726,7 +726,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> if (lsr & UART_LSR_TEMT && iir & UART_IIR_NO_INT) { if (!(up->bugs & UART_BUG_TXEN)) { -@@ -2411,7 +2445,7 @@ int serial8250_do_startup(struct uart_po +@@ -2419,7 +2453,7 @@ int serial8250_do_startup(struct uart_po if (up->dma) { const char *msg = NULL; @@ -735,7 +735,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> msg = "forbid DMA for kernel console"; else if (serial8250_request_dma(up)) msg = "failed to request DMA"; -@@ -2462,7 +2496,7 @@ void serial8250_do_shutdown(struct uart_ +@@ -2470,7 +2504,7 @@ void serial8250_do_shutdown(struct uart_ */ spin_lock_irqsave(&port->lock, flags); up->ier = 0; @@ -744,7 +744,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> spin_unlock_irqrestore(&port->lock, flags); synchronize_irq(port->irq); -@@ -2828,7 +2862,7 @@ serial8250_do_set_termios(struct uart_po +@@ -2836,7 +2870,7 @@ serial8250_do_set_termios(struct uart_po if (up->capabilities & UART_CAP_RTOIE) up->ier |= UART_IER_RTOIE; @@ -753,7 +753,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> if (up->capabilities & UART_CAP_EFR) { unsigned char efr = 0; -@@ -3296,7 +3330,7 @@ EXPORT_SYMBOL_GPL(serial8250_set_default +@@ -3301,7 +3335,7 @@ EXPORT_SYMBOL_GPL(serial8250_set_default #ifdef CONFIG_SERIAL_8250_CONSOLE @@ -762,7 +762,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> { struct uart_8250_port *up = up_to_u8250p(port); -@@ -3304,6 +3338,18 @@ static void serial8250_console_putchar(s +@@ -3309,6 +3343,18 @@ static void serial8250_console_putchar(s serial_port_out(port, UART_TX, ch); } @@ -781,7 +781,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> /* * Restore serial console when h/w power-off detected */ -@@ -3325,6 +3371,32 @@ static void serial8250_console_restore(s +@@ -3335,6 +3381,32 @@ static void serial8250_console_restore(s serial8250_out_MCR(up, up->mcr | UART_MCR_DTR | UART_MCR_RTS); } @@ -814,7 +814,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> /* * Print a string to the serial port using the device FIFO * -@@ -3370,24 +3442,12 @@ void serial8250_console_write(struct uar +@@ -3380,24 +3452,12 @@ void serial8250_console_write(struct uar struct uart_port *port = &up->port; unsigned long flags; unsigned int ier, use_fifo; @@ -841,7 +841,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> /* check scratch reg to see if port powered off during system sleep */ if (up->canary && (up->canary != serial_port_in(port, UART_SCR))) { -@@ -3421,10 +3481,12 @@ void serial8250_console_write(struct uar +@@ -3431,10 +3491,12 @@ void serial8250_console_write(struct uar */ !(up->port.flags & UPF_CONS_FLOW); @@ -854,7 +854,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> /* * Finally, wait for transmitter to become empty -@@ -3437,8 +3499,7 @@ void serial8250_console_write(struct uar +@@ -3447,8 +3509,7 @@ void serial8250_console_write(struct uar if (em485->tx_stopped) up->rs485_stop_tx(up); } @@ -864,7 +864,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> /* * The receive handling will happen properly because the -@@ -3450,8 +3511,7 @@ void serial8250_console_write(struct uar +@@ -3460,8 +3521,7 @@ void serial8250_console_write(struct uar if (up->msr_saved_flags) serial8250_modem_status(up); @@ -874,7 +874,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> } static unsigned int probe_baud(struct uart_port *port) -@@ -3471,6 +3531,7 @@ static unsigned int probe_baud(struct ua +@@ -3481,6 +3541,7 @@ static unsigned int probe_baud(struct ua int serial8250_console_setup(struct uart_port *port, char *options, bool probe) { @@ -882,7 +882,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> int baud = 9600; int bits = 8; int parity = 'n'; -@@ -3480,6 +3541,8 @@ int serial8250_console_setup(struct uart +@@ -3490,6 +3551,8 @@ int serial8250_console_setup(struct uart if (!port->iobase && !port->membase) return -ENODEV; @@ -911,7 +911,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> #include <linux/serial_core.h> #include <linux/serial_reg.h> #include <linux/platform_device.h> -@@ -124,6 +125,8 @@ struct uart_8250_port { +@@ -125,6 +126,8 @@ struct uart_8250_port { #define MSR_SAVE_FLAGS UART_MSR_ANY_DELTA unsigned char msr_saved_flags; @@ -920,7 +920,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> struct uart_8250_dma *dma; const struct uart_8250_ops *ops; -@@ -179,6 +182,8 @@ void serial8250_init_port(struct uart_82 +@@ -180,6 +183,8 @@ void serial8250_init_port(struct uart_82 void serial8250_set_defaults(struct uart_8250_port *up); void serial8250_console_write(struct uart_8250_port *up, const char *s, unsigned int count); diff --git a/patches/Add_localversion_for_-RT_release.patch b/patches/Add_localversion_for_-RT_release.patch index 34da917f8c9e..7bc90935ffb7 100644 --- a/patches/Add_localversion_for_-RT_release.patch +++ b/patches/Add_localversion_for_-RT_release.patch @@ -15,4 +15,4 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> --- /dev/null +++ b/localversion-rt @@ -0,0 +1 @@ -+-rt11 ++-rt12 |