pl2303: improve the chip type information output on startup
authorFrank Schäfer <fschaefer.oss@googlemail.com>
Wed, 14 Aug 2013 18:09:10 +0000 (20:09 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 14 Aug 2013 19:12:42 +0000 (12:12 -0700)
The chip type distinction is getting more and more relevant and
complicating, so always print the chip type.
Printing a name string is also much better than just printing an
internal index number.

Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/serial/pl2303.c

index 7efb39cd6f74b43ea425509e9d4260826c352f11..409000a836ddb5868612f88b5bc6448094b0e6fc 100644 (file)
@@ -177,6 +177,7 @@ static int pl2303_startup(struct usb_serial *serial)
 {
        struct pl2303_serial_private *spriv;
        enum pl2303_type type = type_0;
+       char *type_str = "unknown (treating as type_0)";
        unsigned char *buf;
 
        spriv = kzalloc(sizeof(*spriv), GFP_KERNEL);
@@ -189,14 +190,18 @@ static int pl2303_startup(struct usb_serial *serial)
                return -ENOMEM;
        }
 
-       if (serial->dev->descriptor.bDeviceClass == 0x02)
+       if (serial->dev->descriptor.bDeviceClass == 0x02) {
                type = type_0;
-       else if (serial->dev->descriptor.bMaxPacketSize0 == 0x40)
+               type_str = "type_0";
+       } else if (serial->dev->descriptor.bMaxPacketSize0 == 0x40) {
                type = HX;
-       else if (serial->dev->descriptor.bDeviceClass == 0x00
-                || serial->dev->descriptor.bDeviceClass == 0xFF)
+               type_str = "X/HX";
+       } else if (serial->dev->descriptor.bDeviceClass == 0x00
+                  || serial->dev->descriptor.bDeviceClass == 0xFF) {
                type = type_1;
-       dev_dbg(&serial->interface->dev, "device type: %d\n", type);
+               type_str = "type_1";
+       }
+       dev_dbg(&serial->interface->dev, "device type: %s\n", type_str);
 
        spriv->type = type;
        usb_set_serial_data(serial, spriv);