Description
Problem is as follows:
At boot, a nominal 320 interrupts/sec happen versus IRQ32 (dwc_otg). On opening a PL2303 serial port adapter e.g. in Minicom, this number leaps to 10,000 per second give or take a few.
However when the serial port is closed (program exit) these IRQ32 interrupt rates do not decrease and continue at the same rate as previously.
I added some printk stats reporting to the interrupt handler and found out in the normal state, about 140 SOF interrupts are processed per second with a corresponding Host Channel Halted interrupts at about 140 as well. The FIQ gets hammered with about 25k interrupts a second.
After closing the serial port, the only counter incrementing at the specified rate is the SOF (IRQ) interrupt.
Unplugging the device, unplugging the hub have no effect. The only solution to get back to FIQ-handling mode is to reboot.
If I disable via dwc_otg.fiq_fix_enable=0 on the command line, behaviour is 8000 IRQs per second (idle) and 10000 per second (serial port open) but this then reverts back to 8000 on serial port closure.
lsusb -v:
Bus 001 Device 004: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0 (Defined at Interface level)
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 39
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 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x000a 1x 10 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Device Status: 0x0000
(Bus Powered)