patch-2.3.43 linux/drivers/usb/uhci.h

Next file: linux/drivers/usb/usb-ohci.c
Previous file: linux/drivers/usb/uhci.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.42/linux/drivers/usb/uhci.h linux/drivers/usb/uhci.h
@@ -108,7 +108,7 @@
 	/* 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 @@
 	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 @@
 } __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 @@
 #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 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 */
 };

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)