]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
nfc: port100: refactor endpoint lookup
authorJohan Hovold <johan@kernel.org>
Mon, 30 Mar 2026 10:36:55 +0000 (12:36 +0200)
committerJakub Kicinski <kuba@kernel.org>
Wed, 1 Apr 2026 02:24:30 +0000 (19:24 -0700)
Use the common USB helpers for looking up bulk and interrupt endpoints
(and determining endpoint numbers) instead of open coding.

Signed-off-by: Johan Hovold <johan@kernel.org>
Link: https://patch.msgid.link/20260330103655.1672331-4-johan@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/nfc/port100.c

index 09dcc6f4c4f38d3f636643bf06bff618753bcc20..5ae61d7ebcfe13562a30683252b99a35b54ea524 100644 (file)
@@ -1489,15 +1489,11 @@ MODULE_DEVICE_TABLE(usb, port100_table);
 static int port100_probe(struct usb_interface *interface,
                         const struct usb_device_id *id)
 {
+       struct usb_endpoint_descriptor *ep_in, *ep_out;
        struct port100 *dev;
        int rc;
-       struct usb_host_interface *iface_desc;
-       struct usb_endpoint_descriptor *endpoint;
-       int in_endpoint;
-       int out_endpoint;
        u16 fw_version;
        u64 cmd_type_mask;
-       int i;
 
        dev = devm_kzalloc(&interface->dev, sizeof(struct port100), GFP_KERNEL);
        if (!dev)
@@ -1508,22 +1504,11 @@ static int port100_probe(struct usb_interface *interface,
        dev->interface = interface;
        usb_set_intfdata(interface, dev);
 
-       in_endpoint = out_endpoint = 0;
-       iface_desc = interface->cur_altsetting;
-       for (i = 0; i < iface_desc->desc.bNumEndpoints; ++i) {
-               endpoint = &iface_desc->endpoint[i].desc;
-
-               if (!in_endpoint && usb_endpoint_is_bulk_in(endpoint))
-                       in_endpoint = endpoint->bEndpointAddress;
-
-               if (!out_endpoint && usb_endpoint_is_bulk_out(endpoint))
-                       out_endpoint = endpoint->bEndpointAddress;
-       }
-
-       if (!in_endpoint || !out_endpoint) {
+       rc = usb_find_common_endpoints(interface->cur_altsetting, &ep_in,
+                                      &ep_out, NULL, NULL);
+       if (rc) {
                nfc_err(&interface->dev,
                        "Could not find bulk-in or bulk-out endpoint\n");
-               rc = -ENODEV;
                goto error;
        }
 
@@ -1537,10 +1522,10 @@ static int port100_probe(struct usb_interface *interface,
        }
 
        usb_fill_bulk_urb(dev->in_urb, dev->udev,
-                         usb_rcvbulkpipe(dev->udev, in_endpoint),
+                         usb_rcvbulkpipe(dev->udev, usb_endpoint_num(ep_in)),
                          NULL, 0, NULL, dev);
        usb_fill_bulk_urb(dev->out_urb, dev->udev,
-                         usb_sndbulkpipe(dev->udev, out_endpoint),
+                         usb_sndbulkpipe(dev->udev, usb_endpoint_num(ep_out)),
                          NULL, 0, port100_send_complete, dev);
        dev->out_urb->transfer_flags = URB_ZERO_PACKET;