Commit 1dd8a3f6 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
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
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -15806,7 +15806,6 @@ M: Alan Stern <stern@rowland.harvard.edu>
L:	linux-usb@vger.kernel.org
L:	usb-storage@lists.one-eyed-alien.net
S:	Maintained
W:	http://www.one-eyed-alien.net/~mdharm/linux-usb/
F:	drivers/usb/storage/

USB MIDI DRIVER
+7 −0
Original line number Diff line number Diff line
@@ -1865,6 +1865,13 @@ static const struct usb_device_id acm_ids[] = {
	.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 */
	{ USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM,
		USB_CDC_PROTO_NONE) },
+6 −3
Original line number Diff line number Diff line
@@ -143,10 +143,13 @@ int usb_choose_configuration(struct usb_device *udev)
			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;
				break;
			}
			continue;
		}

		/* From the remaining configs, choose the first one whose
		 * first interface is for a non-vendor-specific class.
+2 −1
Original line number Diff line number Diff line
@@ -394,7 +394,8 @@ static const struct usb_device_id usb_quirk_list[] = {
	{ USB_DEVICE(0x1a40, 0x0101), .driver_info = USB_QUIRK_HUB_SLOW_RESET },

	/* 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 */
	{ USB_DEVICE(0x1b1c, 0x1b15), .driver_info = USB_QUIRK_DELAY_INIT |
+6 −2
Original line number Diff line number Diff line
@@ -235,8 +235,12 @@ static int slave_configure(struct scsi_device *sdev)
		if (!(us->fflags & US_FL_NEEDS_CAP16))
			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;

		/*
Loading