This patch introduces new methods needed by the USB-Serial Serial Core version. The methods are:
pl2303_stop_tx(), pl2303_send_xchar(), pl2303_stop_rx(), pl2303_type(), pl2303_enable_ms(), pl2303_release_port(), pl2303_request_port(), pl2303_config_port(), pl2303_verify_port(). Note that, however, some of them do nothing. That's because I _think_ they are not needed. Signed-off-by: Luiz Fernando N. Capitulino <[EMAIL PROTECTED]> --- drivers/usb/serial/pl2303.c | 81 +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 81 insertions(+), 0 deletions(-) diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c index cf04ae0..f93da0b 100644 --- a/drivers/usb/serial/pl2303.c +++ b/drivers/usb/serial/pl2303.c @@ -129,7 +129,17 @@ #define UART_CTS 0x80 /* function prototypes for a PL2303 serial converter */ static void pl2303_set_mctrl(struct uart_port *port, unsigned int mctrl); static unsigned int pl2303_get_mctrl(struct uart_port *port); +static void pl2303_stop_tx(struct uart_port *port); static void pl2303_start_tx(struct uart_port *port); +static void pl2303_send_xchar(struct uart_port *port, char ch); +static void pl2303_stop_rx(struct uart_port *port); +static void pl2303_enable_ms(struct uart_port *port); +static const char *pl2303_type(struct uart_port *port); +static void pl2303_release_port(struct uart_port *port); +static int pl2303_request_port(struct uart_port *port); +static void pl2303_config_port(struct uart_port *port, int flags); +static int pl2303_verify_port(struct uart_port *port, + struct serial_struct *serinfo); static void pl2303_break(struct uart_port *port, int break_state); static void pl2303_set_termios(struct uart_port *port, struct termios *termios, @@ -155,11 +165,20 @@ static unsigned int pl2303_buf_get(struc static struct uart_ops pl2303_uart_ops = { .set_mctrl = pl2303_set_mctrl, .get_mctrl = pl2303_get_mctrl, + .stop_tx = pl2303_stop_tx, .start_tx = pl2303_start_tx, + .send_xchar = pl2303_send_xchar, + .stop_rx = pl2303_stop_rx, + .enable_ms = pl2303_enable_ms, .break_ctl = pl2303_break, .startup = pl2303_startup, .shutdown = pl2303_shutdown, .set_termios = pl2303_set_termios, + .type = pl2303_type, + .release_port = pl2303_release_port, + .request_port = pl2303_request_port, + .config_port = pl2303_config_port, + .verify_port = pl2303_verify_port, }; /* All of the device info needed for the PL2303 SIO serial converter */ @@ -742,6 +761,13 @@ static unsigned int pl2303_get_mctrl(str return result; } +static void pl2303_stop_tx(struct uart_port *port) +{ + dbg("port %d", port->line); + + usb_unlink_urb(USBSERIAL_PORT->write_urb); +} + static void pl2303_start_tx(struct uart_port *port) { struct usb_serial_port *usp = USBSERIAL_PORT; @@ -782,6 +808,61 @@ submit: uart_write_wakeup(port); } +static void pl2303_send_xchar(struct uart_port *port, char ch) +{ + struct pl2303_private *priv; + struct usb_serial_port *usp = USBSERIAL_PORT; + + dbg("port %d", port->line); + + priv = usb_get_serial_port_data(usp); + + pl2303_buf_put(priv->buf, &ch, 1); + pl2303_send(usp); +} + +static void pl2303_stop_rx(struct uart_port *port) +{ + dbg("port %d", port->line); + + usb_unlink_urb(USBSERIAL_PORT->read_urb); + usb_unlink_urb(USBSERIAL_PORT->interrupt_in_urb); +} + +static void pl2303_enable_ms(struct uart_port *port) +{ + dbg("port %d", port->line); +} + +static const char *pl2303_type(struct uart_port *port) +{ + dbg("port %d", port->line); + return "pl2303"; +} + +static void pl2303_release_port(struct uart_port *port) +{ + dbg("port %d", port->line); +} + +static int pl2303_request_port(struct uart_port *port) +{ + dbg("port %d", port->line); + return 0; +} + +static void pl2303_config_port(struct uart_port *port, int flags) +{ + dbg("port %d", port->line); +} + +static int pl2303_verify_port(struct uart_port *port, + struct serial_struct *serinfo) +{ + dbg("port %d", port->line); + return 0; +} + static void pl2303_usb_shutdown(struct usb_serial *serial) { int i; -- 1.3.3.g0825d _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel