Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a77a8c23 authored by Frank Schäfer's avatar Frank Schäfer Committed by Greg Kroah-Hartman
Browse files

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: default avatarFrank Schäfer <fschaefer.oss@googlemail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 73b583af
Loading
Loading
Loading
Loading
+10 −5
Original line number Diff line number Diff line
@@ -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);