diff options
Diffstat (limited to 'drivers/usb/hub.h')
-rw-r--r-- | drivers/usb/hub.h | 25 |
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; |