]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
media: irtoy: Refactor endpoint lookup
authorJohan Hovold <johan@kernel.org>
Mon, 30 Mar 2026 10:11:38 +0000 (12:11 +0200)
committerSean Young <sean@mess.org>
Mon, 4 May 2026 16:19:17 +0000 (17:19 +0100)
Use the common USB helpers for looking up bulk and interrupt endpoints
(and determining max packet size) instead of open coding.

Note that the device has two bulk endpoints so there is no functional
change here.

Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Sean Young <sean@mess.org>
drivers/media/rc/ir_toy.c

index 089833e41178631449e43d4f5538b95d24dd344f..ee645882dd5a6ddff7ac3b29018bf35d0154837d 100644 (file)
@@ -393,27 +393,15 @@ static int irtoy_probe(struct usb_interface *intf,
 {
        struct usb_host_interface *idesc = intf->cur_altsetting;
        struct usb_device *usbdev = interface_to_usbdev(intf);
-       struct usb_endpoint_descriptor *ep_in = NULL;
-       struct usb_endpoint_descriptor *ep_out = NULL;
-       struct usb_endpoint_descriptor *ep = NULL;
+       struct usb_endpoint_descriptor *ep_in, *ep_out;
        struct irtoy *irtoy;
        struct rc_dev *rc;
        struct urb *urb;
-       int i, pipe, err = -ENOMEM;
+       int pipe, err;
 
-       for (i = 0; i < idesc->desc.bNumEndpoints; i++) {
-               ep = &idesc->endpoint[i].desc;
-
-               if (!ep_in && usb_endpoint_is_bulk_in(ep) &&
-                   usb_endpoint_maxp(ep) == MAX_PACKET)
-                       ep_in = ep;
-
-               if (!ep_out && usb_endpoint_is_bulk_out(ep) &&
-                   usb_endpoint_maxp(ep) == MAX_PACKET)
-                       ep_out = ep;
-       }
-
-       if (!ep_in || !ep_out) {
+       err = usb_find_common_endpoints(idesc, &ep_in, &ep_out, NULL, NULL);
+       if (err || usb_endpoint_maxp(ep_in) != MAX_PACKET ||
+           usb_endpoint_maxp(ep_out) != MAX_PACKET) {
                dev_err(&intf->dev, "required endpoints not found\n");
                return -ENODEV;
        }
@@ -422,6 +410,7 @@ static int irtoy_probe(struct usb_interface *intf,
        if (!irtoy)
                return -ENOMEM;
 
+       err = -ENOMEM;
        irtoy->in = kmalloc(MAX_PACKET,  GFP_KERNEL);
        if (!irtoy->in)
                goto free_irtoy;