USB: serial: pl2303: fix type detection for odd device
Subsystems (3)
Johan Hovold
maintainerPATCH 1/1 USB: serial: pl2303: fix type detection for odd device
At least one pl2303 device has a bcdUSB of 1.0.1 which most likely was was intended as 1.1.
Allow bcdDevice 1.0.1 but interpret it as 1.1.
---
Bus 001 Device 004: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.01
bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x067b Prolific Technology, Inc. idProduct 0x2303 PL2303 Serial Port bcdDevice 3.00 iManufacturer 1 Prolific Technology Inc. iProduct 2 USB-Serial Controller iSerial 0 bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0027
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0020 1x 32 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0020 1x 32 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0020 1x 32 bytes
bInterval 0
Device Status: 0x0000
(Bus Powered)
drivers/usb/serial/pl2303.c | 3 +++ 1 file changed, 3 insertions(+)
drivers/usb/serial/pl2303.c +3 -0
@@ -421,6 +421,9 @@ static int pl2303_detect_type(struct usb_serial *serial) bcdUSB =le16_to_cpu (desc->bcdUSB);switch (bcdUSB) { +case 0x101 : +/* USB 1.0.1? Let's assume they meant 1.1... */ + fallthrough;case 0x110 :switch (bcdDevice) {case 0x300 :
Signature · 1 line
2.35.1