aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2013-10-09 11:19:30 -0400
committerSarah Sharp <sarah.a.sharp@linux.intel.com>2014-03-04 18:38:05 -0500
commit2fec32b06e374642802f7fb4f5350317cd14732b (patch)
treec5530d73c3f9eb780b2df104e5db14166d2d6960
parent948cd8c18c466fdcbe707bb2a42a148796bfccdd (diff)
usbfs: Add ep_to_host_endpoint helper function
Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
-rw-r--r--drivers/usb/core/devio.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c
index d7571a63181d..502974b4deb5 100644
--- a/drivers/usb/core/devio.c
+++ b/drivers/usb/core/devio.c
@@ -769,6 +769,15 @@ static int check_ctrlrecip(struct dev_state *ps, unsigned int requesttype,
769 return ret; 769 return ret;
770} 770}
771 771
772static struct usb_host_endpoint *ep_to_host_endpoint(struct usb_device *dev,
773 unsigned char ep)
774{
775 if (ep & USB_ENDPOINT_DIR_MASK)
776 return dev->ep_in[ep & USB_ENDPOINT_NUMBER_MASK];
777 else
778 return dev->ep_out[ep & USB_ENDPOINT_NUMBER_MASK];
779}
780
772static int match_devt(struct device *dev, void *data) 781static int match_devt(struct device *dev, void *data)
773{ 782{
774 return dev->devt == (dev_t) (unsigned long) data; 783 return dev->devt == (dev_t) (unsigned long) data;
@@ -1230,15 +1239,10 @@ static int proc_do_submiturb(struct dev_state *ps, struct usbdevfs_urb *uurb,
1230 if (ret) 1239 if (ret)
1231 return ret; 1240 return ret;
1232 } 1241 }
1233 if ((uurb->endpoint & USB_ENDPOINT_DIR_MASK) != 0) { 1242 ep = ep_to_host_endpoint(ps->dev, uurb->endpoint);
1234 is_in = 1;
1235 ep = ps->dev->ep_in[uurb->endpoint & USB_ENDPOINT_NUMBER_MASK];
1236 } else {
1237 is_in = 0;
1238 ep = ps->dev->ep_out[uurb->endpoint & USB_ENDPOINT_NUMBER_MASK];
1239 }
1240 if (!ep) 1243 if (!ep)
1241 return -ENOENT; 1244 return -ENOENT;
1245 is_in = (uurb->endpoint & USB_ENDPOINT_DIR_MASK) != 0;
1242 1246
1243 u = 0; 1247 u = 0;
1244 switch(uurb->type) { 1248 switch(uurb->type) {