mirror of https://gitee.com/openkylin/linux.git
staging/serqt_usb2: refactor qt_open() in serqt_usb2.c
Modified to eliminate the deep nesting. Signed-off-by: YAMANE Toshiaki <yamanetoshi@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
bbbd527b4f
commit
04e9d11beb
|
@ -840,6 +840,31 @@ static void qt_release(struct usb_serial *serial)
|
|||
|
||||
}
|
||||
|
||||
static void qt_submit_urb_from_open(struct usb_serial *serial,
|
||||
struct usb_serial_port *port)
|
||||
{
|
||||
int result;
|
||||
struct usb_serial_port *port0 = serial->port[0];
|
||||
|
||||
/* set up interrupt urb */
|
||||
usb_fill_int_urb(port0->interrupt_in_urb,
|
||||
serial->dev,
|
||||
usb_rcvintpipe(serial->dev,
|
||||
port0->interrupt_in_endpointAddress),
|
||||
port0->interrupt_in_buffer,
|
||||
port0->interrupt_in_urb->transfer_buffer_length,
|
||||
qt_interrupt_callback, serial,
|
||||
port0->interrupt_in_urb->interval);
|
||||
|
||||
result = usb_submit_urb(port0->interrupt_in_urb,
|
||||
GFP_KERNEL);
|
||||
if (result) {
|
||||
dev_err(&port->dev,
|
||||
"%s - Error %d submitting interrupt urb\n",
|
||||
__func__, result);
|
||||
}
|
||||
}
|
||||
|
||||
static int qt_open(struct tty_struct *tty,
|
||||
struct usb_serial_port *port)
|
||||
{
|
||||
|
@ -900,30 +925,8 @@ static int qt_open(struct tty_struct *tty,
|
|||
|
||||
/* Check to see if we've set up our endpoint info yet */
|
||||
if (port0->open_ports == 1) {
|
||||
if (serial->port[0]->interrupt_in_buffer == NULL) {
|
||||
/* set up interrupt urb */
|
||||
usb_fill_int_urb(serial->port[0]->interrupt_in_urb,
|
||||
serial->dev,
|
||||
usb_rcvintpipe(serial->dev,
|
||||
serial->port[0]->interrupt_in_endpointAddress),
|
||||
serial->port[0]->interrupt_in_buffer,
|
||||
serial->port[0]->
|
||||
interrupt_in_urb->transfer_buffer_length,
|
||||
qt_interrupt_callback, serial,
|
||||
serial->port[0]->
|
||||
interrupt_in_urb->interval);
|
||||
|
||||
result =
|
||||
usb_submit_urb(serial->port[0]->interrupt_in_urb,
|
||||
GFP_KERNEL);
|
||||
if (result) {
|
||||
dev_err(&port->dev,
|
||||
"%s - Error %d submitting "
|
||||
"interrupt urb\n", __func__, result);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (serial->port[0]->interrupt_in_buffer == NULL)
|
||||
qt_submit_urb_from_open(serial, port);
|
||||
}
|
||||
|
||||
dev_dbg(&port->dev, "port number is %d\n", port->number);
|
||||
|
|
Loading…
Reference in New Issue