[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1420868171-2031-7-git-send-email-chris@rorvick.com>
Date: Fri, 9 Jan 2015 23:35:52 -0600
From: Chris Rorvick <chris@...vick.com>
To: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc: Chris Rorvick <chris@...vick.com>,
Alexey Khoroshilov <khoroshilov@...ras.ru>,
Davide Berardi <berardi.dav@...il.com>,
devel@...verdev.osuosl.org,
Fabian Mewes <architekt@...ing4coffee.org>,
Gulsah Kose <gulsah.1004@...il.com>,
Himangi Saraogi <himangi774@...il.com>,
Jerry Snitselaar <dev@...tselaar.org>,
L. Alberto Giménez <agimenez@...valve.es>,
linux-kernel@...r.kernel.org, Mikhail Boiko <mm.boiko@...dex.ru>,
Monam Agarwal <monamagarwal123@...il.com>,
Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@...el.com>,
Stefan Hajnoczi <stefanha@...il.com>,
Takashi Iwai <tiwai@...e.de>
Subject: [PATCH 06/25] staging: line6: Index properties array with device type
The current logic uses the index of the matched entry from the device
table as an offset to the corresponding properties entry. The values
of the new `line6_device_type' enum are ordered such that they can be
used as an index into either of these arrays. Drop the device entry
lookup logic and use the device type (via the .driver_info member)
instead.
Signed-off-by: Chris Rorvick <chris@...vick.com>
---
drivers/staging/line6/driver.c | 17 ++---------------
1 file changed, 2 insertions(+), 15 deletions(-)
diff --git a/drivers/staging/line6/driver.c b/drivers/staging/line6/driver.c
index 2797e41..c090b2b 100644
--- a/drivers/staging/line6/driver.c
+++ b/drivers/staging/line6/driver.c
@@ -624,7 +624,7 @@ static void line6_destruct(struct usb_interface *interface)
static int line6_probe(struct usb_interface *interface,
const struct usb_device_id *id)
{
- int devtype;
+ enum line6_device_type devtype;
struct usb_device *usbdev;
struct usb_line6 *line6;
const struct line6_properties *properties;
@@ -646,20 +646,7 @@ static int line6_probe(struct usb_interface *interface,
goto err_put;
}
- /* check vendor and product id */
- for (devtype = ARRAY_SIZE(line6_id_table) - 1; devtype--;) {
- u16 idVendor = le16_to_cpu(usbdev->descriptor.idVendor);
- u16 idProduct = le16_to_cpu(usbdev->descriptor.idProduct);
-
- if (idVendor == line6_id_table[devtype].idVendor &&
- idProduct == line6_id_table[devtype].idProduct)
- break;
- }
-
- if (devtype < 0) {
- ret = -ENODEV;
- goto err_put;
- }
+ devtype = id->driver_info;
/* initialize device info: */
properties = &line6_properties_table[devtype];
--
2.1.0
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists