summaryrefslogtreecommitdiffstats
path: root/drivers/usb/uhci.h
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-02-23 00:40:54 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-02-23 00:40:54 +0000
commit529c593ece216e4aaffd36bd940cb94f1fa63129 (patch)
tree78f1c0b805f5656aa7b0417a043c5346f700a2cf /drivers/usb/uhci.h
parent0bd079751d25808d1972baee5c4eaa1db2227257 (diff)
Merge with 2.3.43. I did ignore all modifications to the qlogicisp.c
driver due to the Origin A64 hacks.
Diffstat (limited to 'drivers/usb/uhci.h')
-rw-r--r--drivers/usb/uhci.h38
1 files changed, 9 insertions, 29 deletions
diff --git a/drivers/usb/uhci.h b/drivers/usb/uhci.h
index 65c597861..88891ea89 100644
--- a/drivers/usb/uhci.h
+++ b/drivers/usb/uhci.h
@@ -108,7 +108,7 @@ struct uhci_qh {
/* Software fields */
struct uhci_qh *prevqh, *nextqh; /* Previous and next TD in queue */
- struct uhci_device *dev; /* The owning device */
+ struct usb_device *dev; /* The owning device */
struct list_head list;
} __attribute__((aligned(16)));
@@ -182,7 +182,7 @@ struct uhci_td {
unsigned int *frameptr; /* Frame list pointer */
struct uhci_td *prevtd, *nexttd; /* Previous and next TD in queue */
- struct uhci_device *dev;
+ struct usb_device *dev;
struct urb *urb; /* URB this TD belongs to */
struct uhci_td *next; /* List of chained TD's for an URB */
@@ -191,26 +191,6 @@ struct uhci_td {
} __attribute__((aligned(16)));
/*
- * Note the alignment requirements of the entries
- *
- * Each UHCI device has pre-allocated QH and TD entries.
- * You can use more than the pre-allocated ones, but I
- * don't see you usually needing to.
- */
-struct uhci;
-
-struct uhci_device {
- struct usb_device *usb;
-
- atomic_t refcnt;
-
- struct uhci *uhci; /* HC this device is connected to */
-};
-
-#define uhci_to_usb(uhci) ((uhci)->usb)
-#define usb_to_uhci(usb) ((struct uhci_device *)(usb)->hcpriv)
-
-/*
* There are various standard queues. We set up several different
* queues for each of the three basic queue types: interrupt,
* control, and bulk.
@@ -264,9 +244,11 @@ struct uhci_device {
#define skel_int128_td skeltd[7]
#define skel_int256_td skeltd[8]
-#define UHCI_NUM_SKELQH 2
-#define skel_control_qh skelqh[0]
-#define skel_bulk_qh skelqh[1]
+#define UHCI_NUM_SKELQH 4
+#define skel_ls_control_qh skelqh[0]
+#define skel_hs_control_qh skelqh[1]
+#define skel_bulk_qh skelqh[2]
+#define skel_term_qh skelqh[3]
/*
* Search tree for determining where <interval> fits in the
@@ -340,14 +322,12 @@ struct uhci {
struct s_nested_lock irqlist_lock;
struct list_head interrupt_list; /* List of interrupt-active TD's for this uhci */
- spinlock_t urblist_lock;
+ struct s_nested_lock urblist_lock;
struct list_head urb_list;
spinlock_t framelist_lock;
- spinlock_t freelist_lock;
- struct list_head td_free_list;
- struct list_head qh_free_list;
+ int fsbr; /* Full speed bandwidth reclamation */
struct virt_root_hub rh; /* private data of the virtual root hub */
};