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
1 changed files with 10 additions and 5 deletions

View File

@ -177,6 +177,7 @@ static int pl2303_startup(struct usb_serial *serial)
{ {
struct pl2303_serial_private *spriv; struct pl2303_serial_private *spriv;
enum pl2303_type type = type_0; enum pl2303_type type = type_0;
char *type_str = "unknown (treating as type_0)";
unsigned char *buf; unsigned char *buf;
spriv = kzalloc(sizeof(*spriv), GFP_KERNEL); spriv = kzalloc(sizeof(*spriv), GFP_KERNEL);
@ -189,14 +190,18 @@ static int pl2303_startup(struct usb_serial *serial)
return -ENOMEM; return -ENOMEM;
} }
if (serial->dev->descriptor.bDeviceClass == 0x02) if (serial->dev->descriptor.bDeviceClass == 0x02) {
type = type_0; type = type_0;
else if (serial->dev->descriptor.bMaxPacketSize0 == 0x40) type_str = "type_0";
} else if (serial->dev->descriptor.bMaxPacketSize0 == 0x40) {
type = HX; type = HX;
else if (serial->dev->descriptor.bDeviceClass == 0x00 type_str = "X/HX";
|| serial->dev->descriptor.bDeviceClass == 0xFF) } else if (serial->dev->descriptor.bDeviceClass == 0x00
|| serial->dev->descriptor.bDeviceClass == 0xFF) {
type = type_1; 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; spriv->type = type;
usb_set_serial_data(serial, spriv); usb_set_serial_data(serial, spriv);