Commit 73dc61cb386b0fdc488e8c6545817c1bbbb6e93e

Authored by Linus Torvalds

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

Pull USB fixes from Greg KH:
 "Here are some small USB fixes and quirk additions for 3.19-rc7.

  All have been in linux-next for a while with no reported problems"

* tag 'usb-3.19-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
  USB: Add OTG PET device to TPL
  usb-storage/SCSI: blacklist FUA on JMicron 152d:2566 USB-SATA controller
  uas: Add no-report-opcodes quirk for Simpletech devices with id 4971:8017
  storage: Revise/fix quirk for 04E6:000F SCM USB-SCSI converter
  usb: phy: never defer probe in non-OF case
  usb: dwc2: call dwc2_is_controller_alive() under spinlock

Showing 6 changed files Side-by-side Diff

drivers/usb/core/otg_whitelist.h
... ... @@ -55,6 +55,11 @@
55 55 le16_to_cpu(dev->descriptor.idProduct) == 0xbadd))
56 56 return 0;
57 57  
  58 + /* OTG PET device is always targeted (see OTG 2.0 ECN 6.4.2) */
  59 + if ((le16_to_cpu(dev->descriptor.idVendor) == 0x1a0a &&
  60 + le16_to_cpu(dev->descriptor.idProduct) == 0x0200))
  61 + return 1;
  62 +
58 63 /* NOTE: can't use usb_match_id() since interface caches
59 64 * aren't set up yet. this is cut/paste from that code.
60 65 */
drivers/usb/core/quirks.c
... ... @@ -179,6 +179,10 @@
179 179 { USB_DEVICE(0x0b05, 0x17e0), .driver_info =
180 180 USB_QUIRK_IGNORE_REMOTE_WAKEUP },
181 181  
  182 + /* Protocol and OTG Electrical Test Device */
  183 + { USB_DEVICE(0x1a0a, 0x0200), .driver_info =
  184 + USB_QUIRK_LINEAR_UFRAME_INTR_BINTERVAL },
  185 +
182 186 { } /* terminating entry must be last */
183 187 };
184 188  
drivers/usb/dwc2/core_intr.c
... ... @@ -476,13 +476,13 @@
476 476 u32 gintsts;
477 477 irqreturn_t retval = IRQ_NONE;
478 478  
  479 + spin_lock(&hsotg->lock);
  480 +
479 481 if (!dwc2_is_controller_alive(hsotg)) {
480 482 dev_warn(hsotg->dev, "Controller is dead\n");
481 483 goto out;
482 484 }
483 485  
484   - spin_lock(&hsotg->lock);
485   -
486 486 gintsts = dwc2_read_common_intr(hsotg);
487 487 if (gintsts & ~GINTSTS_PRTINT)
488 488 retval = IRQ_HANDLED;
489 489  
... ... @@ -515,8 +515,8 @@
515 515 }
516 516 }
517 517  
518   - spin_unlock(&hsotg->lock);
519 518 out:
  519 + spin_unlock(&hsotg->lock);
520 520 return retval;
521 521 }
522 522 EXPORT_SYMBOL_GPL(dwc2_handle_common_intr);
drivers/usb/phy/phy.c
... ... @@ -34,7 +34,7 @@
34 34 return phy;
35 35 }
36 36  
37   - return ERR_PTR(-EPROBE_DEFER);
  37 + return ERR_PTR(-ENODEV);
38 38 }
39 39  
40 40 static struct usb_phy *__usb_find_phy_dev(struct device *dev,
drivers/usb/storage/unusual_devs.h
... ... @@ -507,7 +507,7 @@
507 507 UNUSUAL_DEV( 0x04e6, 0x000f, 0x0000, 0x9999,
508 508 "SCM Microsystems",
509 509 "eUSB SCSI Adapter (Bus Powered)",
510   - USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_euscsi_init,
  510 + USB_SC_SCSI, USB_PR_BULK, usb_stor_euscsi_init,
511 511 US_FL_SCM_MULT_TARG ),
512 512  
513 513 UNUSUAL_DEV( 0x04e6, 0x0101, 0x0200, 0x0200,
... ... @@ -1994,6 +1994,13 @@
1994 1994 "USB to ATA/ATAPI Bridge",
1995 1995 USB_SC_DEVICE, USB_PR_DEVICE, NULL,
1996 1996 US_FL_IGNORE_RESIDUE | US_FL_SANE_SENSE ),
  1997 +
  1998 +/* Reported by Dmitry Nezhevenko <dion@dion.org.ua> */
  1999 +UNUSUAL_DEV( 0x152d, 0x2566, 0x0114, 0x0114,
  2000 + "JMicron",
  2001 + "USB to ATA/ATAPI Bridge",
  2002 + USB_SC_DEVICE, USB_PR_DEVICE, NULL,
  2003 + US_FL_BROKEN_FUA ),
1997 2004  
1998 2005 /* Entrega Technologies U1-SC25 (later Xircom PortGear PGSCSI)
1999 2006 * and Mac USB Dock USB-SCSI */
drivers/usb/storage/unusual_uas.h
... ... @@ -140,4 +140,11 @@
140 140 "External HDD",
141 141 USB_SC_DEVICE, USB_PR_DEVICE, NULL,
142 142 US_FL_IGNORE_UAS),
  143 +
  144 +/* Reported-by: Richard Henderson <rth@redhat.com> */
  145 +UNUSUAL_DEV(0x4971, 0x8017, 0x0000, 0x9999,
  146 + "SimpleTech",
  147 + "External HDD",
  148 + USB_SC_DEVICE, USB_PR_DEVICE, NULL,
  149 + US_FL_NO_REPORT_OPCODES),