Commit 65c7843c authored by Gustavo A. R. Silva's avatar Gustavo A. R. Silva Committed by Greg Kroah-Hartman

usb: misc: refactor code

Code refactoring to make the flow easier to follow.
Signed-off-by: default avatarGustavo A. R. Silva <garsilva@embeddedor.com>
Acked-by: default avatarAlan Stern <stern@rowland.harvard.edu>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 2c930e3d
...@@ -124,6 +124,20 @@ static struct usb_device *testdev_to_usbdev(struct usbtest_dev *test) ...@@ -124,6 +124,20 @@ static struct usb_device *testdev_to_usbdev(struct usbtest_dev *test)
/*-------------------------------------------------------------------------*/ /*-------------------------------------------------------------------------*/
static inline void endpoint_update(int edi,
struct usb_host_endpoint **in,
struct usb_host_endpoint **out,
struct usb_host_endpoint *e)
{
if (edi) {
if (!*in)
*in = e;
} else {
if (!*out)
*out = e;
}
}
static int static int
get_endpoints(struct usbtest_dev *dev, struct usb_interface *intf) get_endpoints(struct usbtest_dev *dev, struct usb_interface *intf)
{ {
...@@ -151,47 +165,26 @@ get_endpoints(struct usbtest_dev *dev, struct usb_interface *intf) ...@@ -151,47 +165,26 @@ get_endpoints(struct usbtest_dev *dev, struct usb_interface *intf)
*/ */
for (ep = 0; ep < alt->desc.bNumEndpoints; ep++) { for (ep = 0; ep < alt->desc.bNumEndpoints; ep++) {
struct usb_host_endpoint *e; struct usb_host_endpoint *e;
int edi;
e = alt->endpoint + ep; e = alt->endpoint + ep;
edi = usb_endpoint_dir_in(&e->desc);
switch (usb_endpoint_type(&e->desc)) { switch (usb_endpoint_type(&e->desc)) {
case USB_ENDPOINT_XFER_BULK: case USB_ENDPOINT_XFER_BULK:
break; endpoint_update(edi, &in, &out, e);
continue;
case USB_ENDPOINT_XFER_INT: case USB_ENDPOINT_XFER_INT:
if (dev->info->intr) if (dev->info->intr)
goto try_intr; endpoint_update(edi, &int_in, &int_out, e);
continue; continue;
case USB_ENDPOINT_XFER_ISOC: case USB_ENDPOINT_XFER_ISOC:
if (dev->info->iso) if (dev->info->iso)
goto try_iso; endpoint_update(edi, &iso_in, &iso_out, e);
/* FALLTHROUGH */ /* FALLTHROUGH */
default: default:
continue; continue;
} }
if (usb_endpoint_dir_in(&e->desc)) {
if (!in)
in = e;
} else {
if (!out)
out = e;
}
continue;
try_intr:
if (usb_endpoint_dir_in(&e->desc)) {
if (!int_in)
int_in = e;
} else {
if (!int_out)
int_out = e;
}
continue;
try_iso:
if (usb_endpoint_dir_in(&e->desc)) {
if (!iso_in)
iso_in = e;
} else {
if (!iso_out)
iso_out = e;
}
} }
if ((in && out) || iso_in || iso_out || int_in || int_out) if ((in && out) || iso_in || iso_out || int_in || int_out)
goto found; goto found;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment