USB: Add a usb_pipe_endpoint() convenience function
Converting a pipe number to a struct usb_host_endpoint pointer is a little messy. Introduce a new convenience function to hide the mess. Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
b18a23495f
commit
fe54b058de
3 changed files with 10 additions and 4 deletions
|
@ -226,8 +226,7 @@ int usb_bulk_msg(struct usb_device *usb_dev, unsigned int pipe,
|
|||
struct urb *urb;
|
||||
struct usb_host_endpoint *ep;
|
||||
|
||||
ep = (usb_pipein(pipe) ? usb_dev->ep_in : usb_dev->ep_out)
|
||||
[usb_pipeendpoint(pipe)];
|
||||
ep = usb_pipe_endpoint(usb_dev, pipe);
|
||||
if (!ep || len < 0)
|
||||
return -EINVAL;
|
||||
|
||||
|
|
|
@ -308,8 +308,7 @@ int usb_submit_urb(struct urb *urb, gfp_t mem_flags)
|
|||
* will be required to set urb->ep directly and we will eliminate
|
||||
* urb->pipe.
|
||||
*/
|
||||
ep = (usb_pipein(urb->pipe) ? dev->ep_in : dev->ep_out)
|
||||
[usb_pipeendpoint(urb->pipe)];
|
||||
ep = usb_pipe_endpoint(dev, urb->pipe);
|
||||
if (!ep)
|
||||
return -ENOENT;
|
||||
|
||||
|
|
|
@ -1552,6 +1552,14 @@ static inline unsigned int __create_pipe(struct usb_device *dev,
|
|||
#define usb_rcvintpipe(dev,endpoint) \
|
||||
((PIPE_INTERRUPT << 30) | __create_pipe(dev, endpoint) | USB_DIR_IN)
|
||||
|
||||
static inline struct usb_host_endpoint *
|
||||
usb_pipe_endpoint(struct usb_device *dev, unsigned int pipe)
|
||||
{
|
||||
struct usb_host_endpoint **eps;
|
||||
eps = usb_pipein(pipe) ? dev->ep_in : dev->ep_out;
|
||||
return eps[usb_pipeendpoint(pipe)];
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
static inline __u16
|
||||
|
|
Loading…
Reference in a new issue