USB: ti_usb_3410_5052: fix dynamic-id matching
authorJohan Hovold <jhovold@gmail.com>
Fri, 28 Jun 2013 10:24:26 +0000 (12:24 +0200)
committerBen Hutchings <ben@decadent.org.uk>
Fri, 2 Aug 2013 20:15:07 +0000 (22:15 +0200)
commit 1fad56424f5ad3ce4973505a357212b2e2282b3f upstream.

The driver failed to take the dynamic ids into account when determining
the device type and therefore all devices were detected as 2-port
devices when using the dynamic-id interface.

Match on the usb-serial-driver field instead of doing redundant id-table
searches.

Reported-by: Anders Hammarquist <iko@iko.pp.se>
Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/usb/serial/ti_usb_3410_5052.c

index 9d3b39ee4579271a1dbab82ea6ac020ca4161cfc..42038ba91334139f0477aceb95baf1a53e2032ba 100644 (file)
@@ -408,7 +408,7 @@ static int ti_startup(struct usb_serial *serial)
        usb_set_serial_data(serial, tdev);
 
        /* determine device type */
-       if (usb_match_id(serial->interface, ti_id_table_3410))
+       if (serial->type == &ti_1port_device)
                tdev->td_is_3410 = 1;
        dbg("%s - device type is %s", __func__,
                                tdev->td_is_3410 ? "3410" : "5052");