Commit 1dd8a3f6 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'usb-5.0-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb

Pull USB fixes from Greg KH:
 "Here are some small USB driver fixes and quirk updates for 5.0-rc2.

  The majority here are some quirks for some storage devices to get them
  to work properly. There's also a fix here to resolve the reported
  issues with some audio devices that say they are UAC3 compliant, but
  really are not.

  And a fix up for the MAINTAINERS file to remove a dead url.

  All have been in linux-next with no reported issues"

* tag 'usb-5.0-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
  usb: storage: Remove outdated URL from MAINTAINERS
  USB: Add USB_QUIRK_DELAY_CTRL_MSG quirk for Corsair K70 RGB
  usbcore: Select only first configuration for non-UAC3 compliant devices
  USB: storage: add quirk for SMI SM3350
  USB: storage: don't insert sane sense for SPC3+ when bad sense specified
  usb: cdc-acm: send ZLP for Telit 3G Intel based modems
parents 0f9d140a b9fcb0e6
...@@ -15806,7 +15806,6 @@ M: Alan Stern <stern@rowland.harvard.edu> ...@@ -15806,7 +15806,6 @@ M: Alan Stern <stern@rowland.harvard.edu>
L: linux-usb@vger.kernel.org L: linux-usb@vger.kernel.org
L: usb-storage@lists.one-eyed-alien.net L: usb-storage@lists.one-eyed-alien.net
S: Maintained S: Maintained
W: http://www.one-eyed-alien.net/~mdharm/linux-usb/
F: drivers/usb/storage/ F: drivers/usb/storage/
USB MIDI DRIVER USB MIDI DRIVER
......
...@@ -1865,6 +1865,13 @@ static const struct usb_device_id acm_ids[] = { ...@@ -1865,6 +1865,13 @@ static const struct usb_device_id acm_ids[] = {
.driver_info = IGNORE_DEVICE, .driver_info = IGNORE_DEVICE,
}, },
{ USB_DEVICE(0x1bc7, 0x0021), /* Telit 3G ACM only composition */
.driver_info = SEND_ZERO_PACKET,
},
{ USB_DEVICE(0x1bc7, 0x0023), /* Telit 3G ACM + ECM composition */
.driver_info = SEND_ZERO_PACKET,
},
/* control interfaces without any protocol set */ /* control interfaces without any protocol set */
{ USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM, { USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM,
USB_CDC_PROTO_NONE) }, USB_CDC_PROTO_NONE) },
......
...@@ -143,10 +143,13 @@ int usb_choose_configuration(struct usb_device *udev) ...@@ -143,10 +143,13 @@ int usb_choose_configuration(struct usb_device *udev)
continue; continue;
} }
if (i > 0 && desc && is_audio(desc) && is_uac3_config(desc)) { if (i > 0 && desc && is_audio(desc)) {
if (is_uac3_config(desc)) {
best = c; best = c;
break; break;
} }
continue;
}
/* From the remaining configs, choose the first one whose /* From the remaining configs, choose the first one whose
* first interface is for a non-vendor-specific class. * first interface is for a non-vendor-specific class.
......
...@@ -394,7 +394,8 @@ static const struct usb_device_id usb_quirk_list[] = { ...@@ -394,7 +394,8 @@ static const struct usb_device_id usb_quirk_list[] = {
{ USB_DEVICE(0x1a40, 0x0101), .driver_info = USB_QUIRK_HUB_SLOW_RESET }, { USB_DEVICE(0x1a40, 0x0101), .driver_info = USB_QUIRK_HUB_SLOW_RESET },
/* Corsair K70 RGB */ /* Corsair K70 RGB */
{ USB_DEVICE(0x1b1c, 0x1b13), .driver_info = USB_QUIRK_DELAY_INIT }, { USB_DEVICE(0x1b1c, 0x1b13), .driver_info = USB_QUIRK_DELAY_INIT |
USB_QUIRK_DELAY_CTRL_MSG },
/* Corsair Strafe */ /* Corsair Strafe */
{ USB_DEVICE(0x1b1c, 0x1b15), .driver_info = USB_QUIRK_DELAY_INIT | { USB_DEVICE(0x1b1c, 0x1b15), .driver_info = USB_QUIRK_DELAY_INIT |
......
...@@ -235,8 +235,12 @@ static int slave_configure(struct scsi_device *sdev) ...@@ -235,8 +235,12 @@ static int slave_configure(struct scsi_device *sdev)
if (!(us->fflags & US_FL_NEEDS_CAP16)) if (!(us->fflags & US_FL_NEEDS_CAP16))
sdev->try_rc_10_first = 1; sdev->try_rc_10_first = 1;
/* assume SPC3 or latter devices support sense size > 18 */ /*
if (sdev->scsi_level > SCSI_SPC_2) * assume SPC3 or latter devices support sense size > 18
* unless US_FL_BAD_SENSE quirk is specified.
*/
if (sdev->scsi_level > SCSI_SPC_2 &&
!(us->fflags & US_FL_BAD_SENSE))
us->fflags |= US_FL_SANE_SENSE; us->fflags |= US_FL_SANE_SENSE;
/* /*
......
...@@ -1265,6 +1265,18 @@ UNUSUAL_DEV( 0x090c, 0x1132, 0x0000, 0xffff, ...@@ -1265,6 +1265,18 @@ UNUSUAL_DEV( 0x090c, 0x1132, 0x0000, 0xffff,
USB_SC_DEVICE, USB_PR_DEVICE, NULL, USB_SC_DEVICE, USB_PR_DEVICE, NULL,
US_FL_FIX_CAPACITY ), US_FL_FIX_CAPACITY ),
/*
* Reported by Icenowy Zheng <icenowy@aosc.io>
* The SMI SM3350 USB-UFS bridge controller will enter a wrong state
* that do not process read/write command if a long sense is requested,
* so force to use 18-byte sense.
*/
UNUSUAL_DEV( 0x090c, 0x3350, 0x0000, 0xffff,
"SMI",
"SM3350 UFS-to-USB-Mass-Storage bridge",
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
US_FL_BAD_SENSE ),
/* /*
* Reported by Paul Hartman <paul.hartman+linux@gmail.com> * Reported by Paul Hartman <paul.hartman+linux@gmail.com>
* This card reader returns "Illegal Request, Logical Block Address * This card reader returns "Illegal Request, Logical Block Address
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment