提交 ab30f12d 编写于 作者: E Endre Kollar 提交者: Greg Kroah-Hartman

Staging: usbip: simplify get_ep_from_epnum

usb_device->ep_in/out includes the necessary endpoints, search is not needed.
Signed-off-by: NEndre Kollar <taxy443@gmail.com>
Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
上级 aa5873e9
......@@ -362,54 +362,16 @@ static struct stub_priv *stub_priv_alloc(struct stub_device *sdev,
return priv;
}
static struct usb_host_endpoint *get_ep_from_epnum(struct usb_device *udev,
int epnum0)
{
struct usb_host_config *config;
int i = 0, j = 0;
struct usb_host_endpoint *ep = NULL;
int epnum;
int found = 0;
if (epnum0 == 0)
return &udev->ep0;
config = udev->actconfig;
if (!config)
return NULL;
for (i = 0; i < config->desc.bNumInterfaces; i++) {
struct usb_host_interface *setting;
setting = config->interface[i]->cur_altsetting;
for (j = 0; j < setting->desc.bNumEndpoints; j++) {
ep = &setting->endpoint[j];
epnum = (ep->desc.bEndpointAddress & 0x7f);
if (epnum == epnum0) {
/* usbip_uinfo("found epnum %d\n", epnum0);*/
found = 1;
break;
}
}
}
if (found)
return ep;
else
return NULL;
}
static int get_pipe(struct stub_device *sdev, int epnum, int dir)
{
struct usb_device *udev = interface_to_usbdev(sdev->interface);
struct usb_host_endpoint *ep;
struct usb_endpoint_descriptor *epd = NULL;
ep = get_ep_from_epnum(udev, epnum);
if (dir == USBIP_DIR_IN)
ep = udev->ep_in[epnum & 0x7f];
else
ep = udev->ep_out[epnum & 0x7f];
if (!ep) {
dev_err(&sdev->interface->dev, "no such endpoint?, %d\n",
epnum);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册