diff options
author | Eric Paris <eparis@redhat.com> | 2014-03-07 11:41:32 -0500 |
---|---|---|
committer | Eric Paris <eparis@redhat.com> | 2014-03-07 11:41:32 -0500 |
commit | b7d3622a39fde7658170b7f3cf6c6889bb8db30d (patch) | |
tree | 64f4e781ecb2a85d675e234072b988560bcd25f1 /include/linux/usb.h | |
parent | f3411cb2b2e396a41ed3a439863f028db7140a34 (diff) | |
parent | d8ec26d7f8287f5788a494f56e8814210f0e64be (diff) |
Merge tag 'v3.13' into for-3.15
Linux 3.13
Conflicts:
include/net/xfrm.h
Simple merge where v3.13 removed 'extern' from definitions and the audit
tree did s/u32/unsigned int/ to the same definitions.
Diffstat (limited to 'include/linux/usb.h')
-rw-r--r-- | include/linux/usb.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/include/linux/usb.h b/include/linux/usb.h index 001629cd1a97..512ab162832c 100644 --- a/include/linux/usb.h +++ b/include/linux/usb.h | |||
@@ -475,7 +475,8 @@ struct usb3_lpm_parameters { | |||
475 | * @lpm_capable: device supports LPM | 475 | * @lpm_capable: device supports LPM |
476 | * @usb2_hw_lpm_capable: device can perform USB2 hardware LPM | 476 | * @usb2_hw_lpm_capable: device can perform USB2 hardware LPM |
477 | * @usb2_hw_lpm_besl_capable: device can perform USB2 hardware BESL LPM | 477 | * @usb2_hw_lpm_besl_capable: device can perform USB2 hardware BESL LPM |
478 | * @usb2_hw_lpm_enabled: USB2 hardware LPM enabled | 478 | * @usb2_hw_lpm_enabled: USB2 hardware LPM is enabled |
479 | * @usb2_hw_lpm_allowed: Userspace allows USB 2.0 LPM to be enabled | ||
479 | * @usb3_lpm_enabled: USB3 hardware LPM enabled | 480 | * @usb3_lpm_enabled: USB3 hardware LPM enabled |
480 | * @string_langid: language ID for strings | 481 | * @string_langid: language ID for strings |
481 | * @product: iProduct string, if present (static) | 482 | * @product: iProduct string, if present (static) |
@@ -548,6 +549,7 @@ struct usb_device { | |||
548 | unsigned usb2_hw_lpm_capable:1; | 549 | unsigned usb2_hw_lpm_capable:1; |
549 | unsigned usb2_hw_lpm_besl_capable:1; | 550 | unsigned usb2_hw_lpm_besl_capable:1; |
550 | unsigned usb2_hw_lpm_enabled:1; | 551 | unsigned usb2_hw_lpm_enabled:1; |
552 | unsigned usb2_hw_lpm_allowed:1; | ||
551 | unsigned usb3_lpm_enabled:1; | 553 | unsigned usb3_lpm_enabled:1; |
552 | int string_langid; | 554 | int string_langid; |
553 | 555 | ||
@@ -702,7 +704,7 @@ extern int usb_alloc_streams(struct usb_interface *interface, | |||
702 | unsigned int num_streams, gfp_t mem_flags); | 704 | unsigned int num_streams, gfp_t mem_flags); |
703 | 705 | ||
704 | /* Reverts a group of bulk endpoints back to not using stream IDs. */ | 706 | /* Reverts a group of bulk endpoints back to not using stream IDs. */ |
705 | extern void usb_free_streams(struct usb_interface *interface, | 707 | extern int usb_free_streams(struct usb_interface *interface, |
706 | struct usb_host_endpoint **eps, unsigned int num_eps, | 708 | struct usb_host_endpoint **eps, unsigned int num_eps, |
707 | gfp_t mem_flags); | 709 | gfp_t mem_flags); |
708 | 710 | ||
@@ -1209,11 +1211,13 @@ struct usb_anchor { | |||
1209 | struct list_head urb_list; | 1211 | struct list_head urb_list; |
1210 | wait_queue_head_t wait; | 1212 | wait_queue_head_t wait; |
1211 | spinlock_t lock; | 1213 | spinlock_t lock; |
1214 | atomic_t suspend_wakeups; | ||
1212 | unsigned int poisoned:1; | 1215 | unsigned int poisoned:1; |
1213 | }; | 1216 | }; |
1214 | 1217 | ||
1215 | static inline void init_usb_anchor(struct usb_anchor *anchor) | 1218 | static inline void init_usb_anchor(struct usb_anchor *anchor) |
1216 | { | 1219 | { |
1220 | memset(anchor, 0, sizeof(*anchor)); | ||
1217 | INIT_LIST_HEAD(&anchor->urb_list); | 1221 | INIT_LIST_HEAD(&anchor->urb_list); |
1218 | init_waitqueue_head(&anchor->wait); | 1222 | init_waitqueue_head(&anchor->wait); |
1219 | spin_lock_init(&anchor->lock); | 1223 | spin_lock_init(&anchor->lock); |
@@ -1260,6 +1264,8 @@ typedef void (*usb_complete_t)(struct urb *); | |||
1260 | * @sg: scatter gather buffer list, the buffer size of each element in | 1264 | * @sg: scatter gather buffer list, the buffer size of each element in |
1261 | * the list (except the last) must be divisible by the endpoint's | 1265 | * the list (except the last) must be divisible by the endpoint's |
1262 | * max packet size if no_sg_constraint isn't set in 'struct usb_bus' | 1266 | * max packet size if no_sg_constraint isn't set in 'struct usb_bus' |
1267 | * (FIXME: scatter-gather under xHCI is broken for periodic transfers. | ||
1268 | * Do not use urb->sg for interrupt endpoints for now, only bulk.) | ||
1263 | * @num_mapped_sgs: (internal) number of mapped sg entries | 1269 | * @num_mapped_sgs: (internal) number of mapped sg entries |
1264 | * @num_sgs: number of entries in the sg list | 1270 | * @num_sgs: number of entries in the sg list |
1265 | * @transfer_buffer_length: How big is transfer_buffer. The transfer may | 1271 | * @transfer_buffer_length: How big is transfer_buffer. The transfer may |
@@ -1574,6 +1580,8 @@ extern void usb_kill_anchored_urbs(struct usb_anchor *anchor); | |||
1574 | extern void usb_poison_anchored_urbs(struct usb_anchor *anchor); | 1580 | extern void usb_poison_anchored_urbs(struct usb_anchor *anchor); |
1575 | extern void usb_unpoison_anchored_urbs(struct usb_anchor *anchor); | 1581 | extern void usb_unpoison_anchored_urbs(struct usb_anchor *anchor); |
1576 | extern void usb_unlink_anchored_urbs(struct usb_anchor *anchor); | 1582 | extern void usb_unlink_anchored_urbs(struct usb_anchor *anchor); |
1583 | extern void usb_anchor_suspend_wakeups(struct usb_anchor *anchor); | ||
1584 | extern void usb_anchor_resume_wakeups(struct usb_anchor *anchor); | ||
1577 | extern void usb_anchor_urb(struct urb *urb, struct usb_anchor *anchor); | 1585 | extern void usb_anchor_urb(struct urb *urb, struct usb_anchor *anchor); |
1578 | extern void usb_unanchor_urb(struct urb *urb); | 1586 | extern void usb_unanchor_urb(struct urb *urb); |
1579 | extern int usb_wait_anchor_empty_timeout(struct usb_anchor *anchor, | 1587 | extern int usb_wait_anchor_empty_timeout(struct usb_anchor *anchor, |