aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/usb/hcd.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/usb/hcd.h')
-rw-r--r--include/linux/usb/hcd.h40
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
349extern int usb_hcd_link_urb_to_ep(struct usb_hcd *hcd, struct urb *urb); 362extern 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 */
598extern void usbfs_update_special(void);
599extern int usbfs_init(void);
600extern void usbfs_cleanup(void);
601
602#else /* CONFIG_USB_DEVICEFS */
603
604static inline void usbfs_update_special(void) {}
605static inline int usbfs_init(void) { return 0; }
606static 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)