summaryrefslogtreecommitdiffstats
path: root/drivers/usb/misc
diff options
context:
space:
mode:
authorJohan Hovold <johan@kernel.org>2017-03-17 11:35:36 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-03-23 13:53:16 +0100
commita8bbb0f8db700f75e1f6f287a0de6d715af05cf9 (patch)
treea4f69fa766f6029c335a46d97b9d3ec6bbf5c60c /drivers/usb/misc
parentc77b8855c6dadb97b1614ecee844c88b621d5493 (diff)
downloadop-kernel-dev-a8bbb0f8db700f75e1f6f287a0de6d715af05cf9.zip
op-kernel-dev-a8bbb0f8db700f75e1f6f287a0de6d715af05cf9.tar.gz
USB: chaoskey: refactor endpoint retrieval
Use the new endpoint helpers to lookup the required bulk-in endpoint. Signed-off-by: Johan Hovold <johan@kernel.org> Reviewed-by: Keith Packard <keithp@keithp.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/misc')
-rw-r--r--drivers/usb/misc/chaoskey.c22
1 files changed, 10 insertions, 12 deletions
diff --git a/drivers/usb/misc/chaoskey.c b/drivers/usb/misc/chaoskey.c
index aa350dc..e9cae4d 100644
--- a/drivers/usb/misc/chaoskey.c
+++ b/drivers/usb/misc/chaoskey.c
@@ -117,28 +117,26 @@ static int chaoskey_probe(struct usb_interface *interface,
{
struct usb_device *udev = interface_to_usbdev(interface);
struct usb_host_interface *altsetting = interface->cur_altsetting;
- int i;
- int in_ep = -1;
+ struct usb_endpoint_descriptor *epd;
+ int in_ep;
struct chaoskey *dev;
int result = -ENOMEM;
int size;
+ int res;
usb_dbg(interface, "probe %s-%s", udev->product, udev->serial);
/* Find the first bulk IN endpoint and its packet size */
- for (i = 0; i < altsetting->desc.bNumEndpoints; i++) {
- if (usb_endpoint_is_bulk_in(&altsetting->endpoint[i].desc)) {
- in_ep = usb_endpoint_num(&altsetting->endpoint[i].desc);
- size = usb_endpoint_maxp(&altsetting->endpoint[i].desc);
- break;
- }
+ res = usb_find_bulk_in_endpoint(altsetting, &epd);
+ if (res) {
+ usb_dbg(interface, "no IN endpoint found");
+ return res;
}
+ in_ep = usb_endpoint_num(epd);
+ size = usb_endpoint_maxp(epd);
+
/* Validate endpoint and size */
- if (in_ep == -1) {
- usb_dbg(interface, "no IN endpoint found");
- return -ENODEV;
- }
if (size <= 0) {
usb_dbg(interface, "invalid size (%d)", size);
return -ENODEV;
OpenPOWER on IntegriCloud