aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/serial/iuu_phoenix.c
diff options
context:
space:
mode:
authorAlan Cox <alan@lxorguk.ukuu.org.uk>2009-06-11 07:26:29 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2009-06-11 11:50:56 -0400
commit335f8514f200e63d689113d29cb7253a5c282967 (patch)
tree11504d090e8e2cd3c1ada3e6765f69f216065d00 /drivers/usb/serial/iuu_phoenix.c
parent1ec739be75a6cb961a46ba0b1982d0edb7f27558 (diff)
tty: Bring the usb tty port structure into more use
This allows us to clean stuff up, but is probably also going to cause some app breakage with buggy apps as we now implement proper POSIX behaviour for USB ports matching all the other ports. This does also mean other apps that break on USB will now work properly. Signed-off-by: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/usb/serial/iuu_phoenix.c')
-rw-r--r--drivers/usb/serial/iuu_phoenix.c25
1 files changed, 2 insertions, 23 deletions
diff --git a/drivers/usb/serial/iuu_phoenix.c b/drivers/usb/serial/iuu_phoenix.c
index 4473d442b2aa..bb572cee6ecd 100644
--- a/drivers/usb/serial/iuu_phoenix.c
+++ b/drivers/usb/serial/iuu_phoenix.c
@@ -70,7 +70,6 @@ static void read_rxcmd_callback(struct urb *urb);
70struct iuu_private { 70struct iuu_private {
71 spinlock_t lock; /* store irq state */ 71 spinlock_t lock; /* store irq state */
72 wait_queue_head_t delta_msr_wait; 72 wait_queue_head_t delta_msr_wait;
73 u8 line_control;
74 u8 line_status; 73 u8 line_status;
75 u8 termios_initialized; 74 u8 termios_initialized;
76 int tiostatus; /* store IUART SIGNAL for tiocmget call */ 75 int tiostatus; /* store IUART SIGNAL for tiocmget call */
@@ -946,19 +945,10 @@ static int iuu_uart_baud(struct usb_serial_port *port, u32 baud,
946 return status; 945 return status;
947} 946}
948 947
949static int set_control_lines(struct usb_device *dev, u8 value) 948static void iuu_close(struct usb_serial_port *port)
950{
951 return 0;
952}
953
954static void iuu_close(struct tty_struct *tty,
955 struct usb_serial_port *port, struct file *filp)
956{ 949{
957 /* iuu_led (port,255,0,0,0); */ 950 /* iuu_led (port,255,0,0,0); */
958 struct usb_serial *serial; 951 struct usb_serial *serial;
959 struct iuu_private *priv = usb_get_serial_port_data(port);
960 unsigned long flags;
961 unsigned int c_cflag;
962 952
963 serial = port->serial; 953 serial = port->serial;
964 if (!serial) 954 if (!serial)
@@ -968,17 +958,6 @@ static void iuu_close(struct tty_struct *tty,
968 958
969 iuu_uart_off(port); 959 iuu_uart_off(port);
970 if (serial->dev) { 960 if (serial->dev) {
971 if (tty) {
972 c_cflag = tty->termios->c_cflag;
973 if (c_cflag & HUPCL) {
974 /* drop DTR and RTS */
975 priv = usb_get_serial_port_data(port);
976 spin_lock_irqsave(&priv->lock, flags);
977 priv->line_control = 0;
978 spin_unlock_irqrestore(&priv->lock, flags);
979 set_control_lines(port->serial->dev, 0);
980 }
981 }
982 /* free writebuf */ 961 /* free writebuf */
983 /* shutdown our urbs */ 962 /* shutdown our urbs */
984 dbg("%s - shutting down urbs", __func__); 963 dbg("%s - shutting down urbs", __func__);
@@ -1154,7 +1133,7 @@ static int iuu_open(struct tty_struct *tty,
1154 if (result) { 1133 if (result) {
1155 dev_err(&port->dev, "%s - failed submitting read urb," 1134 dev_err(&port->dev, "%s - failed submitting read urb,"
1156 " error %d\n", __func__, result); 1135 " error %d\n", __func__, result);
1157 iuu_close(tty, port, NULL); 1136 iuu_close(port);
1158 return -EPROTO; 1137 return -EPROTO;
1159 } else { 1138 } else {
1160 dbg("%s - rxcmd OK", __func__); 1139 dbg("%s - rxcmd OK", __func__);