Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
4a53529c
Commit
4a53529c
authored
Mar 18, 2002
by
David Brownell
Committed by
Greg Kroah-Hartman
Mar 18, 2002
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
USB
Comment and documentation cleanups
parent
d00cdf62
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
13 additions
and
8 deletions
+13
-8
drivers/usb/hcd.c
drivers/usb/hcd.c
+1
-1
include/linux/usb.h
include/linux/usb.h
+12
-7
No files found.
drivers/usb/hcd.c
View file @
4a53529c
...
@@ -1375,7 +1375,7 @@ static int hcd_submit_urb (struct urb *urb, int mem_flags)
...
@@ -1375,7 +1375,7 @@ static int hcd_submit_urb (struct urb *urb, int mem_flags)
// hcd_monitor_hook(MONITOR_URB_SUBMIT, urb)
// hcd_monitor_hook(MONITOR_URB_SUBMIT, urb)
// It would catch submission paths for all urbs.
// It would catch submission paths for all urbs.
/* increment
the reference count of the urb, as we now also
control it. */
/* increment
urb's reference count, we now
control it. */
urb
=
usb_get_urb
(
urb
);
urb
=
usb_get_urb
(
urb
);
/*
/*
...
...
include/linux/usb.h
View file @
4a53529c
...
@@ -588,7 +588,7 @@ typedef void (*usb_complete_t)(struct urb *);
...
@@ -588,7 +588,7 @@ typedef void (*usb_complete_t)(struct urb *);
/**
/**
* struct urb - USB Request Block
* struct urb - USB Request Block
* @urb_list: For use by current owner of the URB.
* @urb_list: For use by current owner of the URB.
* @next: Used
primarily
to link ISO requests into rings.
* @next: Used to link ISO requests into rings.
* @pipe: Holds endpoint number, direction, type, and max packet size.
* @pipe: Holds endpoint number, direction, type, and max packet size.
* Create these values with the eight macros available;
* Create these values with the eight macros available;
* usb_{snd,rcv}TYPEpipe(dev,endpoint), where the type is "ctrl"
* usb_{snd,rcv}TYPEpipe(dev,endpoint), where the type is "ctrl"
...
@@ -627,8 +627,9 @@ typedef void (*usb_complete_t)(struct urb *);
...
@@ -627,8 +627,9 @@ typedef void (*usb_complete_t)(struct urb *);
* @start_frame: Returns the initial frame for interrupt or isochronous
* @start_frame: Returns the initial frame for interrupt or isochronous
* transfers.
* transfers.
* @number_of_packets: Lists the number of ISO transfer buffers.
* @number_of_packets: Lists the number of ISO transfer buffers.
* @interval: Specifies the polling interval for interrupt transfers, in
* @interval: Specifies the polling interval for interrupt or isochronous
* milliseconds.
* transfers. The units are frames (milliseconds) for for full and low
* speed devices, and microframes (1/8 millisecond) for highspeed ones.
* @error_count: Returns the number of ISO transfers that reported errors.
* @error_count: Returns the number of ISO transfers that reported errors.
* @context: For use in completion functions. This normally points to
* @context: For use in completion functions. This normally points to
* request-specific driver context.
* request-specific driver context.
...
@@ -668,12 +669,16 @@ typedef void (*usb_complete_t)(struct urb *);
...
@@ -668,12 +669,16 @@ typedef void (*usb_complete_t)(struct urb *);
*
*
* Control URBs must provide a setup_packet.
* Control URBs must provide a setup_packet.
*
*
* Interupt UBS must provide an interval, saying how often (in milliseconds)
* Interrupt UBS must provide an interval, saying how often (in milliseconds
* or, for highspeed devices, 125 microsecond units)
* to poll for transfers. After the URB has been submitted, the interval
* to poll for transfers. After the URB has been submitted, the interval
* and start_frame fields reflect how the transfer was actually scheduled.
* and start_frame fields reflect how the transfer was actually scheduled.
* The polling interval may be more frequent than requested.
* The polling interval may be more frequent than requested.
* For example, some controllers have a maximum interval of 32 microseconds,
* For example, some controllers have a maximum interval of 32 microseconds,
* while others support intervals of up to 1024 microseconds.
* while others support intervals of up to 1024 microseconds.
* Isochronous URBs also have transfer intervals. (Note that for isochronous
* endpoints, as well as high speed interrupt endpoints, the encoding of
* the transfer interval in the endpoint descriptor is logarithmic.)
*
*
* Isochronous URBs normally use the USB_ISO_ASAP transfer flag, telling
* Isochronous URBs normally use the USB_ISO_ASAP transfer flag, telling
* the host controller to schedule the transfer as soon as bandwidth
* the host controller to schedule the transfer as soon as bandwidth
...
@@ -682,8 +687,8 @@ typedef void (*usb_complete_t)(struct urb *);
...
@@ -682,8 +687,8 @@ typedef void (*usb_complete_t)(struct urb *);
* and handle the case where the transfer can't begin then. However, drivers
* and handle the case where the transfer can't begin then. However, drivers
* won't know how bandwidth is currently allocated, and while they can
* won't know how bandwidth is currently allocated, and while they can
* find the current frame using usb_get_current_frame_number () they can't
* find the current frame using usb_get_current_frame_number () they can't
* know the range for that frame number. (
Common ranges for the frame
* know the range for that frame number. (
Ranges for frame counter values
*
counter include 256, 512, and 1024 frames
.)
*
are HC-specific, and can go from 256 to 65536 frames from "now"
.)
*
*
* Isochronous URBs have a different data transfer model, in part because
* Isochronous URBs have a different data transfer model, in part because
* the quality of service is only "best effort". Callers provide specially
* the quality of service is only "best effort". Callers provide specially
...
@@ -734,7 +739,7 @@ struct urb
...
@@ -734,7 +739,7 @@ struct urb
unsigned
char
*
setup_packet
;
/* (in) setup packet (control only) */
unsigned
char
*
setup_packet
;
/* (in) setup packet (control only) */
int
start_frame
;
/* (modify) start frame (INT/ISO) */
int
start_frame
;
/* (modify) start frame (INT/ISO) */
int
number_of_packets
;
/* (in) number of ISO packets */
int
number_of_packets
;
/* (in) number of ISO packets */
int
interval
;
/* (in)
polling interval (INT only
) */
int
interval
;
/* (in)
transfer interval (INT/ISO
) */
int
error_count
;
/* (return) number of ISO errors */
int
error_count
;
/* (return) number of ISO errors */
int
timeout
;
/* (in) timeout, in jiffies */
int
timeout
;
/* (in) timeout, in jiffies */
void
*
context
;
/* (in) context for completion */
void
*
context
;
/* (in) context for completion */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment