diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-04-13 20:07:21 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-04-13 20:07:21 -0400 |
| commit | 42e3a58b028e0e51746f596a11abfec01cd1c5c4 (patch) | |
| tree | b2dd1e8730359dc312519bcdaed9c52bae622990 /include/linux | |
| parent | 4fd48b45ffc4addd3c2963448b05417aa14abbf7 (diff) | |
| parent | 00fe52deb45b1a5ef42b0aa82e632e2df012eddc (diff) | |
Merge tag 'usb-4.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
Pull USB driver updates from Greg KH:
"Here's the big USB (and PHY) driver patchset for 4.1-rc1.
Everything here has been in linux-next, and the full details are below
in the shortlog. Nothing major, just the normal round of new
drivers,api updates, and other changes, mostly in the USB gadget area,
as usual"
* tag 'usb-4.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (252 commits)
drivers/usb/core: devio.c: Removed an uneeded space before tab
usb: dwc2: host: sleep USB_RESUME_TIMEOUT during resume
usb: chipidea: debug: add low power mode check before print registers
usb: chipidea: udc: bypass pullup DP when gadget connect in OTG fsm mode
usb: core: hub: use new USB_RESUME_TIMEOUT
usb: isp1760: hcd: use new USB_RESUME_TIMEOUT
usb: dwc2: hcd: use new USB_RESUME_TIMEOUT
usb: host: sl811: use new USB_RESUME_TIMEOUT
usb: host: r8a66597: use new USB_RESUME_TIMEOUT
usb: host: oxu210hp: use new USB_RESUME_TIMEOUT
usb: host: fusbh200: use new USB_RESUME_TIMEOUT
usb: host: fotg210: use new USB_RESUME_TIMEOUT
usb: host: isp116x: use new USB_RESUME_TIMEOUT
usb: musb: use new USB_RESUME_TIMEOUT
usb: host: uhci: use new USB_RESUME_TIMEOUT
usb: host: ehci: use new USB_RESUME_TIMEOUT
usb: host: xhci: use new USB_RESUME_TIMEOUT
usb: define a generic USB_RESUME_TIMEOUT macro
usb: musb: dsps: fix build on i386 when COMPILE_TEST is set
ehci-hub: use USB_DT_HUB
...
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/mfd/syscon/exynos5-pmu.h | 3 | ||||
| -rw-r--r-- | include/linux/pci_ids.h | 2 | ||||
| -rw-r--r-- | include/linux/usb.h | 26 | ||||
| -rw-r--r-- | include/linux/usb/chipidea.h | 2 | ||||
| -rw-r--r-- | include/linux/usb/composite.h | 3 | ||||
| -rw-r--r-- | include/linux/usb/gadget.h | 9 | ||||
| -rw-r--r-- | include/linux/usb/msm_hsusb.h | 4 | ||||
| -rw-r--r-- | include/linux/usb/otg-fsm.h | 2 | ||||
| -rw-r--r-- | include/linux/usb/renesas_usbhs.h | 2 | ||||
| -rw-r--r-- | include/linux/uwb/umc.h | 2 |
10 files changed, 48 insertions, 7 deletions
diff --git a/include/linux/mfd/syscon/exynos5-pmu.h b/include/linux/mfd/syscon/exynos5-pmu.h index 00ef24bf6ede..9352adc95de6 100644 --- a/include/linux/mfd/syscon/exynos5-pmu.h +++ b/include/linux/mfd/syscon/exynos5-pmu.h | |||
| @@ -36,6 +36,9 @@ | |||
| 36 | #define EXYNOS5420_MTCADC_PHY_CONTROL (0x724) | 36 | #define EXYNOS5420_MTCADC_PHY_CONTROL (0x724) |
| 37 | #define EXYNOS5420_DPTX_PHY_CONTROL (0x728) | 37 | #define EXYNOS5420_DPTX_PHY_CONTROL (0x728) |
| 38 | 38 | ||
| 39 | /* Exynos5433 specific register definitions */ | ||
| 40 | #define EXYNOS5433_USBHOST30_PHY_CONTROL (0x728) | ||
| 41 | |||
| 39 | #define EXYNOS5_PHY_ENABLE BIT(0) | 42 | #define EXYNOS5_PHY_ENABLE BIT(0) |
| 40 | 43 | ||
| 41 | #define EXYNOS5_MIPI_PHY_S_RESETN BIT(1) | 44 | #define EXYNOS5_MIPI_PHY_S_RESETN BIT(1) |
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index e63c02a93f6b..38cff8f6716d 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
| @@ -2315,6 +2315,8 @@ | |||
| 2315 | #define PCI_VENDOR_ID_CENATEK 0x16CA | 2315 | #define PCI_VENDOR_ID_CENATEK 0x16CA |
| 2316 | #define PCI_DEVICE_ID_CENATEK_IDE 0x0001 | 2316 | #define PCI_DEVICE_ID_CENATEK_IDE 0x0001 |
| 2317 | 2317 | ||
| 2318 | #define PCI_VENDOR_ID_SYNOPSYS 0x16c3 | ||
| 2319 | |||
| 2318 | #define PCI_VENDOR_ID_VITESSE 0x1725 | 2320 | #define PCI_VENDOR_ID_VITESSE 0x1725 |
| 2319 | #define PCI_DEVICE_ID_VITESSE_VSC7174 0x7174 | 2321 | #define PCI_DEVICE_ID_VITESSE_VSC7174 0x7174 |
| 2320 | 2322 | ||
diff --git a/include/linux/usb.h b/include/linux/usb.h index 7ee1b5c3b4cb..447fe29b55b4 100644 --- a/include/linux/usb.h +++ b/include/linux/usb.h | |||
| @@ -205,6 +205,32 @@ void usb_put_intf(struct usb_interface *intf); | |||
| 205 | #define USB_MAXINTERFACES 32 | 205 | #define USB_MAXINTERFACES 32 |
| 206 | #define USB_MAXIADS (USB_MAXINTERFACES/2) | 206 | #define USB_MAXIADS (USB_MAXINTERFACES/2) |
| 207 | 207 | ||
| 208 | /* | ||
| 209 | * USB Resume Timer: Every Host controller driver should drive the resume | ||
| 210 | * signalling on the bus for the amount of time defined by this macro. | ||
| 211 | * | ||
| 212 | * That way we will have a 'stable' behavior among all HCDs supported by Linux. | ||
| 213 | * | ||
| 214 | * Note that the USB Specification states we should drive resume for *at least* | ||
| 215 | * 20 ms, but it doesn't give an upper bound. This creates two possible | ||
| 216 | * situations which we want to avoid: | ||
| 217 | * | ||
| 218 | * (a) sometimes an msleep(20) might expire slightly before 20 ms, which causes | ||
| 219 | * us to fail USB Electrical Tests, thus failing Certification | ||
| 220 | * | ||
| 221 | * (b) Some (many) devices actually need more than 20 ms of resume signalling, | ||
| 222 | * and while we can argue that's against the USB Specification, we don't have | ||
| 223 | * control over which devices a certification laboratory will be using for | ||
| 224 | * certification. If CertLab uses a device which was tested against Windows and | ||
| 225 | * that happens to have relaxed resume signalling rules, we might fall into | ||
| 226 | * situations where we fail interoperability and electrical tests. | ||
| 227 | * | ||
| 228 | * In order to avoid both conditions, we're using a 40 ms resume timeout, which | ||
| 229 | * should cope with both LPJ calibration errors and devices not following every | ||
| 230 | * detail of the USB Specification. | ||
| 231 | */ | ||
| 232 | #define USB_RESUME_TIMEOUT 40 /* ms */ | ||
| 233 | |||
| 208 | /** | 234 | /** |
| 209 | * struct usb_interface_cache - long-term representation of a device interface | 235 | * struct usb_interface_cache - long-term representation of a device interface |
| 210 | * @num_altsetting: number of altsettings defined. | 236 | * @num_altsetting: number of altsettings defined. |
diff --git a/include/linux/usb/chipidea.h b/include/linux/usb/chipidea.h index 535997a6681b..ab94f78c4dd1 100644 --- a/include/linux/usb/chipidea.h +++ b/include/linux/usb/chipidea.h | |||
| @@ -19,6 +19,7 @@ struct ci_hdrc_platform_data { | |||
| 19 | enum usb_phy_interface phy_mode; | 19 | enum usb_phy_interface phy_mode; |
| 20 | unsigned long flags; | 20 | unsigned long flags; |
| 21 | #define CI_HDRC_REGS_SHARED BIT(0) | 21 | #define CI_HDRC_REGS_SHARED BIT(0) |
| 22 | #define CI_HDRC_SUPPORTS_RUNTIME_PM BIT(2) | ||
| 22 | #define CI_HDRC_DISABLE_STREAMING BIT(3) | 23 | #define CI_HDRC_DISABLE_STREAMING BIT(3) |
| 23 | /* | 24 | /* |
| 24 | * Only set it when DCCPARAMS.DC==1 and DCCPARAMS.HC==1, | 25 | * Only set it when DCCPARAMS.DC==1 and DCCPARAMS.HC==1, |
| @@ -27,6 +28,7 @@ struct ci_hdrc_platform_data { | |||
| 27 | #define CI_HDRC_DUAL_ROLE_NOT_OTG BIT(4) | 28 | #define CI_HDRC_DUAL_ROLE_NOT_OTG BIT(4) |
| 28 | #define CI_HDRC_IMX28_WRITE_FIX BIT(5) | 29 | #define CI_HDRC_IMX28_WRITE_FIX BIT(5) |
| 29 | #define CI_HDRC_FORCE_FULLSPEED BIT(6) | 30 | #define CI_HDRC_FORCE_FULLSPEED BIT(6) |
| 31 | #define CI_HDRC_TURN_VBUS_EARLY_ON BIT(7) | ||
| 30 | enum usb_dr_mode dr_mode; | 32 | enum usb_dr_mode dr_mode; |
| 31 | #define CI_HDRC_CONTROLLER_RESET_EVENT 0 | 33 | #define CI_HDRC_CONTROLLER_RESET_EVENT 0 |
| 32 | #define CI_HDRC_CONTROLLER_STOPPED_EVENT 1 | 34 | #define CI_HDRC_CONTROLLER_STOPPED_EVENT 1 |
diff --git a/include/linux/usb/composite.h b/include/linux/usb/composite.h index 3d87defcc527..2511469a9904 100644 --- a/include/linux/usb/composite.h +++ b/include/linux/usb/composite.h | |||
| @@ -148,6 +148,7 @@ struct usb_os_desc_table { | |||
| 148 | * @disable: (REQUIRED) Indicates the function should be disabled. Reasons | 148 | * @disable: (REQUIRED) Indicates the function should be disabled. Reasons |
| 149 | * include host resetting or reconfiguring the gadget, and disconnection. | 149 | * include host resetting or reconfiguring the gadget, and disconnection. |
| 150 | * @setup: Used for interface-specific control requests. | 150 | * @setup: Used for interface-specific control requests. |
| 151 | * @req_match: Tests if a given class request can be handled by this function. | ||
| 151 | * @suspend: Notifies functions when the host stops sending USB traffic. | 152 | * @suspend: Notifies functions when the host stops sending USB traffic. |
| 152 | * @resume: Notifies functions when the host restarts USB traffic. | 153 | * @resume: Notifies functions when the host restarts USB traffic. |
| 153 | * @get_status: Returns function status as a reply to | 154 | * @get_status: Returns function status as a reply to |
| @@ -213,6 +214,8 @@ struct usb_function { | |||
| 213 | void (*disable)(struct usb_function *); | 214 | void (*disable)(struct usb_function *); |
| 214 | int (*setup)(struct usb_function *, | 215 | int (*setup)(struct usb_function *, |
| 215 | const struct usb_ctrlrequest *); | 216 | const struct usb_ctrlrequest *); |
| 217 | bool (*req_match)(struct usb_function *, | ||
| 218 | const struct usb_ctrlrequest *); | ||
| 216 | void (*suspend)(struct usb_function *); | 219 | void (*suspend)(struct usb_function *); |
| 217 | void (*resume)(struct usb_function *); | 220 | void (*resume)(struct usb_function *); |
| 218 | 221 | ||
diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h index e2f00fd8cd47..4f3dfb7d0654 100644 --- a/include/linux/usb/gadget.h +++ b/include/linux/usb/gadget.h | |||
| @@ -190,7 +190,7 @@ struct usb_ep { | |||
| 190 | * @ep:the endpoint being configured | 190 | * @ep:the endpoint being configured |
| 191 | * @maxpacket_limit:value of maximum packet size limit | 191 | * @maxpacket_limit:value of maximum packet size limit |
| 192 | * | 192 | * |
| 193 | * This function shoud be used only in UDC drivers to initialize endpoint | 193 | * This function should be used only in UDC drivers to initialize endpoint |
| 194 | * (usually in probe function). | 194 | * (usually in probe function). |
| 195 | */ | 195 | */ |
| 196 | static inline void usb_ep_set_maxpacket_limit(struct usb_ep *ep, | 196 | static inline void usb_ep_set_maxpacket_limit(struct usb_ep *ep, |
| @@ -474,6 +474,7 @@ struct usb_dcd_config_params { | |||
| 474 | 474 | ||
| 475 | struct usb_gadget; | 475 | struct usb_gadget; |
| 476 | struct usb_gadget_driver; | 476 | struct usb_gadget_driver; |
| 477 | struct usb_udc; | ||
| 477 | 478 | ||
| 478 | /* the rest of the api to the controller hardware: device operations, | 479 | /* the rest of the api to the controller hardware: device operations, |
| 479 | * which don't involve endpoints (or i/o). | 480 | * which don't involve endpoints (or i/o). |
| @@ -496,6 +497,7 @@ struct usb_gadget_ops { | |||
| 496 | /** | 497 | /** |
| 497 | * struct usb_gadget - represents a usb slave device | 498 | * struct usb_gadget - represents a usb slave device |
| 498 | * @work: (internal use) Workqueue to be used for sysfs_notify() | 499 | * @work: (internal use) Workqueue to be used for sysfs_notify() |
| 500 | * @udc: struct usb_udc pointer for this gadget | ||
| 499 | * @ops: Function pointers used to access hardware-specific operations. | 501 | * @ops: Function pointers used to access hardware-specific operations. |
| 500 | * @ep0: Endpoint zero, used when reading or writing responses to | 502 | * @ep0: Endpoint zero, used when reading or writing responses to |
| 501 | * driver setup() requests | 503 | * driver setup() requests |
| @@ -545,6 +547,7 @@ struct usb_gadget_ops { | |||
| 545 | */ | 547 | */ |
| 546 | struct usb_gadget { | 548 | struct usb_gadget { |
| 547 | struct work_struct work; | 549 | struct work_struct work; |
| 550 | struct usb_udc *udc; | ||
| 548 | /* readonly to gadget driver */ | 551 | /* readonly to gadget driver */ |
| 549 | const struct usb_gadget_ops *ops; | 552 | const struct usb_gadget_ops *ops; |
| 550 | struct usb_ep *ep0; | 553 | struct usb_ep *ep0; |
| @@ -1029,6 +1032,10 @@ extern void usb_gadget_udc_reset(struct usb_gadget *gadget, | |||
| 1029 | extern void usb_gadget_giveback_request(struct usb_ep *ep, | 1032 | extern void usb_gadget_giveback_request(struct usb_ep *ep, |
| 1030 | struct usb_request *req); | 1033 | struct usb_request *req); |
| 1031 | 1034 | ||
| 1035 | /*-------------------------------------------------------------------------*/ | ||
| 1036 | |||
| 1037 | /* utility to update vbus status for udc core, it may be scheduled */ | ||
