diff options
Diffstat (limited to 'include/linux/usb/hcd.h')
-rw-r--r-- | include/linux/usb/hcd.h | 40 |
1 files changed, 15 insertions, 25 deletions
diff --git a/include/linux/usb/hcd.h b/include/linux/usb/hcd.h index d28cc78a38e4..c5fdb148fc02 100644 --- a/include/linux/usb/hcd.h +++ b/include/linux/usb/hcd.h | |||
@@ -93,6 +93,12 @@ struct usb_hcd { | |||
93 | */ | 93 | */ |
94 | const struct hc_driver *driver; /* hw-specific hooks */ | 94 | const struct hc_driver *driver; /* hw-specific hooks */ |
95 | 95 | ||
96 | /* | ||
97 | * OTG and some Host controllers need software interaction with phys; | ||
98 | * other external phys should be software-transparent | ||
99 | */ | ||
100 | struct usb_phy *phy; | ||
101 | |||
96 | /* Flags that need to be manipulated atomically because they can | 102 | /* Flags that need to be manipulated atomically because they can |
97 | * change while the host controller is running. Always use | 103 | * change while the host controller is running. Always use |
98 | * set_bit() or clear_bit() to change their values. | 104 | * set_bit() or clear_bit() to change their values. |
@@ -126,8 +132,6 @@ struct usb_hcd { | |||
126 | unsigned wireless:1; /* Wireless USB HCD */ | 132 | unsigned wireless:1; /* Wireless USB HCD */ |
127 | unsigned authorized_default:1; | 133 | unsigned authorized_default:1; |
128 | unsigned has_tt:1; /* Integrated TT in root hub */ | 134 | unsigned has_tt:1; /* Integrated TT in root hub */ |
129 | unsigned broken_pci_sleep:1; /* Don't put the | ||
130 | controller in PCI-D3 for system sleep */ | ||
131 | 135 | ||
132 | unsigned int irq; /* irq allocated */ | 136 | unsigned int irq; /* irq allocated */ |
133 | void __iomem *regs; /* device memory/io */ | 137 | void __iomem *regs; /* device memory/io */ |
@@ -344,6 +348,15 @@ struct hc_driver { | |||
344 | */ | 348 | */ |
345 | int (*update_device)(struct usb_hcd *, struct usb_device *); | 349 | int (*update_device)(struct usb_hcd *, struct usb_device *); |
346 | int (*set_usb2_hw_lpm)(struct usb_hcd *, struct usb_device *, int); | 350 | int (*set_usb2_hw_lpm)(struct usb_hcd *, struct usb_device *, int); |
351 | /* USB 3.0 Link Power Management */ | ||
352 | /* Returns the USB3 hub-encoded value for the U1/U2 timeout. */ | ||
353 | int (*enable_usb3_lpm_timeout)(struct usb_hcd *, | ||
354 | struct usb_device *, enum usb3_link_state state); | ||
355 | /* The xHCI host controller can still fail the command to | ||
356 | * disable the LPM timeouts, so this can return an error code. | ||
357 | */ | ||
358 | int (*disable_usb3_lpm_timeout)(struct usb_hcd *, | ||
359 | struct usb_device *, enum usb3_link_state state); | ||
347 | }; | 360 | }; |
348 | 361 | ||
349 | extern int usb_hcd_link_urb_to_ep(struct usb_hcd *hcd, struct urb *urb); | 362 | extern int usb_hcd_link_urb_to_ep(struct usb_hcd *hcd, struct urb *urb); |
@@ -584,29 +597,6 @@ static inline void usb_hcd_resume_root_hub(struct usb_hcd *hcd) | |||
584 | } | 597 | } |
585 | #endif /* CONFIG_USB_SUSPEND */ | 598 | #endif /* CONFIG_USB_SUSPEND */ |
586 | 599 | ||
587 | |||
588 | /* | ||
589 | * USB device fs stuff | ||
590 | */ | ||
591 | |||
592 | #ifdef CONFIG_USB_DEVICEFS | ||
593 | |||
594 | /* | ||
595 | * these are expected to be called from the USB core/hub thread | ||
596 | * with the kernel lock held | ||
597 | */ | ||
598 | extern void usbfs_update_special(void); | ||
599 | extern int usbfs_init(void); | ||
600 | extern void usbfs_cleanup(void); | ||
601 | |||
602 | #else /* CONFIG_USB_DEVICEFS */ | ||
603 | |||
604 | static inline void usbfs_update_special(void) {} | ||
605 | static inline int usbfs_init(void) { return 0; } | ||
606 | static inline void usbfs_cleanup(void) { } | ||
607 | |||
608 | #endif /* CONFIG_USB_DEVICEFS */ | ||
609 | |||
610 | /*-------------------------------------------------------------------------*/ | 600 | /*-------------------------------------------------------------------------*/ |
611 | 601 | ||
612 | #if defined(CONFIG_USB_MON) || defined(CONFIG_USB_MON_MODULE) | 602 | #if defined(CONFIG_USB_MON) || defined(CONFIG_USB_MON_MODULE) |