]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
tty: Remove external interface for tty_set_termios()
authorPeter Hurley <peter@hurleysoftware.com>
Sun, 25 Jan 2015 19:44:54 +0000 (14:44 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 2 Feb 2015 18:11:28 +0000 (10:11 -0800)
tty_set_termios() is an internal helper intended for file scope use.

UART drivers which are capable of driving the RTS pin must
properly handle the tiocmset() method, regardless of termios settings.
A failure to do so is a UART driver bug and should be fixed there.
Do not use this interface to workaround UART driver bugs.

Cc: Johan Hedberg <johan.hedberg@gmail.com>
Cc: <linux-bluetooth@vger.kernel.org>
Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/bluetooth/hci_ath.c
drivers/tty/tty_ioctl.c
include/linux/tty.h

index 2ff6dfd2d3f0657e13853ec13b04a7b51cf765a6..9c4dcf4c62ea763e318ecc41f7ef5db03a9fbe67 100644 (file)
@@ -51,33 +51,22 @@ struct ath_struct {
 
 static int ath_wakeup_ar3k(struct tty_struct *tty)
 {
-       struct ktermios ktermios;
        int status = tty->driver->ops->tiocmget(tty);
 
        if (status & TIOCM_CTS)
                return status;
 
-       /* Disable Automatic RTSCTS */
-       ktermios = tty->termios;
-       ktermios.c_cflag &= ~CRTSCTS;
-       tty_set_termios(tty, &ktermios);
-
        /* Clear RTS first */
-       status = tty->driver->ops->tiocmget(tty);
+       tty->driver->ops->tiocmget(tty);
        tty->driver->ops->tiocmset(tty, 0x00, TIOCM_RTS);
        mdelay(20);
 
        /* Set RTS, wake up board */
-       status = tty->driver->ops->tiocmget(tty);
+       tty->driver->ops->tiocmget(tty);
        tty->driver->ops->tiocmset(tty, TIOCM_RTS, 0x00);
        mdelay(20);
 
        status = tty->driver->ops->tiocmget(tty);
-
-       /* Enable Automatic RTSCTS */
-       ktermios.c_cflag |= CRTSCTS;
-       status = tty_set_termios(tty, &ktermios);
-
        return status;
 }
 
index 1787fa4d9448bfd2428be22cbc9be0aac1f24b1d..a5cf253b2544f001a775f93a7905e63475f7eb7e 100644 (file)
@@ -530,7 +530,7 @@ EXPORT_SYMBOL(tty_termios_hw_change);
  *     Locking: termios_rwsem
  */
 
-int tty_set_termios(struct tty_struct *tty, struct ktermios *new_termios)
+static int tty_set_termios(struct tty_struct *tty, struct ktermios *new_termios)
 {
        struct ktermios old_termios;
        struct tty_ldisc *ld;
@@ -563,7 +563,6 @@ int tty_set_termios(struct tty_struct *tty, struct ktermios *new_termios)
        up_write(&tty->termios_rwsem);
        return 0;
 }
-EXPORT_SYMBOL_GPL(tty_set_termios);
 
 /**
  *     set_termios             -       set termios values for a tty
index fe5623c9af715fda985da02bcecb1c9451b3789c..358a337af598564f16b03bfa68a696ff85d4513b 100644 (file)
@@ -491,7 +491,6 @@ static inline speed_t tty_get_baud_rate(struct tty_struct *tty)
 
 extern void tty_termios_copy_hw(struct ktermios *new, struct ktermios *old);
 extern int tty_termios_hw_change(struct ktermios *a, struct ktermios *b);
-extern int tty_set_termios(struct tty_struct *tty, struct ktermios *kt);
 
 extern struct tty_ldisc *tty_ldisc_ref(struct tty_struct *);
 extern void tty_ldisc_deref(struct tty_ldisc *);