staging/serqt_usb2: refactor qt_open() in serqt_usb2.c
authorYAMANE Toshiaki <yamanetoshi@gmail.com>
Fri, 9 Nov 2012 21:34:11 +0000 (06:34 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 13 Nov 2012 21:15:25 +0000 (13:15 -0800)
Modified to eliminate the deep nesting.

Signed-off-by: YAMANE Toshiaki <yamanetoshi@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/serqt_usb2/serqt_usb2.c

index 0395bdfeab10b48d17d2a7aa13f3bc7ffcc1fd2c..4c475edebc6ad153c7e994e32deb86c06a79df4e 100644 (file)
@@ -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);