]> err.no Git - linux-2.6/blobdiff - drivers/usb/host/uhci-hcd.h
[PATCH] USB: UHCI: Split apart the physical and logical framelist arrays
[linux-2.6] / drivers / usb / host / uhci-hcd.h
index bf9c5f9b508b9eb4e8d8eef7fbab0a94454eb158..b04d99df0a0ec790dce83f492e9506238b1d0abc 100644 (file)
@@ -205,8 +205,6 @@ struct uhci_td {
        /* Software fields */
        dma_addr_t dma_handle;
 
-       struct urb *urb;
-
        struct list_head list;          /* P: urb->lock */
        struct list_head remove_list;   /* P: uhci->td_remove_list_lock */
 
@@ -345,9 +343,6 @@ enum uhci_rh_state {
 
 /*
  * This describes the full uhci information.
- *
- * Note how the "proper" USB information is just
- * a subset of what the full implementation needs.
  */
 struct uhci_hcd {
 
@@ -360,13 +355,15 @@ struct uhci_hcd {
        struct dma_pool *qh_pool;
        struct dma_pool *td_pool;
 
-       struct usb_bus *bus;
-
        struct uhci_td *term_td;        /* Terminating TD, see UHCI bug */
        struct uhci_qh *skelqh[UHCI_NUM_SKELQH];        /* Skeleton QH's */
 
        spinlock_t lock;
-       struct uhci_frame_list *fl;             /* P: uhci->lock */
+
+       dma_addr_t frame_dma_handle;            /* Hardware frame list */
+       __le32 *frame;                          /* P: uhci->lock */
+       void **frame_cpu;                       /* CPU's frame list */
+
        int fsbr;                               /* Full-speed bandwidth reclamation */
        unsigned long fsbrtimeout;              /* FSBR delay */
 
@@ -380,6 +377,8 @@ struct uhci_hcd {
        unsigned int scan_in_progress:1;        /* Schedule scan is running */
        unsigned int need_rescan:1;             /* Redo the schedule scan */
        unsigned int hc_inaccessible:1;         /* HC is suspended or dead */
+       unsigned int working_RD:1;              /* Suspended root hub doesn't
+                                                  need to be polled */
 
        /* Support for port suspend/resume/reset */
        unsigned long port_c_suspend;           /* Bit-arrays of ports */
@@ -405,9 +404,7 @@ struct uhci_hcd {
        /* List of URB's awaiting completion callback */
        struct list_head complete_list;         /* P: uhci->lock */
 
-       int rh_numports;
-
-       struct timer_list stall_timer;
+       int rh_numports;                        /* Number of root-hub ports */
 
        wait_queue_head_t waitqh;               /* endpoint_disable waiters */
 };
@@ -439,7 +436,6 @@ struct urb_priv {
                                                /*  a control transfer, retrigger */
                                                /*  the status phase */
 
-       unsigned long inserttime;       /* In jiffies */
        unsigned long fsbrtime;         /* In jiffies */
 
        struct list_head queue_list;    /* P: uhci->frame_list_lock */