summaryrefslogtreecommitdiffstats
path: root/debian/patches-rt/0060-serial-sh-sci-Use-port-lock-wrappers.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches-rt/0060-serial-sh-sci-Use-port-lock-wrappers.patch')
-rw-r--r--debian/patches-rt/0060-serial-sh-sci-Use-port-lock-wrappers.patch302
1 files changed, 0 insertions, 302 deletions
diff --git a/debian/patches-rt/0060-serial-sh-sci-Use-port-lock-wrappers.patch b/debian/patches-rt/0060-serial-sh-sci-Use-port-lock-wrappers.patch
deleted file mode 100644
index 6d039c6658..0000000000
--- a/debian/patches-rt/0060-serial-sh-sci-Use-port-lock-wrappers.patch
+++ /dev/null
@@ -1,302 +0,0 @@
-From: Thomas Gleixner <tglx@linutronix.de>
-Date: Thu, 14 Sep 2023 20:44:17 +0206
-Subject: [PATCH 060/134] serial: sh-sci: Use port lock wrappers
-Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.6/older/patches-6.6.7-rt18.tar.xz
-
-When a serial port is used for kernel console output, then all
-modifications to the UART registers which are done from other contexts,
-e.g. getty, termios, are interference points for the kernel console.
-
-So far this has been ignored and the printk output is based on the
-principle of hope. The rework of the console infrastructure which aims to
-support threaded and atomic consoles, requires to mark sections which
-modify the UART registers as unsafe. This allows the atomic write function
-to make informed decisions and eventually to restore operational state. It
-also allows to prevent the regular UART code from modifying UART registers
-while printk output is in progress.
-
-All modifications of UART registers are guarded by the UART port lock,
-which provides an obvious synchronization point with the console
-infrastructure.
-
-To avoid adding this functionality to all UART drivers, wrap the
-spin_[un]lock*() invocations for uart_port::lock into helper functions
-which just contain the spin_[un]lock*() invocations for now. In a
-subsequent step these helpers will gain the console synchronization
-mechanisms.
-
-Converted with coccinelle. No functional change.
-
-Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-Signed-off-by: John Ogness <john.ogness@linutronix.de>
-Link: https://lore.kernel.org/r/20230914183831.587273-61-john.ogness@linutronix.de
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
----
- drivers/tty/serial/sh-sci.c | 68 ++++++++++++++++++++++----------------------
- 1 file changed, 34 insertions(+), 34 deletions(-)
-
---- a/drivers/tty/serial/sh-sci.c
-+++ b/drivers/tty/serial/sh-sci.c
-@@ -1205,7 +1205,7 @@ static void sci_dma_tx_complete(void *ar
-
- dev_dbg(port->dev, "%s(%d)\n", __func__, port->line);
-
-- spin_lock_irqsave(&port->lock, flags);
-+ uart_port_lock_irqsave(port, &flags);
-
- uart_xmit_advance(port, s->tx_dma_len);
-
-@@ -1229,7 +1229,7 @@ static void sci_dma_tx_complete(void *ar
- }
- }
-
-- spin_unlock_irqrestore(&port->lock, flags);
-+ uart_port_unlock_irqrestore(port, flags);
- }
-
- /* Locking: called with port lock held */
-@@ -1320,7 +1320,7 @@ static void sci_dma_rx_complete(void *ar
- dev_dbg(port->dev, "%s(%d) active cookie %d\n", __func__, port->line,
- s->active_rx);
-
-- spin_lock_irqsave(&port->lock, flags);
-+ uart_port_lock_irqsave(port, &flags);
-
- active = sci_dma_rx_find_active(s);
- if (active >= 0)
-@@ -1347,20 +1347,20 @@ static void sci_dma_rx_complete(void *ar
-
- dma_async_issue_pending(chan);
-
-- spin_unlock_irqrestore(&port->lock, flags);
-+ uart_port_unlock_irqrestore(port, flags);
- dev_dbg(port->dev, "%s: cookie %d #%d, new active cookie %d\n",
- __func__, s->cookie_rx[active], active, s->active_rx);
- return;
-
- fail:
-- spin_unlock_irqrestore(&port->lock, flags);
-+ uart_port_unlock_irqrestore(port, flags);
- dev_warn(port->dev, "Failed submitting Rx DMA descriptor\n");
- /* Switch to PIO */
-- spin_lock_irqsave(&port->lock, flags);
-+ uart_port_lock_irqsave(port, &flags);
- dmaengine_terminate_async(chan);
- sci_dma_rx_chan_invalidate(s);
- sci_dma_rx_reenable_irq(s);
-- spin_unlock_irqrestore(&port->lock, flags);
-+ uart_port_unlock_irqrestore(port, flags);
- }
-
- static void sci_dma_tx_release(struct sci_port *s)
-@@ -1409,13 +1409,13 @@ static int sci_dma_rx_submit(struct sci_
- fail:
- /* Switch to PIO */
- if (!port_lock_held)
-- spin_lock_irqsave(&port->lock, flags);
-+ uart_port_lock_irqsave(port, &flags);
- if (i)
- dmaengine_terminate_async(chan);
- sci_dma_rx_chan_invalidate(s);
- sci_start_rx(port);
- if (!port_lock_held)
-- spin_unlock_irqrestore(&port->lock, flags);
-+ uart_port_unlock_irqrestore(port, flags);
- return -EAGAIN;
- }
-
-@@ -1437,14 +1437,14 @@ static void sci_dma_tx_work_fn(struct wo
- * transmit till the end, and then the rest. Take the port lock to get a
- * consistent xmit buffer state.
- */
-- spin_lock_irq(&port->lock);
-+ uart_port_lock_irq(port);
- head = xmit->head;
- tail = xmit->tail;
- buf = s->tx_dma_addr + tail;
- s->tx_dma_len = CIRC_CNT_TO_END(head, tail, UART_XMIT_SIZE);
- if (!s->tx_dma_len) {
- /* Transmit buffer has been flushed */
-- spin_unlock_irq(&port->lock);
-+ uart_port_unlock_irq(port);
- return;
- }
-
-@@ -1452,7 +1452,7 @@ static void sci_dma_tx_work_fn(struct wo
- DMA_MEM_TO_DEV,
- DMA_PREP_INTERRUPT | DMA_CTRL_ACK);
- if (!desc) {
-- spin_unlock_irq(&port->lock);
-+ uart_port_unlock_irq(port);
- dev_warn(port->dev, "Failed preparing Tx DMA descriptor\n");
- goto switch_to_pio;
- }
-@@ -1464,12 +1464,12 @@ static void sci_dma_tx_work_fn(struct wo
- desc->callback_param = s;
- s->cookie_tx = dmaengine_submit(desc);
- if (dma_submit_error(s->cookie_tx)) {
-- spin_unlock_irq(&port->lock);
-+ uart_port_unlock_irq(port);
- dev_warn(port->dev, "Failed submitting Tx DMA descriptor\n");
- goto switch_to_pio;
- }
-
-- spin_unlock_irq(&port->lock);
-+ uart_port_unlock_irq(port);
- dev_dbg(port->dev, "%s: %p: %d...%d, cookie %d\n",
- __func__, xmit->buf, tail, head, s->cookie_tx);
-
-@@ -1477,10 +1477,10 @@ static void sci_dma_tx_work_fn(struct wo
- return;
-
- switch_to_pio:
-- spin_lock_irqsave(&port->lock, flags);
-+ uart_port_lock_irqsave(port, &flags);
- s->chan_tx = NULL;
- sci_start_tx(port);
-- spin_unlock_irqrestore(&port->lock, flags);
-+ uart_port_unlock_irqrestore(port, flags);
- return;
- }
-
-@@ -1497,17 +1497,17 @@ static enum hrtimer_restart sci_dma_rx_t
-
- dev_dbg(port->dev, "DMA Rx timed out\n");
-
-- spin_lock_irqsave(&port->lock, flags);
-+ uart_port_lock_irqsave(port, &flags);
-
- active = sci_dma_rx_find_active(s);
- if (active < 0) {
-- spin_unlock_irqrestore(&port->lock, flags);
-+ uart_port_unlock_irqrestore(port, flags);
- return HRTIMER_NORESTART;
- }
-
- status = dmaengine_tx_status(s->chan_rx, s->active_rx, &state);
- if (status == DMA_COMPLETE) {
-- spin_unlock_irqrestore(&port->lock, flags);
-+ uart_port_unlock_irqrestore(port, flags);
- dev_dbg(port->dev, "Cookie %d #%d has already completed\n",
- s->active_rx, active);
-
-@@ -1525,7 +1525,7 @@ static enum hrtimer_restart sci_dma_rx_t
- */
- status = dmaengine_tx_status(s->chan_rx, s->active_rx, &state);
- if (status == DMA_COMPLETE) {
-- spin_unlock_irqrestore(&port->lock, flags);
-+ uart_port_unlock_irqrestore(port, flags);
- dev_dbg(port->dev, "Transaction complete after DMA engine was stopped");
- return HRTIMER_NORESTART;
- }
-@@ -1546,7 +1546,7 @@ static enum hrtimer_restart sci_dma_rx_t
-
- sci_dma_rx_reenable_irq(s);
-
-- spin_unlock_irqrestore(&port->lock, flags);
-+ uart_port_unlock_irqrestore(port, flags);
-
- return HRTIMER_NORESTART;
- }
-@@ -1770,9 +1770,9 @@ static irqreturn_t sci_tx_interrupt(int
- struct uart_port *port = ptr;
- unsigned long flags;
-
-- spin_lock_irqsave(&port->lock, flags);
-+ uart_port_lock_irqsave(port, &flags);
- sci_transmit_chars(port);
-- spin_unlock_irqrestore(&port->lock, flags);
-+ uart_port_unlock_irqrestore(port, flags);
-
- return IRQ_HANDLED;
- }
-@@ -1786,11 +1786,11 @@ static irqreturn_t sci_tx_end_interrupt(
- if (port->type != PORT_SCI)
- return sci_tx_interrupt(irq, ptr);
-
-- spin_lock_irqsave(&port->lock, flags);
-+ uart_port_lock_irqsave(port, &flags);
- ctrl = serial_port_in(port, SCSCR);
- ctrl &= ~(SCSCR_TE | SCSCR_TEIE);
- serial_port_out(port, SCSCR, ctrl);
-- spin_unlock_irqrestore(&port->lock, flags);
-+ uart_port_unlock_irqrestore(port, flags);
-
- return IRQ_HANDLED;
- }
-@@ -2187,7 +2187,7 @@ static void sci_break_ctl(struct uart_po
- return;
- }
-
-- spin_lock_irqsave(&port->lock, flags);
-+ uart_port_lock_irqsave(port, &flags);
- scsptr = serial_port_in(port, SCSPTR);
- scscr = serial_port_in(port, SCSCR);
-
-@@ -2201,7 +2201,7 @@ static void sci_break_ctl(struct uart_po
-
- serial_port_out(port, SCSPTR, scsptr);
- serial_port_out(port, SCSCR, scscr);
-- spin_unlock_irqrestore(&port->lock, flags);
-+ uart_port_unlock_irqrestore(port, flags);
- }
-
- static int sci_startup(struct uart_port *port)
-@@ -2233,7 +2233,7 @@ static void sci_shutdown(struct uart_por
- s->autorts = false;
- mctrl_gpio_disable_ms(to_sci_port(port)->gpios);
-
-- spin_lock_irqsave(&port->lock, flags);
-+ uart_port_lock_irqsave(port, &flags);
- sci_stop_rx(port);
- sci_stop_tx(port);
- /*
-@@ -2243,7 +2243,7 @@ static void sci_shutdown(struct uart_por
- scr = serial_port_in(port, SCSCR);
- serial_port_out(port, SCSCR, scr &
- (SCSCR_CKE1 | SCSCR_CKE0 | s->hscif_tot));
-- spin_unlock_irqrestore(&port->lock, flags);
-+ uart_port_unlock_irqrestore(port, flags);
-
- #ifdef CONFIG_SERIAL_SH_SCI_DMA
- if (s->chan_rx_saved) {
-@@ -2545,7 +2545,7 @@ static void sci_set_termios(struct uart_
- serial_port_out(port, SCCKS, sccks);
- }
-
-- spin_lock_irqsave(&port->lock, flags);
-+ uart_port_lock_irqsave(port, &flags);
-
- sci_reset(port);
-
-@@ -2667,7 +2667,7 @@ static void sci_set_termios(struct uart_
- if ((termios->c_cflag & CREAD) != 0)
- sci_start_rx(port);
-
-- spin_unlock_irqrestore(&port->lock, flags);
-+ uart_port_unlock_irqrestore(port, flags);
-
- sci_port_disable(s);
-
-@@ -3052,9 +3052,9 @@ static void serial_console_write(struct
- if (port->sysrq)
- locked = 0;
- else if (oops_in_progress)
-- locked = spin_trylock_irqsave(&port->lock, flags);
-+ locked = uart_port_trylock_irqsave(port, &flags);
- else
-- spin_lock_irqsave(&port->lock, flags);
-+ uart_port_lock_irqsave(port, &flags);
-
- /* first save SCSCR then disable interrupts, keep clock source */
- ctrl = serial_port_in(port, SCSCR);
-@@ -3074,7 +3074,7 @@ static void serial_console_write(struct
- serial_port_out(port, SCSCR, ctrl);
-
- if (locked)
-- spin_unlock_irqrestore(&port->lock, flags);
-+ uart_port_unlock_irqrestore(port, flags);
- }
-
- static int serial_console_setup(struct console *co, char *options)