aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/usb/serial/quatech2.c24
1 files changed, 13 insertions, 11 deletions
diff --git a/drivers/usb/serial/quatech2.c b/drivers/usb/serial/quatech2.c
index bd1a1307e0f0..1d17779b2203 100644
--- a/drivers/usb/serial/quatech2.c
+++ b/drivers/usb/serial/quatech2.c
@@ -188,22 +188,22 @@ static inline int qt2_setdevice(struct usb_device *dev, u8 *data)
188} 188}
189 189
190 190
191static inline int qt2_getdevice(struct usb_device *dev, u8 *data)
192{
193 return usb_control_msg(dev, usb_rcvctrlpipe(dev, 0),
194 QT_SET_GET_DEVICE, 0xc0, 0, 0,
195 data, 3, QT2_USB_TIMEOUT);
196}
197
198static inline int qt2_getregister(struct usb_device *dev, 191static inline int qt2_getregister(struct usb_device *dev,
199 u8 uart, 192 u8 uart,
200 u8 reg, 193 u8 reg,
201 u8 *data) 194 u8 *data)
202{ 195{
203 return usb_control_msg(dev, usb_rcvctrlpipe(dev, 0), 196 int ret;
204 QT_SET_GET_REGISTER, 0xc0, reg, 197
205 uart, data, sizeof(*data), QT2_USB_TIMEOUT); 198 ret = usb_control_msg(dev, usb_rcvctrlpipe(dev, 0),
199 QT_SET_GET_REGISTER, 0xc0, reg,
200 uart, data, sizeof(*data), QT2_USB_TIMEOUT);
201 if (ret < sizeof(*data)) {
202 if (ret >= 0)
203 ret = -EIO;
204 }
206 205
206 return ret;
207} 207}
208 208
209static inline int qt2_setregister(struct usb_device *dev, 209static inline int qt2_setregister(struct usb_device *dev,
@@ -372,9 +372,11 @@ static int qt2_open(struct tty_struct *tty, struct usb_serial_port *port)
372 0xc0, 0, 372 0xc0, 0,
373 device_port, data, 2, QT2_USB_TIMEOUT); 373 device_port, data, 2, QT2_USB_TIMEOUT);
374 374
375 if (status < 0) { 375 if (status < 2) {
376 dev_err(&port->dev, "%s - open port failed %i\n", __func__, 376 dev_err(&port->dev, "%s - open port failed %i\n", __func__,
377 status); 377 status);
378 if (status >= 0)
379 status = -EIO;
378 kfree(data); 380 kfree(data);
379 return status; 381 return status;
380 } 382 }