diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/tty_flip.h | 7 | ||||
| -rw-r--r-- | include/linux/usb.h | 53 | ||||
| -rw-r--r-- | include/linux/usb/Kbuild | 1 | ||||
| -rw-r--r-- | include/linux/usb/atmel_usba_udc.h | 1 | ||||
| -rw-r--r-- | include/linux/usb/ch9.h | 2 | ||||
| -rw-r--r-- | include/linux/usb/musb.h | 23 | ||||
| -rw-r--r-- | include/linux/usb/otg.h | 25 | ||||
| -rw-r--r-- | include/linux/usb/quirks.h | 3 | ||||
| -rw-r--r-- | include/linux/usb/serial.h | 13 | ||||
| -rw-r--r-- | include/linux/usb/vstusb.h | 71 |
10 files changed, 74 insertions, 125 deletions
diff --git a/include/linux/tty_flip.h b/include/linux/tty_flip.h index eb677cf56106..9239d033a0a3 100644 --- a/include/linux/tty_flip.h +++ b/include/linux/tty_flip.h | |||
| @@ -2,8 +2,8 @@ | |||
| 2 | #define _LINUX_TTY_FLIP_H | 2 | #define _LINUX_TTY_FLIP_H |
| 3 | 3 | ||
| 4 | extern int tty_buffer_request_room(struct tty_struct *tty, size_t size); | 4 | extern int tty_buffer_request_room(struct tty_struct *tty, size_t size); |
| 5 | extern int tty_insert_flip_string(struct tty_struct *tty, const unsigned char *chars, size_t size); | ||
| 6 | extern int tty_insert_flip_string_flags(struct tty_struct *tty, const unsigned char *chars, const char *flags, size_t size); | 5 | extern int tty_insert_flip_string_flags(struct tty_struct *tty, const unsigned char *chars, const char *flags, size_t size); |
| 6 | extern int tty_insert_flip_string_fixed_flag(struct tty_struct *tty, const unsigned char *chars, char flag, size_t size); | ||
| 7 | extern int tty_prepare_flip_string(struct tty_struct *tty, unsigned char **chars, size_t size); | 7 | extern int tty_prepare_flip_string(struct tty_struct *tty, unsigned char **chars, size_t size); |
| 8 | extern int tty_prepare_flip_string_flags(struct tty_struct *tty, unsigned char **chars, char **flags, size_t size); | 8 | extern int tty_prepare_flip_string_flags(struct tty_struct *tty, unsigned char **chars, char **flags, size_t size); |
| 9 | void tty_schedule_flip(struct tty_struct *tty); | 9 | void tty_schedule_flip(struct tty_struct *tty); |
| @@ -20,4 +20,9 @@ static inline int tty_insert_flip_char(struct tty_struct *tty, | |||
| 20 | return tty_insert_flip_string_flags(tty, &ch, &flag, 1); | 20 | return tty_insert_flip_string_flags(tty, &ch, &flag, 1); |
| 21 | } | 21 | } |
| 22 | 22 | ||
| 23 | static inline int tty_insert_flip_string(struct tty_struct *tty, const unsigned char *chars, size_t size) | ||
| 24 | { | ||
| 25 | return tty_insert_flip_string_fixed_flag(tty, chars, TTY_NORMAL, size); | ||
| 26 | } | ||
| 27 | |||
| 23 | #endif /* _LINUX_TTY_FLIP_H */ | 28 | #endif /* _LINUX_TTY_FLIP_H */ |
diff --git a/include/linux/usb.h b/include/linux/usb.h index 332eaea61021..3492abf82e75 100644 --- a/include/linux/usb.h +++ b/include/linux/usb.h | |||
| @@ -122,7 +122,6 @@ enum usb_interface_condition { | |||
| 122 | * number from the USB core by calling usb_register_dev(). | 122 | * number from the USB core by calling usb_register_dev(). |
| 123 | * @condition: binding state of the interface: not bound, binding | 123 | * @condition: binding state of the interface: not bound, binding |
| 124 | * (in probe()), bound to a driver, or unbinding (in disconnect()) | 124 | * (in probe()), bound to a driver, or unbinding (in disconnect()) |
| 125 | * @is_active: flag set when the interface is bound and not suspended. | ||
| 126 | * @sysfs_files_created: sysfs attributes exist | 125 | * @sysfs_files_created: sysfs attributes exist |
| 127 | * @ep_devs_created: endpoint child pseudo-devices exist | 126 | * @ep_devs_created: endpoint child pseudo-devices exist |
| 128 | * @unregistering: flag set when the interface is being unregistered | 127 | * @unregistering: flag set when the interface is being unregistered |
| @@ -135,8 +134,7 @@ enum usb_interface_condition { | |||
| 135 | * @dev: driver model's view of this device | 134 | * @dev: driver model's view of this device |
| 136 | * @usb_dev: if an interface is bound to the USB major, this will point | 135 | * @usb_dev: if an interface is bound to the USB major, this will point |
| 137 | * to the sysfs representation for that device. | 136 | * to the sysfs representation for that device. |
| 138 | * @pm_usage_cnt: PM usage counter for this interface; autosuspend is not | 137 | * @pm_usage_cnt: PM usage counter for this interface |
| 139 | * allowed unless the counter is 0. | ||
| 140 | * @reset_ws: Used for scheduling resets from atomic context. | 138 | * @reset_ws: Used for scheduling resets from atomic context. |
| 141 | * @reset_running: set to 1 if the interface is currently running a | 139 | * @reset_running: set to 1 if the interface is currently running a |
| 142 | * queued reset so that usb_cancel_queued_reset() doesn't try to | 140 | * queued reset so that usb_cancel_queued_reset() doesn't try to |
| @@ -184,7 +182,6 @@ struct usb_interface { | |||
| 184 | int minor; /* minor number this interface is | 182 | int minor; /* minor number this interface is |
| 185 | * bound to */ | 183 | * bound to */ |
| 186 | enum usb_interface_condition condition; /* state of binding */ | 184 | enum usb_interface_condition condition; /* state of binding */ |
| 187 | unsigned is_active:1; /* the interface is not suspended */ | ||
| 188 | unsigned sysfs_files_created:1; /* the sysfs attributes exist */ | 185 | unsigned sysfs_files_created:1; /* the sysfs attributes exist */ |
| 189 | unsigned ep_devs_created:1; /* endpoint "devices" exist */ | 186 | unsigned ep_devs_created:1; /* endpoint "devices" exist */ |
| 190 | unsigned unregistering:1; /* unregistration is in progress */ | 187 | unsigned unregistering:1; /* unregistration is in progress */ |
| @@ -401,7 +398,6 @@ struct usb_tt; | |||
| 401 | * @portnum: parent port number (origin 1) | 398 | * @portnum: parent port number (origin 1) |
| 402 | * @level: number of USB hub ancestors | 399 | * @level: number of USB hub ancestors |
| 403 | * @can_submit: URBs may be submitted | 400 | * @can_submit: URBs may be submitted |
| 404 | * @discon_suspended: disconnected while suspended | ||
| 405 | * @persist_enabled: USB_PERSIST enabled for this device | 401 | * @persist_enabled: USB_PERSIST enabled for this device |
| 406 | * @have_langid: whether string_langid is valid | 402 | * @have_langid: whether string_langid is valid |
| 407 | * @authorized: policy has said we can use it; | 403 | * @authorized: policy has said we can use it; |
| @@ -421,20 +417,15 @@ struct usb_tt; | |||
| 421 | * @usbfs_dentry: usbfs dentry entry for the device | 417 | * @usbfs_dentry: usbfs dentry entry for the device |
| 422 | * @maxchild: number of ports if hub | 418 | * @maxchild: number of ports if hub |
| 423 | * @children: child devices - USB devices that are attached to this hub | 419 | * @children: child devices - USB devices that are attached to this hub |
| 424 | * @pm_usage_cnt: usage counter for autosuspend | ||
| 425 | * @quirks: quirks of the whole device | 420 | * @quirks: quirks of the whole device |
| 426 | * @urbnum: number of URBs submitted for the whole device | 421 | * @urbnum: number of URBs submitted for the whole device |
| 427 | * @active_duration: total time device is not suspended | 422 | * @active_duration: total time device is not suspended |
| 428 | * @autosuspend: for delayed autosuspends | ||
| 429 | * @autoresume: for autoresumes requested while in_interrupt | ||
| 430 | * @pm_mutex: protects PM operations | ||
| 431 | * @last_busy: time of last use | 423 | * @last_busy: time of last use |
| 432 | * @autosuspend_delay: in jiffies | 424 | * @autosuspend_delay: in jiffies |
| 433 | * @connect_time: time device was first connected | 425 | * @connect_time: time device was first connected |
| 434 | * @do_remote_wakeup: remote wakeup should be enabled | 426 | * @do_remote_wakeup: remote wakeup should be enabled |
| 435 | * @reset_resume: needs reset instead of resume | 427 | * @reset_resume: needs reset instead of resume |
| 436 | * @autosuspend_disabled: autosuspend disabled by the user | 428 | * @autosuspend_disabled: autosuspend disabled by the user |
| 437 | * @skip_sys_resume: skip the next system resume | ||
| 438 | * @wusb_dev: if this is a Wireless USB device, link to the WUSB | 429 | * @wusb_dev: if this is a Wireless USB device, link to the WUSB |
| 439 | * specific data for the device. | 430 | * specific data for the device. |
| 440 | * @slot_id: Slot ID assigned by xHCI | 431 | * @slot_id: Slot ID assigned by xHCI |
| @@ -475,7 +466,6 @@ struct usb_device { | |||
| 475 | u8 level; | 466 | u8 level; |
| 476 | 467 | ||
| 477 | unsigned can_submit:1; | 468 | unsigned can_submit:1; |
| 478 | unsigned discon_suspended:1; | ||
| 479 | unsigned persist_enabled:1; | 469 | unsigned persist_enabled:1; |
| 480 | unsigned have_langid:1; | 470 | unsigned have_langid:1; |
| 481 | unsigned authorized:1; | 471 | unsigned authorized:1; |
| @@ -499,17 +489,12 @@ struct usb_device { | |||
| 499 | int maxchild; | 489 | int maxchild; |
| 500 | struct usb_device *children[USB_MAXCHILDREN]; | 490 | struct usb_device *children[USB_MAXCHILDREN]; |
| 501 | 491 | ||
| 502 | int pm_usage_cnt; | ||
| 503 | u32 quirks; | 492 | u32 quirks; |
| 504 | atomic_t urbnum; | 493 | atomic_t urbnum; |
| 505 | 494 | ||
| 506 | unsigned long active_duration; | 495 | unsigned long active_duration; |
| 507 | 496 | ||
| 508 | #ifdef CONFIG_PM | 497 | #ifdef CONFIG_PM |
| 509 | struct delayed_work autosuspend; | ||
| 510 | struct work_struct autoresume; | ||
| 511 | struct mutex pm_mutex; | ||
| 512 | |||
| 513 | unsigned long last_busy; | 498 | unsigned long last_busy; |
| 514 | int autosuspend_delay; | 499 | int autosuspend_delay; |
| 515 | unsigned long connect_time; | 500 | unsigned long connect_time; |
| @@ -517,7 +502,6 @@ struct usb_device { | |||
| 517 | unsigned do_remote_wakeup:1; | 502 | unsigned do_remote_wakeup:1; |
| 518 | unsigned reset_resume:1; | 503 | unsigned reset_resume:1; |
| 519 | unsigned autosuspend_disabled:1; | 504 | unsigned autosuspend_disabled:1; |
| 520 | unsigned skip_sys_resume:1; | ||
| 521 | #endif | 505 | #endif |
| 522 | struct wusb_dev *wusb_dev; | 506 | struct wusb_dev *wusb_dev; |
| 523 | int slot_id; | 507 | int slot_id; |
| @@ -542,21 +526,15 @@ extern struct usb_device *usb_find_device(u16 vendor_id, u16 product_id); | |||
| 542 | 526 | ||
| 543 | /* USB autosuspend and autoresume */ | 527 | /* USB autosuspend and autoresume */ |
| 544 | #ifdef CONFIG_USB_SUSPEND | 528 | #ifdef CONFIG_USB_SUSPEND |
| 529 | extern int usb_enable_autosuspend(struct usb_device *udev); | ||
| 530 | extern int usb_disable_autosuspend(struct usb_device *udev); | ||
| 531 | |||
| 545 | extern int usb_autopm_get_interface(struct usb_interface *intf); | 532 | extern int usb_autopm_get_interface(struct usb_interface *intf); |
| 546 | extern void usb_autopm_put_interface(struct usb_interface *intf); | 533 | extern void usb_autopm_put_interface(struct usb_interface *intf); |
| 547 | extern int usb_autopm_get_interface_async(struct usb_interface *intf); | 534 | extern int usb_autopm_get_interface_async(struct usb_interface *intf); |
| 548 | extern void usb_autopm_put_interface_async(struct usb_interface *intf); | 535 | extern void usb_autopm_put_interface_async(struct usb_interface *intf); |
| 549 | 536 | extern void usb_autopm_get_interface_no_resume(struct usb_interface *intf); | |
| 550 | static inline void usb_autopm_get_interface_no_resume( | 537 | extern void usb_autopm_put_interface_no_suspend(struct usb_interface *intf); |
| 551 | struct usb_interface *intf) | ||
| 552 | { | ||
| 553 | atomic_inc(&intf->pm_usage_cnt); | ||
| 554 | } | ||
| 555 | static inline void usb_autopm_put_interface_no_suspend( | ||
| 556 | struct usb_interface *intf) | ||
| 557 | { | ||
| 558 | atomic_dec(&intf->pm_usage_cnt); | ||
| 559 | } | ||
| 560 | 538 | ||
| 561 | static inline void usb_mark_last_busy(struct usb_device *udev) | 539 | static inline void usb_mark_last_busy(struct usb_device *udev) |
| 562 | { | 540 | { |
| @@ -565,6 +543,11 @@ static inline void usb_mark_last_busy(struct usb_device *udev) | |||
| 565 | 543 | ||
| 566 | #else | 544 | #else |
| 567 | 545 | ||
| 546 | static inline int usb_enable_autosuspend(struct usb_device *udev) | ||
