Skip to content

Commit

Permalink
pl2303: improve the chip type information output on startup
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Frank Schäfer authored and Greg Kroah-Hartman committed Aug 14, 2013
1 parent 73b583a commit a77a8c2
Showing 1 changed file with 10 additions and 5 deletions.
15 changes: 10 additions & 5 deletions drivers/usb/serial/pl2303.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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);
Expand Down

0 comments on commit a77a8c2

Please sign in to comment.