serial: Move uart_change_speed() earlier
authorIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Thu, 9 Mar 2023 08:09:19 +0000 (10:09 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 17 Mar 2023 14:00:40 +0000 (15:00 +0100)
Move uart_change_speed() earlier to get rid of its forward declaration.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Link: https://lore.kernel.org/r/20230309080923.11778-5-ilpo.jarvinen@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/serial_core.c

index 296d2c3..7201bbc 100644 (file)
@@ -49,8 +49,6 @@ static struct lock_class_key port_lock_key;
  */
 #define RS485_MAX_RTS_DELAY    100 /* msecs */
 
-static void uart_change_speed(struct tty_struct *tty, struct uart_state *state,
-                             const struct ktermios *old_termios);
 static void uart_wait_until_sent(struct tty_struct *tty, int timeout);
 static void uart_change_pm(struct uart_state *state,
                           enum uart_pm_state pm_state);
@@ -178,6 +176,52 @@ static void uart_port_dtr_rts(struct uart_port *uport, bool active)
                uart_clear_mctrl(uport, TIOCM_DTR | TIOCM_RTS);
 }
 
+/* Caller holds port mutex */
+static void uart_change_speed(struct tty_struct *tty, struct uart_state *state,
+                             const struct ktermios *old_termios)
+{
+       struct uart_port *uport = uart_port_check(state);
+       struct ktermios *termios;
+       int hw_stopped;
+
+       /*
+        * If we have no tty, termios, or the port does not exist,
+        * then we can't set the parameters for this port.
+        */
+       if (!tty || uport->type == PORT_UNKNOWN)
+               return;
+
+       termios = &tty->termios;
+       uport->ops->set_termios(uport, termios, old_termios);
+
+       /*
+        * Set modem status enables based on termios cflag
+        */
+       spin_lock_irq(&uport->lock);
+       if (termios->c_cflag & CRTSCTS)
+               uport->status |= UPSTAT_CTS_ENABLE;
+       else
+               uport->status &= ~UPSTAT_CTS_ENABLE;
+
+       if (termios->c_cflag & CLOCAL)
+               uport->status &= ~UPSTAT_DCD_ENABLE;
+       else
+               uport->status |= UPSTAT_DCD_ENABLE;
+
+       /* reset sw-assisted CTS flow control based on (possibly) new mode */
+       hw_stopped = uport->hw_stopped;
+       uport->hw_stopped = uart_softcts_mode(uport) &&
+                           !(uport->ops->get_mctrl(uport) & TIOCM_CTS);
+       if (uport->hw_stopped) {
+               if (!hw_stopped)
+                       uport->ops->stop_tx(uport);
+       } else {
+               if (hw_stopped)
+                       __uart_start(tty);
+       }
+       spin_unlock_irq(&uport->lock);
+}
+
 /*
  * Startup the port.  This will be called once per open.  All calls
  * will be serialised by the per-port mutex.
@@ -486,52 +530,6 @@ uart_get_divisor(struct uart_port *port, unsigned int baud)
 }
 EXPORT_SYMBOL(uart_get_divisor);
 
-/* Caller holds port mutex */
-static void uart_change_speed(struct tty_struct *tty, struct uart_state *state,
-                             const struct ktermios *old_termios)
-{
-       struct uart_port *uport = uart_port_check(state);
-       struct ktermios *termios;
-       int hw_stopped;
-
-       /*
-        * If we have no tty, termios, or the port does not exist,
-        * then we can't set the parameters for this port.
-        */
-       if (!tty || uport->type == PORT_UNKNOWN)
-               return;
-
-       termios = &tty->termios;
-       uport->ops->set_termios(uport, termios, old_termios);
-
-       /*
-        * Set modem status enables based on termios cflag
-        */
-       spin_lock_irq(&uport->lock);
-       if (termios->c_cflag & CRTSCTS)
-               uport->status |= UPSTAT_CTS_ENABLE;
-       else
-               uport->status &= ~UPSTAT_CTS_ENABLE;
-
-       if (termios->c_cflag & CLOCAL)
-               uport->status &= ~UPSTAT_DCD_ENABLE;
-       else
-               uport->status |= UPSTAT_DCD_ENABLE;
-
-       /* reset sw-assisted CTS flow control based on (possibly) new mode */
-       hw_stopped = uport->hw_stopped;
-       uport->hw_stopped = uart_softcts_mode(uport) &&
-                               !(uport->ops->get_mctrl(uport) & TIOCM_CTS);
-       if (uport->hw_stopped) {
-               if (!hw_stopped)
-                       uport->ops->stop_tx(uport);
-       } else {
-               if (hw_stopped)
-                       __uart_start(tty);
-       }
-       spin_unlock_irq(&uport->lock);
-}
-
 static int uart_put_char(struct tty_struct *tty, unsigned char c)
 {
        struct uart_state *state = tty->driver_data;