diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2015-11-24 13:34:40 -0500 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2015-11-24 13:34:40 -0500 |
commit | 8bd142c01648cdb33e9bcafa0448ba2c20ed814c (patch) | |
tree | 9197c60d3f9d4036f38f281a183e94750ceea1d7 /drivers/usb/dwc3 | |
parent | d792abacaf1a1a8dfea353fab699b97fa6251c2a (diff) | |
parent | fbb4574ce9a37e15a9872860bf202f2be5bdf6c4 (diff) |
Merge tag 'kvm-arm-for-v4.4-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into kvm-master
KVM/ARM Fixes for v4.4-rc3.
Includes some timer fixes, properly unmapping PTEs, an errata fix, and two
tweaks to the EL2 panic code.
Diffstat (limited to 'drivers/usb/dwc3')
-rw-r--r-- | drivers/usb/dwc3/dwc3-pci.c | 4 | ||||
-rw-r--r-- | drivers/usb/dwc3/gadget.c | 24 |
2 files changed, 27 insertions, 1 deletions
diff --git a/drivers/usb/dwc3/dwc3-pci.c b/drivers/usb/dwc3/dwc3-pci.c index 77a622cb48ab..009d83048c8c 100644 --- a/drivers/usb/dwc3/dwc3-pci.c +++ b/drivers/usb/dwc3/dwc3-pci.c | |||
@@ -34,6 +34,8 @@ | |||
34 | #define PCI_DEVICE_ID_INTEL_BSW 0x22b7 | 34 | #define PCI_DEVICE_ID_INTEL_BSW 0x22b7 |
35 | #define PCI_DEVICE_ID_INTEL_SPTLP 0x9d30 | 35 | #define PCI_DEVICE_ID_INTEL_SPTLP 0x9d30 |
36 | #define PCI_DEVICE_ID_INTEL_SPTH 0xa130 | 36 | #define PCI_DEVICE_ID_INTEL_SPTH 0xa130 |
37 | #define PCI_DEVICE_ID_INTEL_BXT 0x0aaa | ||
38 | #define PCI_DEVICE_ID_INTEL_APL 0x5aaa | ||
37 | 39 | ||
38 | static const struct acpi_gpio_params reset_gpios = { 0, 0, false }; | 40 | static const struct acpi_gpio_params reset_gpios = { 0, 0, false }; |
39 | static const struct acpi_gpio_params cs_gpios = { 1, 0, false }; | 41 | static const struct acpi_gpio_params cs_gpios = { 1, 0, false }; |
@@ -210,6 +212,8 @@ static const struct pci_device_id dwc3_pci_id_table[] = { | |||
210 | { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_MRFLD), }, | 212 | { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_MRFLD), }, |
211 | { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_SPTLP), }, | 213 | { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_SPTLP), }, |
212 | { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_SPTH), }, | 214 | { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_SPTH), }, |
215 | { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_BXT), }, | ||
216 | { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_APL), }, | ||
213 | { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_NL_USB), }, | 217 | { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_NL_USB), }, |
214 | { } /* Terminating Entry */ | 218 | { } /* Terminating Entry */ |
215 | }; | 219 | }; |
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index 55ba447fdf8b..e24a01cc98df 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c | |||
@@ -2744,12 +2744,34 @@ int dwc3_gadget_init(struct dwc3 *dwc) | |||
2744 | } | 2744 | } |
2745 | 2745 | ||
2746 | dwc->gadget.ops = &dwc3_gadget_ops; | 2746 | dwc->gadget.ops = &dwc3_gadget_ops; |
2747 | dwc->gadget.max_speed = USB_SPEED_SUPER; | ||
2748 | dwc->gadget.speed = USB_SPEED_UNKNOWN; | 2747 | dwc->gadget.speed = USB_SPEED_UNKNOWN; |
2749 | dwc->gadget.sg_supported = true; | 2748 | dwc->gadget.sg_supported = true; |
2750 | dwc->gadget.name = "dwc3-gadget"; | 2749 | dwc->gadget.name = "dwc3-gadget"; |
2751 | 2750 | ||
2752 | /* | 2751 | /* |
2752 | * FIXME We might be setting max_speed to <SUPER, however versions | ||
2753 | * <2.20a of dwc3 have an issue with metastability (documented | ||
2754 | * elsewhere in this driver) which tells us we can't set max speed to | ||
2755 | * anything lower than SUPER. | ||
2756 | * | ||
2757 | * Because gadget.max_speed is only used by composite.c and function | ||
2758 | * drivers (i.e. it won't go into dwc3's registers) we are allowing this | ||
2759 | * to happen so we avoid sending SuperSpeed Capability descriptor | ||
2760 | * together with our BOS descriptor as that could confuse host into | ||
2761 | * thinking we can handle super speed. | ||
2762 | * | ||
2763 | * Note that, in fact, we won't even support GetBOS requests when speed | ||
2764 | * is less than super speed because we don't have means, yet, to tell | ||
2765 | * composite.c that we are USB 2.0 + LPM ECN. | ||
2766 | */ | ||
2767 | if (dwc->revision < DWC3_REVISION_220A) | ||
2768 | dwc3_trace(trace_dwc3_gadget, | ||
2769 | "Changing max_speed on rev %08x\n", | ||
2770 | dwc->revision); | ||
2771 | |||
2772 | dwc->gadget.max_speed = dwc->maximum_speed; | ||
2773 | |||
2774 | /* | ||
2753 | * Per databook, DWC3 needs buffer size to be aligned to MaxPacketSize | 2775 | * Per databook, DWC3 needs buffer size to be aligned to MaxPacketSize |
2754 | * on ep out. | 2776 | * on ep out. |
2755 | */ | 2777 | */ |