diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2006-05-19 15:41:55 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-05-19 15:41:55 -0700 |
commit | 25041f79438a354d98305ea5650676997d915670 (patch) | |
tree | ffcb2778266e14b255bcb93df4c35778a63d52fd /usb | |
parent | 16651762680ae5506ff1ce63d9f17788b1d0f61a (diff) | |
download | patches-25041f79438a354d98305ea5650676997d915670.tar.gz |
add usb patch
Diffstat (limited to 'usb')
-rw-r--r-- | usb/usb_interrupt_msg.patch | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/usb/usb_interrupt_msg.patch b/usb/usb_interrupt_msg.patch new file mode 100644 index 00000000000000..d7cce20f2529b8 --- /dev/null +++ b/usb/usb_interrupt_msg.patch @@ -0,0 +1,67 @@ +From foo@baz Tue Apr 9 12:12:43 2002 +Date: Fri, 19 May 2006 13:20:20 -0700 +To: Greg KH <greg@kroah.com> +From: Greg Kroah-Hartman <gregkh@suse.de> +Subject: USB: add usb_interrupt_msg() function for api completeness. + +Really just a wrapper around usb_bulk_msg() but now it's documented +much better. + +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/core/message.c | 31 +++++++++++++++++++++++++++++++ + include/linux/usb.h | 2 ++ + 2 files changed, 33 insertions(+) + +--- gregkh-2.6.orig/drivers/usb/core/message.c ++++ gregkh-2.6/drivers/usb/core/message.c +@@ -158,6 +158,37 @@ int usb_control_msg(struct usb_device *d + + + /** ++ * usb_interrupt_msg - Builds an interrupt urb, sends it off and waits for completion ++ * @usb_dev: pointer to the usb device to send the message to ++ * @pipe: endpoint "pipe" to send the message to ++ * @data: pointer to the data to send ++ * @len: length in bytes of the data to send ++ * @actual_length: pointer to a location to put the actual length transferred in bytes ++ * @timeout: time in msecs to wait for the message to complete before ++ * timing out (if 0 the wait is forever) ++ * Context: !in_interrupt () ++ * ++ * This function sends a simple interrupt message to a specified endpoint and ++ * waits for the message to complete, or timeout. ++ * ++ * If successful, it returns 0, otherwise a negative error number. The number ++ * of actual bytes transferred will be stored in the actual_length paramater. ++ * ++ * Don't use this function from within an interrupt context, like a bottom half ++ * handler. If you need an asynchronous message, or need to send a message ++ * from within interrupt context, use usb_submit_urb() If a thread in your ++ * driver uses this call, make sure your disconnect() method can wait for it to ++ * complete. Since you don't have a handle on the URB used, you can't cancel ++ * the request. ++ */ ++int usb_interrupt_msg(struct usb_device *usb_dev, unsigned int pipe, ++ void *data, int len, int *actual_length, int timeout) ++{ ++ return usb_bulk_msg(usb_dev, pipe, data, len, actual_length, timeout); ++} ++EXPORT_SYMBOL_GPL(usb_interrupt_msg); ++ ++/** + * usb_bulk_msg - Builds a bulk urb, sends it off and waits for completion + * @usb_dev: pointer to the usb device to send the message to + * @pipe: endpoint "pipe" to send the message to +--- gregkh-2.6.orig/include/linux/usb.h ++++ gregkh-2.6/include/linux/usb.h +@@ -1021,6 +1021,8 @@ void usb_buffer_unmap_sg (struct usb_dev + extern int usb_control_msg(struct usb_device *dev, unsigned int pipe, + __u8 request, __u8 requesttype, __u16 value, __u16 index, + void *data, __u16 size, int timeout); ++extern int usb_interrupt_msg(struct usb_device *usb_dev, unsigned int pipe, ++ void *data, int len, int *actual_length, int timeout); + extern int usb_bulk_msg(struct usb_device *usb_dev, unsigned int pipe, + void *data, int len, int *actual_length, + int timeout); |