summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Rorvick <chris@rorvick.com>2015-01-12 12:42:41 -0800
committerTakashi Iwai <tiwai@suse.de>2015-01-12 22:24:00 +0100
commitc33a20b71daf7e7d0d5746200621867ae44d09e9 (patch)
tree8fc6fed91b73f6bea32e9ff3964f74ea9d0ad3a5
parent410dca8d99ae508078c90414b19f1758c1b4d6fd (diff)
downloadlinux-c33a20b71daf7e7d0d5746200621867ae44d09e9.tar.bz2
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@rorvick.com> Reviewed-by: Stefan Hajnoczi <stefanha@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--drivers/staging/line6/driver.c17
1 files changed, 2 insertions, 15 deletions
diff --git a/drivers/staging/line6/driver.c b/drivers/staging/line6/driver.c
index 2797e4132cfa..c090b2bb1729 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];