mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-16 16:01:44 -04:00
Input: appletouch - refactor endpoint lookup
Use the common USB helpers for looking up interrupt-in endpoints (and determining endpoint numbers) instead of open coding. Signed-off-by: Johan Hovold <johan@kernel.org> Link: https://patch.msgid.link/20260330095948.1663141-3-johan@kernel.org Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:
committed by
Dmitry Torokhov
parent
a7675c1f1f
commit
5bb3ab0daa
@@ -829,29 +829,20 @@ static int atp_probe(struct usb_interface *iface,
|
||||
struct atp *dev;
|
||||
struct input_dev *input_dev;
|
||||
struct usb_device *udev = interface_to_usbdev(iface);
|
||||
struct usb_host_interface *iface_desc;
|
||||
struct usb_endpoint_descriptor *endpoint;
|
||||
int int_in_endpointAddr = 0;
|
||||
int i, error = -ENOMEM;
|
||||
struct usb_endpoint_descriptor *ep;
|
||||
int error;
|
||||
const struct atp_info *info = (const struct atp_info *)id->driver_info;
|
||||
|
||||
/* set up the endpoint information */
|
||||
/* use only the first interrupt-in endpoint */
|
||||
iface_desc = iface->cur_altsetting;
|
||||
for (i = 0; i < iface_desc->desc.bNumEndpoints; i++) {
|
||||
endpoint = &iface_desc->endpoint[i].desc;
|
||||
if (!int_in_endpointAddr && usb_endpoint_is_int_in(endpoint)) {
|
||||
/* we found an interrupt in endpoint */
|
||||
int_in_endpointAddr = endpoint->bEndpointAddress;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!int_in_endpointAddr) {
|
||||
error = usb_find_int_in_endpoint(iface->cur_altsetting, &ep);
|
||||
if (error) {
|
||||
dev_err(&iface->dev, "Could not find int-in endpoint\n");
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
/* allocate memory for our device state and initialize it */
|
||||
error = -ENOMEM;
|
||||
dev = kzalloc_obj(*dev);
|
||||
input_dev = input_allocate_device();
|
||||
if (!dev || !input_dev) {
|
||||
@@ -875,7 +866,7 @@ static int atp_probe(struct usb_interface *iface,
|
||||
goto err_free_urb;
|
||||
|
||||
usb_fill_int_urb(dev->urb, udev,
|
||||
usb_rcvintpipe(udev, int_in_endpointAddr),
|
||||
usb_rcvintpipe(udev, usb_endpoint_num(ep)),
|
||||
dev->data, dev->info->datalen,
|
||||
dev->info->callback, dev, 1);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user