diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-02-15 13:24:55 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-02-15 13:24:55 -0500 |
| commit | e29876723f7cb7728f0d6a674d23f92673e9f112 (patch) | |
| tree | ea1da8bf77139f6cc6de029988208a7eddaf2002 /include/linux | |
| parent | 8c988ae787af4900bec5410658e8a82844185c85 (diff) | |
| parent | 4d4bac4499e9955521af80198063ef9c2f2bd634 (diff) | |
Merge tag 'usb-3.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
Pull USB patches from Greg KH:
"Here's the big pull request for the USB driver tree for 3.20-rc1.
Nothing major happening here, just lots of gadget driver updates, new
device ids, and a bunch of cleanups.
All of these have been in linux-next for a while with no reported
issues"
* tag 'usb-3.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (299 commits)
usb: musb: fix device hotplug behind hub
usb: dwc2: Fix a bug in reading the endpoint directions from reg.
staging: emxx_udc: fix the build error
usb: Retry port status check on resume to work around RH bugs
Revert "usb: Reset USB-3 devices on USB-3 link bounce"
uhci-hub: use HUB_CHAR_*
usb: kconfig: replace PPC_OF with PPC
ehci-pci: disable for Intel MID platforms (update)
usb: gadget: Kconfig: use bool instead of boolean
usb: musb: blackfin: remove incorrect __exit_p()
USB: fix use-after-free bug in usb_hcd_unlink_urb()
ehci-pci: disable for Intel MID platforms
usb: host: pci_quirks: joing string literals
USB: add flag for HCDs that can't receive wakeup requests (isp1760-hcd)
USB: usbfs: allow URBs to be reaped after disconnection
cdc-acm: kill unnecessary messages
cdc-acm: add sanity checks
usb: phy: phy-generic: Fix USB PHY gpio reset
usb: dwc2: fix USB core dependencies
usb: renesas_usbhs: fix NULL pointer dereference in dma_release_channel()
...
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/mfd/syscon/exynos4-pmu.h | 21 | ||||
| -rw-r--r-- | include/linux/mod_devicetable.h | 6 | ||||
| -rw-r--r-- | include/linux/usb.h | 7 | ||||
| -rw-r--r-- | include/linux/usb/ehci_pdriver.h | 4 | ||||
| -rw-r--r-- | include/linux/usb/gadget.h | 2 | ||||
| -rw-r--r-- | include/linux/usb/hcd.h | 3 | ||||
| -rw-r--r-- | include/linux/usb/phy.h | 4 | ||||
| -rw-r--r-- | include/linux/usb/usb_phy_generic.h | 2 |
8 files changed, 38 insertions, 11 deletions
diff --git a/include/linux/mfd/syscon/exynos4-pmu.h b/include/linux/mfd/syscon/exynos4-pmu.h new file mode 100644 index 000000000000..278b1b1549e9 --- /dev/null +++ b/include/linux/mfd/syscon/exynos4-pmu.h | |||
| @@ -0,0 +1,21 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (C) 2015 Samsung Electronics Co., Ltd. | ||
| 3 | * | ||
| 4 | * This program is free software; you can redistribute it and/or modify | ||
| 5 | * it under the terms of the GNU General Public License version 2 as | ||
| 6 | * published by the Free Software Foundation. | ||
| 7 | */ | ||
| 8 | |||
| 9 | #ifndef _LINUX_MFD_SYSCON_PMU_EXYNOS4_H_ | ||
| 10 | #define _LINUX_MFD_SYSCON_PMU_EXYNOS4_H_ | ||
| 11 | |||
| 12 | /* Exynos4 PMU register definitions */ | ||
| 13 | |||
| 14 | /* MIPI_PHYn_CONTROL register offset: n = 0..1 */ | ||
| 15 | #define EXYNOS4_MIPI_PHY_CONTROL(n) (0x710 + (n) * 4) | ||
| 16 | #define EXYNOS4_MIPI_PHY_ENABLE (1 << 0) | ||
| 17 | #define EXYNOS4_MIPI_PHY_SRESETN (1 << 1) | ||
| 18 | #define EXYNOS4_MIPI_PHY_MRESETN (1 << 2) | ||
| 19 | #define EXYNOS4_MIPI_PHY_RESET_MASK (3 << 1) | ||
| 20 | |||
| 21 | #endif /* _LINUX_MFD_SYSCON_PMU_EXYNOS4_H_ */ | ||
diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h index bbf85d612be5..2e75ab00dbf2 100644 --- a/include/linux/mod_devicetable.h +++ b/include/linux/mod_devicetable.h | |||
| @@ -53,9 +53,9 @@ struct ieee1394_device_id { | |||
| 53 | 53 | ||
| 54 | /** | 54 | /** |
| 55 | * struct usb_device_id - identifies USB devices for probing and hotplugging | 55 | * struct usb_device_id - identifies USB devices for probing and hotplugging |
| 56 | * @match_flags: Bit mask controlling of the other fields are used to match | 56 | * @match_flags: Bit mask controlling which of the other fields are used to |
| 57 | * against new devices. Any field except for driver_info may be used, | 57 | * match against new devices. Any field except for driver_info may be |
| 58 | * although some only make sense in conjunction with other fields. | 58 | * used, although some only make sense in conjunction with other fields. |
| 59 | * This is usually set by a USB_DEVICE_*() macro, which sets all | 59 | * This is usually set by a USB_DEVICE_*() macro, which sets all |
| 60 | * other fields in this structure except for driver_info. | 60 | * other fields in this structure except for driver_info. |
| 61 | * @idVendor: USB vendor ID for a device; numbers are assigned | 61 | * @idVendor: USB vendor ID for a device; numbers are assigned |
diff --git a/include/linux/usb.h b/include/linux/usb.h index f89c24a03bd9..7ee1b5c3b4cb 100644 --- a/include/linux/usb.h +++ b/include/linux/usb.h | |||
| @@ -82,7 +82,7 @@ struct usb_host_interface { | |||
| 82 | int extralen; | 82 | int extralen; |
| 83 | unsigned char *extra; /* Extra descriptors */ | 83 | unsigned char *extra; /* Extra descriptors */ |
| 84 | 84 | ||
| 85 | /* array of desc.bNumEndpoint endpoints associated with this | 85 | /* array of desc.bNumEndpoints endpoints associated with this |
| 86 | * interface setting. these will be in no particular order. | 86 | * interface setting. these will be in no particular order. |
| 87 | */ | 87 | */ |
| 88 | struct usb_host_endpoint *endpoint; | 88 | struct usb_host_endpoint *endpoint; |
| @@ -127,10 +127,6 @@ enum usb_interface_condition { | |||
| 127 | * to the sysfs representation for that device. | 127 | * to the sysfs representation for that device. |
| 128 | * @pm_usage_cnt: PM usage counter for this interface | 128 | * @pm_usage_cnt: PM usage counter for this interface |
| 129 | * @reset_ws: Used for scheduling resets from atomic context. | 129 | * @reset_ws: Used for scheduling resets from atomic context. |
| 130 | * @reset_running: set to 1 if the interface is currently running a | ||
| 131 | * queued reset so that usb_cancel_queued_reset() doesn't try to | ||
| 132 | * remove from the workqueue when running inside the worker | ||
| 133 | * thread. See __usb_queue_reset_device(). | ||
| 134 | * @resetting_device: USB core reset the device, so use alt setting 0 as | 130 | * @resetting_device: USB core reset the device, so use alt setting 0 as |
| 135 | * current; needs bandwidth alloc after reset. | 131 | * current; needs bandwidth alloc after reset. |
| 136 | * | 132 | * |
| @@ -181,7 +177,6 @@ struct usb_interface { | |||
| 181 | unsigned needs_remote_wakeup:1; /* driver requires remote wakeup */ | 177 | unsigned needs_remote_wakeup:1; /* driver requires remote wakeup */ |
| 182 | unsigned needs_altsetting0:1; /* switch to altsetting 0 is pending */ | 178 | unsigned needs_altsetting0:1; /* switch to altsetting 0 is pending */ |
| 183 | unsigned needs_binding:1; /* needs delayed unbind/rebind */ | 179 | unsigned needs_binding:1; /* needs delayed unbind/rebind */ |
| 184 | unsigned reset_running:1; | ||
| 185 | unsigned resetting_device:1; /* true: bandwidth alloc after reset */ | 180 | unsigned resetting_device:1; /* true: bandwidth alloc after reset */ |
| 186 | 181 | ||
| 187 | struct device dev; /* interface specific device info */ | 182 | struct device dev; /* interface specific device info */ |
diff --git a/include/linux/usb/ehci_pdriver.h b/include/linux/usb/ehci_pdriver.h index 7eb4dcd0d386..db0431b39a63 100644 --- a/include/linux/usb/ehci_pdriver.h +++ b/include/linux/usb/ehci_pdriver.h | |||
| @@ -34,6 +34,8 @@ struct usb_hcd; | |||
| 34 | * after initialization. | 34 | * after initialization. |
| 35 | * @no_io_watchdog: set to 1 if the controller does not need the I/O | 35 | * @no_io_watchdog: set to 1 if the controller does not need the I/O |
| 36 | * watchdog to run. | 36 | * watchdog to run. |
| 37 | * @reset_on_resume: set to 1 if the controller needs to be reset after | ||
| 38 | * a suspend / resume cycle (but can't detect that itself). | ||
| 37 | * | 39 | * |
| 38 | * These are general configuration options for the EHCI controller. All of | 40 | * These are general configuration options for the EHCI controller. All of |
| 39 | * these options are activating more or less workarounds for some hardware. | 41 | * these options are activating more or less workarounds for some hardware. |
| @@ -45,6 +47,8 @@ struct usb_ehci_pdata { | |||
| 45 | unsigned big_endian_desc:1; | 47 | unsigned big_endian_desc:1; |
| 46 | unsigned big_endian_mmio:1; | 48 | unsigned big_endian_mmio:1; |
| 47 | unsigned no_io_watchdog:1; | 49 | unsigned no_io_watchdog:1; |
| 50 | unsigned reset_on_resume:1; | ||
| 51 | unsigned dma_mask_64:1; | ||
| 48 | 52 | ||
| 49 | /* Turn on all power and clocks */ | 53 | /* Turn on all power and clocks */ |
| 50 | int (*power_on)(struct platform_device *pdev); | 54 | int (*power_on)(struct platform_device *pdev); |
diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h index 70ddb3943b62..e2f00fd8cd47 100644 --- a/include/linux/usb/gadget.h +++ b/include/linux/usb/gadget.h | |||
| @@ -523,6 +523,7 @@ struct usb_gadget_ops { | |||
| 523 | * enabled HNP support. | 523 | * enabled HNP support. |
| 524 | * @quirk_ep_out_aligned_size: epout requires buffer size to be aligned to | 524 | * @quirk_ep_out_aligned_size: epout requires buffer size to be aligned to |
| 525 | * MaxPacketSize. | 525 | * MaxPacketSize. |
| 526 | * @is_selfpowered: if the gadget is self-powered. | ||
| 526 | * | 527 | * |
| 527 | * Gadgets have a mostly-portable "gadget driver" implementing device | 528 | * Gadgets have a mostly-portable "gadget driver" implementing device |
| 528 | * functions, handling all usb configurations and interfaces. Gadget | 529 | * functions, handling all usb configurations and interfaces. Gadget |
| @@ -563,6 +564,7 @@ struct usb_gadget { | |||
| 563 | unsigned a_hnp_support:1; | 564 | unsigned a_hnp_support:1; |
| 564 | unsigned a_alt_hnp_support:1; | 565 | unsigned a_alt_hnp_support:1; |
| 565 | unsigned quirk_ep_out_aligned_size:1; | 566 | unsigned quirk_ep_out_aligned_size:1; |
| 567 | unsigned is_selfpowered:1; | ||
| 566 | }; | 568 | }; |
| 567 | #define work_to_gadget(w) (container_of((w), struct usb_gadget, work)) | 569 | #define work_to_gadget(w) (container_of((w), struct usb_gadget, work)) |
| 568 | 570 | ||
diff --git a/include/linux/usb/hcd.h b/include/linux/usb/hcd.h index 086bf13307e6..68b1e836dff1 100644 --- a/include/linux/usb/hcd.h +++ b/include/linux/usb/hcd.h | |||
| @@ -146,6 +146,8 @@ struct usb_hcd { | |||
| 146 | unsigned amd_resume_bug:1; /* AMD remote wakeup quirk */ | 146 | unsigned amd_resume_bug:1; /* AMD remote wakeup quirk */ |
| 147 | unsigned can_do_streams:1; /* HC supports streams */ | 147 | unsigned can_do_streams:1; /* HC supports streams */ |
| 148 | unsigned tpl_support:1; /* OTG & EH TPL support */ | 148 | unsigned tpl_support:1; /* OTG & EH TPL support */ |
| 149 | unsigned cant_recv_wakeups:1; | ||
| 150 | /* wakeup requests from downstream aren't received */ | ||
| 149 | 151 | ||
| 150 | unsigned int irq; /* irq allocated */ | 152 | unsigned int irq; /* irq allocated */ |
| 151 | void __iomem *regs; /* device memory/io */ | 153 | void __iomem *regs; /* device memory/io */ |
| @@ -453,6 +455,7 @@ extern const struct dev_pm_ops usb_hcd_pci_pm_ops; | |||
| 453 | #endif /* CONFIG_PCI */ | 455 | #endif /* CONFIG_PCI */ |
| 454 | 456 | ||
| 455 | /* pci-ish (pdev null is ok) buffer alloc/mapping support */ | 457 | /* pci-ish (pdev null is ok) buffer alloc/mapping support */ |
| 458 | void usb_init_pool_max(void); | ||
| 456 | int hcd_buffer_create(struct usb_hcd *hcd); | 459 | int hcd_buffer_create(struct usb_hcd *hcd); |
| 457 | void hcd_buffer_destroy(struct usb_hcd *hcd); | 460 | void hcd_buffer_destroy(struct usb_hcd *hcd); |
| 458 | 461 | ||
diff --git a/include/linux/usb/phy.h b/include/linux/usb/phy.h index f499c23e6342..bc91b5d380fd 100644 --- a/include/linux/usb/phy.h +++ b/include/linux/usb/phy.h | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | /* USB OTG (On The Go) defines */ | ||
| 2 | /* | 1 | /* |
| 2 | * USB PHY defines | ||
| 3 | * | 3 | * |
| 4 | * These APIs may be used between USB controllers. USB device drivers | 4 | * These APIs may be used between USB controllers. USB device drivers |
| 5 | * (for either host or peripheral roles) don't use these calls; they | 5 | * (for either host or peripheral roles) don't use these calls; they |
| @@ -106,7 +106,7 @@ struct usb_phy { | |||
| 106 | int (*set_power)(struct usb_phy *x, | 106 | int (*set_power)(struct usb_phy *x, |
| 107 | unsigned mA); | 107 | unsigned mA); |
| 108 | 108 | ||
| 109 | /* for non-OTG B devices: set transceiver into suspend mode */ | 109 | /* Set transceiver into suspend mode */ |
| 110 | int (*set_suspend)(struct usb_phy *x, | 110 | int (*set_suspend)(struct usb_phy *x, |
| 111 | int suspend); | 111 | int suspend); |
| 112 | 112 | ||
diff --git a/include/linux/usb/usb_phy_generic.h b/include/linux/usb/usb_phy_generic.h index 68adae83affc..c13632d5292e 100644 --- a/include/linux/usb/usb_phy_generic.h +++ b/include/linux/usb/usb_phy_generic.h | |||
| @@ -2,6 +2,7 @@ | |||
| 2 | #define __LINUX_USB_NOP_XCEIV_H | 2 | #define __LINUX_USB_NOP_XCEIV_H |
| 3 | 3 | ||
| 4 | #include <linux/usb/otg.h> | 4 | #include <linux/usb/otg.h> |
| 5 | #include <linux/gpio/consumer.h> | ||
| 5 | 6 | ||
| 6 | struct usb_phy_generic_platform_data { | 7 | struct usb_phy_generic_platform_data { |
| 7 | enum usb_phy_type type; | 8 | enum usb_phy_type type; |
| @@ -11,6 +12,7 @@ struct usb_phy_generic_platform_data { | |||
| 11 | unsigned int needs_vcc:1; | 12 | unsigned int needs_vcc:1; |
| 12 | unsigned int needs_reset:1; /* deprecated */ | 13 | unsigned int needs_reset:1; /* deprecated */ |
| 13 | int gpio_reset; | 14 | int gpio_reset; |
| 15 | struct gpio_desc *gpiod_vbus; | ||
| 14 | }; | 16 | }; |
| 15 | 17 | ||
| 16 | #if IS_ENABLED(CONFIG_NOP_USB_XCEIV) | 18 | #if IS_ENABLED(CONFIG_NOP_USB_XCEIV) |
