Loading drivers/usb/serial/spcp8x5.c +37 −35 Original line number Diff line number Diff line Loading @@ -13,8 +13,6 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * */ #include <linux/kernel.h> #include <linux/errno.h> Loading Loading @@ -195,9 +193,12 @@ static int spcp8x5_port_remove(struct usb_serial_port *port) return 0; } /* set the modem control line of the device. * NOTE spcp825-007 not supported this */ static int spcp8x5_set_ctrlLine(struct usb_device *dev, u8 value, /* * Set the modem control line of the device. * * NOTE: not supported by spcp825-007 */ static int spcp8x5_set_ctrl_line(struct usb_device *dev, u8 value, enum spcp8x5_type type) { int retval; Loading @@ -215,8 +216,11 @@ static int spcp8x5_set_ctrlLine(struct usb_device *dev, u8 value, return retval; } /* get the modem status register of the device * NOTE spcp825-007 not supported this */ /* * Get the modem status register of the device. * * NOTE: not supported by spcp825-007 */ static int spcp8x5_get_msr(struct usb_device *dev, u8 *status, enum spcp8x5_type type) { Loading Loading @@ -249,9 +253,12 @@ static int spcp8x5_get_msr(struct usb_device *dev, u8 *status, return ret; } /* select the work mode. * NOTE this function not supported by spcp825-007 */ static void spcp8x5_set_workMode(struct usb_device *dev, u16 value, /* * Select the work mode. * * NOTE: not supported by spcp825-007 */ static void spcp8x5_set_work_mode(struct usb_device *dev, u16 value, u16 index, enum spcp8x5_type type) { int ret; Loading @@ -273,8 +280,10 @@ static void spcp8x5_set_workMode(struct usb_device *dev, u16 value, static int spcp8x5_carrier_raised(struct usb_serial_port *port) { struct spcp8x5_private *priv = usb_get_serial_port_data(port); if (priv->line_status & MSR_STATUS_LINE_DCD) return 1; return 0; } Loading @@ -293,20 +302,17 @@ static void spcp8x5_dtr_rts(struct usb_serial_port *port, int on) | MCR_CONTROL_LINE_RTS); control = priv->line_control; spin_unlock_irqrestore(&priv->lock, flags); spcp8x5_set_ctrlLine(port->serial->dev, control , priv->type); spcp8x5_set_ctrl_line(port->serial->dev, control, priv->type); } static void spcp8x5_init_termios(struct tty_struct *tty) { /* for the 1st time call this function */ tty->termios = tty_std_termios; tty->termios.c_cflag = B115200 | CS8 | CREAD | HUPCL | CLOCAL; tty->termios.c_ispeed = 115200; tty->termios.c_ospeed = 115200; } /* set the serial param for transfer. we should check if we really need to * transfer. if we set flow control we should do this too. */ static void spcp8x5_set_termios(struct tty_struct *tty, struct usb_serial_port *port, struct ktermios *old_termios) { Loading @@ -321,7 +327,6 @@ static void spcp8x5_set_termios(struct tty_struct *tty, int i; u8 control; /* check that they really want us to change something */ if (!tty_termios_hw_change(&tty->termios, old_termios)) return; Loading @@ -337,7 +342,7 @@ static void spcp8x5_set_termios(struct tty_struct *tty, if (control != priv->line_control) { control = priv->line_control; spin_unlock_irqrestore(&priv->lock, flags); spcp8x5_set_ctrlLine(serial->dev, control , priv->type); spcp8x5_set_ctrl_line(serial->dev, control , priv->type); } else { spin_unlock_irqrestore(&priv->lock, flags); } Loading Loading @@ -397,9 +402,9 @@ static void spcp8x5_set_termios(struct tty_struct *tty, if (cflag & PARENB) { buf[1] |= (cflag & PARODD) ? SET_UART_FORMAT_PAR_ODD : SET_UART_FORMAT_PAR_EVEN ; } else } else { buf[1] |= SET_UART_FORMAT_PAR_NONE; } uartdata = buf[0] | buf[1]<<8; i = usb_control_msg(serial->dev, usb_sndctrlpipe(serial->dev, 0), Loading @@ -412,13 +417,11 @@ static void spcp8x5_set_termios(struct tty_struct *tty, if (cflag & CRTSCTS) { /* enable hardware flow control */ spcp8x5_set_workMode(serial->dev, 0x000a, spcp8x5_set_work_mode(serial->dev, 0x000a, SET_WORKING_MODE_U2C, priv->type); } } /* open the serial port. do some usb system call. set termios and get the line * status of the device. */ static int spcp8x5_open(struct tty_struct *tty, struct usb_serial_port *port) { struct ktermios tmp_termios; Loading @@ -438,7 +441,7 @@ static int spcp8x5_open(struct tty_struct *tty, struct usb_serial_port *port) if (ret) return ret; spcp8x5_set_ctrlLine(serial->dev, priv->line_control , priv->type); spcp8x5_set_ctrl_line(serial->dev, priv->line_control, priv->type); /* Setup termios */ if (tty) Loading Loading @@ -476,7 +479,7 @@ static int spcp8x5_tiocmset(struct tty_struct *tty, control = priv->line_control; spin_unlock_irqrestore(&priv->lock, flags); return spcp8x5_set_ctrlLine(port->serial->dev, control , priv->type); return spcp8x5_set_ctrl_line(port->serial->dev, control, priv->type); } static int spcp8x5_tiocmget(struct tty_struct *tty) Loading @@ -503,7 +506,6 @@ static int spcp8x5_tiocmget(struct tty_struct *tty) return result; } /* All of the device info needed for the spcp8x5 SIO serial converter */ static struct usb_serial_driver spcp8x5_device = { .driver = { .owner = THIS_MODULE, Loading Loading
drivers/usb/serial/spcp8x5.c +37 −35 Original line number Diff line number Diff line Loading @@ -13,8 +13,6 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * */ #include <linux/kernel.h> #include <linux/errno.h> Loading Loading @@ -195,9 +193,12 @@ static int spcp8x5_port_remove(struct usb_serial_port *port) return 0; } /* set the modem control line of the device. * NOTE spcp825-007 not supported this */ static int spcp8x5_set_ctrlLine(struct usb_device *dev, u8 value, /* * Set the modem control line of the device. * * NOTE: not supported by spcp825-007 */ static int spcp8x5_set_ctrl_line(struct usb_device *dev, u8 value, enum spcp8x5_type type) { int retval; Loading @@ -215,8 +216,11 @@ static int spcp8x5_set_ctrlLine(struct usb_device *dev, u8 value, return retval; } /* get the modem status register of the device * NOTE spcp825-007 not supported this */ /* * Get the modem status register of the device. * * NOTE: not supported by spcp825-007 */ static int spcp8x5_get_msr(struct usb_device *dev, u8 *status, enum spcp8x5_type type) { Loading Loading @@ -249,9 +253,12 @@ static int spcp8x5_get_msr(struct usb_device *dev, u8 *status, return ret; } /* select the work mode. * NOTE this function not supported by spcp825-007 */ static void spcp8x5_set_workMode(struct usb_device *dev, u16 value, /* * Select the work mode. * * NOTE: not supported by spcp825-007 */ static void spcp8x5_set_work_mode(struct usb_device *dev, u16 value, u16 index, enum spcp8x5_type type) { int ret; Loading @@ -273,8 +280,10 @@ static void spcp8x5_set_workMode(struct usb_device *dev, u16 value, static int spcp8x5_carrier_raised(struct usb_serial_port *port) { struct spcp8x5_private *priv = usb_get_serial_port_data(port); if (priv->line_status & MSR_STATUS_LINE_DCD) return 1; return 0; } Loading @@ -293,20 +302,17 @@ static void spcp8x5_dtr_rts(struct usb_serial_port *port, int on) | MCR_CONTROL_LINE_RTS); control = priv->line_control; spin_unlock_irqrestore(&priv->lock, flags); spcp8x5_set_ctrlLine(port->serial->dev, control , priv->type); spcp8x5_set_ctrl_line(port->serial->dev, control, priv->type); } static void spcp8x5_init_termios(struct tty_struct *tty) { /* for the 1st time call this function */ tty->termios = tty_std_termios; tty->termios.c_cflag = B115200 | CS8 | CREAD | HUPCL | CLOCAL; tty->termios.c_ispeed = 115200; tty->termios.c_ospeed = 115200; } /* set the serial param for transfer. we should check if we really need to * transfer. if we set flow control we should do this too. */ static void spcp8x5_set_termios(struct tty_struct *tty, struct usb_serial_port *port, struct ktermios *old_termios) { Loading @@ -321,7 +327,6 @@ static void spcp8x5_set_termios(struct tty_struct *tty, int i; u8 control; /* check that they really want us to change something */ if (!tty_termios_hw_change(&tty->termios, old_termios)) return; Loading @@ -337,7 +342,7 @@ static void spcp8x5_set_termios(struct tty_struct *tty, if (control != priv->line_control) { control = priv->line_control; spin_unlock_irqrestore(&priv->lock, flags); spcp8x5_set_ctrlLine(serial->dev, control , priv->type); spcp8x5_set_ctrl_line(serial->dev, control , priv->type); } else { spin_unlock_irqrestore(&priv->lock, flags); } Loading Loading @@ -397,9 +402,9 @@ static void spcp8x5_set_termios(struct tty_struct *tty, if (cflag & PARENB) { buf[1] |= (cflag & PARODD) ? SET_UART_FORMAT_PAR_ODD : SET_UART_FORMAT_PAR_EVEN ; } else } else { buf[1] |= SET_UART_FORMAT_PAR_NONE; } uartdata = buf[0] | buf[1]<<8; i = usb_control_msg(serial->dev, usb_sndctrlpipe(serial->dev, 0), Loading @@ -412,13 +417,11 @@ static void spcp8x5_set_termios(struct tty_struct *tty, if (cflag & CRTSCTS) { /* enable hardware flow control */ spcp8x5_set_workMode(serial->dev, 0x000a, spcp8x5_set_work_mode(serial->dev, 0x000a, SET_WORKING_MODE_U2C, priv->type); } } /* open the serial port. do some usb system call. set termios and get the line * status of the device. */ static int spcp8x5_open(struct tty_struct *tty, struct usb_serial_port *port) { struct ktermios tmp_termios; Loading @@ -438,7 +441,7 @@ static int spcp8x5_open(struct tty_struct *tty, struct usb_serial_port *port) if (ret) return ret; spcp8x5_set_ctrlLine(serial->dev, priv->line_control , priv->type); spcp8x5_set_ctrl_line(serial->dev, priv->line_control, priv->type); /* Setup termios */ if (tty) Loading Loading @@ -476,7 +479,7 @@ static int spcp8x5_tiocmset(struct tty_struct *tty, control = priv->line_control; spin_unlock_irqrestore(&priv->lock, flags); return spcp8x5_set_ctrlLine(port->serial->dev, control , priv->type); return spcp8x5_set_ctrl_line(port->serial->dev, control, priv->type); } static int spcp8x5_tiocmget(struct tty_struct *tty) Loading @@ -503,7 +506,6 @@ static int spcp8x5_tiocmget(struct tty_struct *tty) return result; } /* All of the device info needed for the spcp8x5 SIO serial converter */ static struct usb_serial_driver spcp8x5_device = { .driver = { .owner = THIS_MODULE, Loading