|
@@ -796,6 +796,10 @@ typedef void (*usb_complete_t)(struct urb *, struct pt_regs *);
|
|
|
* of the iso_frame_desc array, and the number of errors is reported in
|
|
|
* error_count. Completion callbacks for ISO transfers will normally
|
|
|
* (re)submit URBs to ensure a constant transfer rate.
|
|
|
+ *
|
|
|
+ * Note that even fields marked "public" should not be touched by the driver
|
|
|
+ * when the urb is owned by the hcd, that is, since the call to
|
|
|
+ * usb_submit_urb() till the entry into the completion routine.
|
|
|
*/
|
|
|
struct urb
|
|
|
{
|
|
@@ -803,12 +807,12 @@ struct urb
|
|
|
struct kref kref; /* reference count of the URB */
|
|
|
spinlock_t lock; /* lock for the URB */
|
|
|
void *hcpriv; /* private data for host controller */
|
|
|
- struct list_head urb_list; /* list pointer to all active urbs */
|
|
|
int bandwidth; /* bandwidth for INT/ISO request */
|
|
|
atomic_t use_count; /* concurrent submissions counter */
|
|
|
u8 reject; /* submissions will fail */
|
|
|
|
|
|
/* public, documented fields in the urb that can be used by drivers */
|
|
|
+ struct list_head urb_list; /* list head for use by the urb owner */
|
|
|
struct usb_device *dev; /* (in) pointer to associated device */
|
|
|
unsigned int pipe; /* (in) pipe information */
|
|
|
int status; /* (return) non-ISO status */
|