diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-02-23 00:40:54 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-02-23 00:40:54 +0000 |
commit | 529c593ece216e4aaffd36bd940cb94f1fa63129 (patch) | |
tree | 78f1c0b805f5656aa7b0417a043c5346f700a2cf /drivers/usb/uhci.h | |
parent | 0bd079751d25808d1972baee5c4eaa1db2227257 (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.h | 38 |
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 */ }; |