|
@@ -2428,8 +2428,12 @@ static int ftdi_get_modem_status(struct usb_serial_port *port,
|
|
FTDI_SIO_GET_MODEM_STATUS_REQUEST_TYPE,
|
|
FTDI_SIO_GET_MODEM_STATUS_REQUEST_TYPE,
|
|
0, priv->interface,
|
|
0, priv->interface,
|
|
buf, len, WDR_TIMEOUT);
|
|
buf, len, WDR_TIMEOUT);
|
|
- if (ret < 0) {
|
|
|
|
|
|
+
|
|
|
|
+ /* NOTE: We allow short responses and handle that below. */
|
|
|
|
+ if (ret < 1) {
|
|
dev_err(&port->dev, "failed to get modem status: %d\n", ret);
|
|
dev_err(&port->dev, "failed to get modem status: %d\n", ret);
|
|
|
|
+ if (ret >= 0)
|
|
|
|
+ ret = -EIO;
|
|
ret = usb_translate_errors(ret);
|
|
ret = usb_translate_errors(ret);
|
|
goto out;
|
|
goto out;
|
|
}
|
|
}
|