summaryrefslogtreecommitdiffstats
path: root/drivers/usb/hub.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/hub.h')
-rw-r--r--drivers/usb/hub.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/drivers/usb/hub.h b/drivers/usb/hub.h
index 5c7b0c31f..49c531d30 100644
--- a/drivers/usb/hub.h
+++ b/drivers/usb/hub.h
@@ -46,6 +46,24 @@
#define HUB_CHAR_COMPOUND 0x0004
#define HUB_CHAR_OCPM 0x0018
+/* Hub descriptor */
+struct usb_hub_descriptor {
+ __u8 bLength;
+ __u8 bDescriptorType;
+ __u8 bNbrPorts;
+ __u16 wHubCharacteristics;
+#if 0
+ __u8 wHubCharacteristics[2]; /* __u16 but not aligned! */
+#endif
+ __u8 bPwrOn2PwrGood;
+ __u8 bHubContrCurrent;
+ /* DeviceRemovable and PortPwrCtrlMask want to be variable-length
+ bitmaps that hold max 256 entries, but for now they're ignored */
+#if 0
+ __u8 filler;
+#endif
+} __attribute__ ((packed));
+
struct usb_device;
typedef enum {
@@ -68,6 +86,13 @@ struct usb_hub {
/* Device structure */
struct usb_device *dev;
+ /* Reference to the hub's polling IRQ and its associated pipe */
+ void *irq_handle;
+ unsigned int irqpipe;
+
+ /* List of hubs */
+ struct list_head hub_list;
+
/* Temporary event list */
struct list_head event_list;