diff options
-rw-r--r-- | drivers/usb/serial/belkin_sa.c | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/drivers/usb/serial/belkin_sa.c b/drivers/usb/serial/belkin_sa.c index 9dbb07ea76ec..c39673608c35 100644 --- a/drivers/usb/serial/belkin_sa.c +++ b/drivers/usb/serial/belkin_sa.c | |||
@@ -207,29 +207,20 @@ static void belkin_sa_release(struct usb_serial *serial) | |||
207 | static int belkin_sa_open(struct tty_struct *tty, | 207 | static int belkin_sa_open(struct tty_struct *tty, |
208 | struct usb_serial_port *port) | 208 | struct usb_serial_port *port) |
209 | { | 209 | { |
210 | int retval = 0; | 210 | int retval; |
211 | 211 | ||
212 | dbg("%s port %d", __func__, port->number); | 212 | dbg("%s port %d", __func__, port->number); |
213 | 213 | ||
214 | /*Start reading from the device*/ | ||
215 | /* TODO: Look at possibility of submitting multiple URBs to device to | ||
216 | * enhance buffering. Win trace shows 16 initial read URBs. | ||
217 | */ | ||
218 | port->read_urb->dev = port->serial->dev; | ||
219 | retval = usb_submit_urb(port->read_urb, GFP_KERNEL); | ||
220 | if (retval) { | ||
221 | dev_err(&port->dev, "usb_submit_urb(read bulk) failed\n"); | ||
222 | goto exit; | ||
223 | } | ||
224 | |||
225 | port->interrupt_in_urb->dev = port->serial->dev; | ||
226 | retval = usb_submit_urb(port->interrupt_in_urb, GFP_KERNEL); | 214 | retval = usb_submit_urb(port->interrupt_in_urb, GFP_KERNEL); |
227 | if (retval) { | 215 | if (retval) { |
228 | usb_kill_urb(port->read_urb); | ||
229 | dev_err(&port->dev, "usb_submit_urb(read int) failed\n"); | 216 | dev_err(&port->dev, "usb_submit_urb(read int) failed\n"); |
217 | return retval; | ||
230 | } | 218 | } |
231 | 219 | ||
232 | exit: | 220 | retval = usb_serial_generic_open(tty, port); |
221 | if (retval) | ||
222 | usb_kill_urb(port->interrupt_in_urb); | ||
223 | |||
233 | return retval; | 224 | return retval; |
234 | } | 225 | } |
235 | 226 | ||