Lines Matching refs:port
55 struct usb_serial_port *port; member
63 static int f81232_get_register(struct usb_serial_port *port, u16 reg, u8 *val) in f81232_get_register() argument
67 struct usb_device *dev = port->serial->dev; in f81232_get_register()
83 dev_err(&port->dev, "%s failed status: %d\n", __func__, status); in f81232_get_register()
98 static int f81232_set_register(struct usb_serial_port *port, u16 reg, u8 val) in f81232_set_register() argument
102 struct usb_device *dev = port->serial->dev; in f81232_set_register()
120 dev_err(&port->dev, "%s failed status: %d\n", __func__, status); in f81232_set_register()
134 static void f81232_read_msr(struct usb_serial_port *port) in f81232_read_msr() argument
139 struct f81232_private *priv = usb_get_serial_port_data(port); in f81232_read_msr()
142 status = f81232_get_register(port, MODEM_STATUS_REGISTER, in f81232_read_msr()
145 dev_err(&port->dev, "%s fail, status: %d\n", __func__, status); in f81232_read_msr()
158 port->icount.cts++; in f81232_read_msr()
160 port->icount.dsr++; in f81232_read_msr()
162 port->icount.rng++; in f81232_read_msr()
164 port->icount.dcd++; in f81232_read_msr()
165 tty = tty_port_tty_get(&port->port); in f81232_read_msr()
167 usb_serial_handle_dcd_change(port, tty, in f81232_read_msr()
174 wake_up_interruptible(&port->port.delta_msr_wait); in f81232_read_msr()
178 static int f81232_set_mctrl(struct usb_serial_port *port, in f81232_set_mctrl() argument
183 struct f81232_private *priv = usb_get_serial_port_data(port); in f81232_set_mctrl()
207 dev_dbg(&port->dev, "%s new:%02x old:%02x\n", __func__, in f81232_set_mctrl()
210 status = f81232_set_register(port, MODEM_CONTROL_REGISTER, val); in f81232_set_mctrl()
212 dev_err(&port->dev, "%s set MCR status < 0\n", __func__); in f81232_set_mctrl()
223 static void f81232_update_line_status(struct usb_serial_port *port, in f81232_update_line_status() argument
227 struct f81232_private *priv = usb_get_serial_port_data(port); in f81232_update_line_status()
234 dev_dbg(&port->dev, "IIR: MSR Change: %02x\n", data[0]); in f81232_update_line_status()
243 dev_dbg(&port->dev, "IIR: LSR Change: %02x\n", data[0]); in f81232_update_line_status()
250 struct usb_serial_port *port = urb->context; in f81232_read_int_callback() local
264 dev_dbg(&port->dev, "%s - urb shutting down with status: %d\n", in f81232_read_int_callback()
268 dev_dbg(&port->dev, "%s - nonzero urb status received: %d\n", in f81232_read_int_callback()
273 usb_serial_debug_data(&port->dev, __func__, in f81232_read_int_callback()
276 f81232_update_line_status(port, data, actual_length); in f81232_read_int_callback()
288 struct usb_serial_port *port = urb->context; in f81232_process_read_urb() local
310 port->icount.brk++; in f81232_process_read_urb()
311 usb_serial_handle_break(port); in f81232_process_read_urb()
314 port->icount.parity++; in f81232_process_read_urb()
317 port->icount.frame++; in f81232_process_read_urb()
321 port->icount.overrun++; in f81232_process_read_urb()
322 tty_insert_flip_char(&port->port, 0, in f81232_process_read_urb()
327 if (port->port.console && port->sysrq) { in f81232_process_read_urb()
328 if (usb_serial_handle_sysrq_char(port, data[i + 1])) in f81232_process_read_urb()
332 tty_insert_flip_char(&port->port, data[i + 1], tty_flag); in f81232_process_read_urb()
335 tty_flip_buffer_push(&port->port); in f81232_process_read_urb()
349 static void f81232_set_baudrate(struct usb_serial_port *port, speed_t baudrate) in f81232_set_baudrate() argument
357 status = f81232_get_register(port, LINE_CONTROL_REGISTER, in f81232_set_baudrate()
360 dev_err(&port->dev, "%s failed to get LCR: %d\n", in f81232_set_baudrate()
365 status = f81232_set_register(port, LINE_CONTROL_REGISTER, in f81232_set_baudrate()
368 dev_err(&port->dev, "%s failed to set DLAB: %d\n", in f81232_set_baudrate()
373 status = f81232_set_register(port, RECEIVE_BUFFER_REGISTER, in f81232_set_baudrate()
376 dev_err(&port->dev, "%s failed to set baudrate MSB: %d\n", in f81232_set_baudrate()
381 status = f81232_set_register(port, INTERRUPT_ENABLE_REGISTER, in f81232_set_baudrate()
384 dev_err(&port->dev, "%s failed to set baudrate LSB: %d\n", in f81232_set_baudrate()
389 status = f81232_set_register(port, LINE_CONTROL_REGISTER, in f81232_set_baudrate()
392 dev_err(&port->dev, "%s failed to set DLAB: %d\n", in f81232_set_baudrate()
397 static int f81232_port_enable(struct usb_serial_port *port) in f81232_port_enable() argument
406 status = f81232_set_register(port, FIFO_CONTROL_REGISTER, val); in f81232_port_enable()
408 dev_err(&port->dev, "%s failed to set FCR: %d\n", in f81232_port_enable()
414 status = f81232_set_register(port, INTERRUPT_ENABLE_REGISTER, in f81232_port_enable()
417 dev_err(&port->dev, "%s failed to set IER: %d\n", in f81232_port_enable()
425 static int f81232_port_disable(struct usb_serial_port *port) in f81232_port_disable() argument
429 status = f81232_set_register(port, INTERRUPT_ENABLE_REGISTER, 0); in f81232_port_disable()
431 dev_err(&port->dev, "%s failed to set IER: %d\n", in f81232_port_disable()
440 struct usb_serial_port *port, struct ktermios *old_termios) in f81232_set_termios() argument
451 f81232_set_mctrl(port, 0, TIOCM_DTR | TIOCM_RTS); in f81232_set_termios()
453 f81232_set_mctrl(port, TIOCM_DTR | TIOCM_RTS, 0); in f81232_set_termios()
461 f81232_set_baudrate(port, baudrate); in f81232_set_termios()
493 status = f81232_set_register(port, LINE_CONTROL_REGISTER, new_lcr); in f81232_set_termios()
495 dev_err(&port->dev, "%s failed to set LCR: %d\n", in f81232_set_termios()
503 struct usb_serial_port *port = tty->driver_data; in f81232_tiocmget() local
504 struct f81232_private *port_priv = usb_get_serial_port_data(port); in f81232_tiocmget()
508 f81232_read_msr(port); in f81232_tiocmget()
528 struct usb_serial_port *port = tty->driver_data; in f81232_tiocmset() local
530 return f81232_set_mctrl(port, set, clear); in f81232_tiocmset()
533 static int f81232_open(struct tty_struct *tty, struct usb_serial_port *port) in f81232_open() argument
537 result = f81232_port_enable(port); in f81232_open()
543 f81232_set_termios(tty, port, NULL); in f81232_open()
545 result = usb_submit_urb(port->interrupt_in_urb, GFP_KERNEL); in f81232_open()
547 dev_err(&port->dev, "%s - failed submitting interrupt urb," in f81232_open()
552 result = usb_serial_generic_open(tty, port); in f81232_open()
554 usb_kill_urb(port->interrupt_in_urb); in f81232_open()
561 static void f81232_close(struct usb_serial_port *port) in f81232_close() argument
563 f81232_port_disable(port); in f81232_close()
564 usb_serial_generic_close(port); in f81232_close()
565 usb_kill_urb(port->interrupt_in_urb); in f81232_close()
568 static void f81232_dtr_rts(struct usb_serial_port *port, int on) in f81232_dtr_rts() argument
571 f81232_set_mctrl(port, TIOCM_DTR | TIOCM_RTS, 0); in f81232_dtr_rts()
573 f81232_set_mctrl(port, 0, TIOCM_DTR | TIOCM_RTS); in f81232_dtr_rts()
576 static int f81232_carrier_raised(struct usb_serial_port *port) in f81232_carrier_raised() argument
579 struct f81232_private *priv = usb_get_serial_port_data(port); in f81232_carrier_raised()
590 static int f81232_get_serial_info(struct usb_serial_port *port, in f81232_get_serial_info() argument
598 ser.line = port->minor; in f81232_get_serial_info()
599 ser.port = port->port_number; in f81232_get_serial_info()
611 struct usb_serial_port *port = tty->driver_data; in f81232_ioctl() local
615 return f81232_get_serial_info(port, arg); in f81232_ioctl()
627 f81232_read_msr(priv->port); in f81232_interrupt_work()
630 static int f81232_port_probe(struct usb_serial_port *port) in f81232_port_probe() argument
641 usb_set_serial_port_data(port, priv); in f81232_port_probe()
643 port->port.drain_delay = 256; in f81232_port_probe()
644 priv->port = port; in f81232_port_probe()
649 static int f81232_port_remove(struct usb_serial_port *port) in f81232_port_remove() argument
653 priv = usb_get_serial_port_data(port); in f81232_port_remove()