USB: yurex: refactor endpoint retrieval
authorJohan Hovold <johan@kernel.org>
Fri, 17 Mar 2017 10:35:45 +0000 (11:35 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 23 Mar 2017 12:54:03 +0000 (13:54 +0100)
Use the new endpoint helpers to lookup the required interrupt-in
endpoint.

Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/misc/yurex.c

index 54e53ac..58abdf2 100644 (file)
@@ -195,8 +195,8 @@ static int yurex_probe(struct usb_interface *interface, const struct usb_device_
        struct usb_host_interface *iface_desc;
        struct usb_endpoint_descriptor *endpoint;
        int retval = -ENOMEM;
-       int i;
        DEFINE_WAIT(wait);
+       int res;
 
        /* allocate memory for our device state and initialize it */
        dev = kzalloc(sizeof(*dev), GFP_KERNEL);
@@ -212,20 +212,14 @@ static int yurex_probe(struct usb_interface *interface, const struct usb_device_
 
        /* set up the endpoint information */
        iface_desc = interface->cur_altsetting;
-       for (i = 0; i < iface_desc->desc.bNumEndpoints; i++) {
-               endpoint = &iface_desc->endpoint[i].desc;
-
-               if (usb_endpoint_is_int_in(endpoint)) {
-                       dev->int_in_endpointAddr = endpoint->bEndpointAddress;
-                       break;
-               }
-       }
-       if (!dev->int_in_endpointAddr) {
-               retval = -ENODEV;
+       res = usb_find_int_in_endpoint(iface_desc, &endpoint);
+       if (res) {
                dev_err(&interface->dev, "Could not find endpoints\n");
+               retval = res;
                goto error;
        }
 
+       dev->int_in_endpointAddr = endpoint->bEndpointAddress;
 
        /* allocate control URB */
        dev->cntl_urb = usb_alloc_urb(0, GFP_KERNEL);