pl2303: improve the chip type information output on startup

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>
This commit is contained in:
Frank Schäfer 2013-08-14 20:09:10 +02:00 committed by Greg Kroah-Hartman
parent 73b583af59
commit a77a8c23e4

View 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);