Something between 5.10.26 and 5.20.30 broke (at least) the USB CDC implementation by ST Microsystems on their STM32 devices. On opending of the device following error occurs: [ 1333.790160] cdc_acm 1-10:1.0: acm_port_activate - usb_submit_urb(ctrl irq) failed 5.10.26 works - 5.10.30 does not. Tested on the 2 identical devices with 2 different firmware (read: different firmware from 2 different developers) on different ports (USB3&USB2) with and without hub. Additionally, someone else reports similar problems here: https://forum.manjaro.org/t/usb-device-dev-ttyacm0-throws-i-o-error-on-connect/61385 lsusb dump under 5.10.30: Bus 001 Device 016: ID 0483:5740 STMicroelectronics Virtual COM Port Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 2 Communications bDeviceSubClass 2 Abstract (modem) bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x0483 STMicroelectronics idProduct 0x5740 Virtual COM Port bcdDevice 2.00 iManufacturer 1 STMicroelectronics iProduct 2 STM32 Virtual ComPort iSerial 3 204E37773453 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x0043 bNumInterfaces 2 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xc0 Self Powered MaxPower 100mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 2 Communications bInterfaceSubClass 2 Abstract (modem) bInterfaceProtocol 1 AT-commands (v.25ter) iInterface 0 CDC Header: bcdCDC 1.10 CDC Call Management: bmCapabilities 0x00 bDataInterface 1 CDC ACM: bmCapabilities 0x02 line coding and serial state CDC Union: bMasterInterface 0 bSlaveInterface 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 16 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 10 CDC Data bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 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 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 can't get device qualifier: Resource temporarily unavailable can't get debug descriptor: Resource temporarily unavailable Device Status: 0x0001 Self Powered
On Thu, Apr 22, 2021 at 04:32:51PM +0000, bugzilla-daemon@bugzilla.kernel.org wrote: > https://bugzilla.kernel.org/show_bug.cgi?id=212751 > > Bug ID: 212751 > Summary: acm_port_activate - usb_submit_urb(ctrl irq) failed > after kernel update > Product: Drivers > Version: 2.5 > Kernel Version: 5.10.30 > Hardware: All > OS: Linux > Tree: Mainline > Status: NEW > Severity: normal > Priority: P1 > Component: USB > Assignee: drivers_usb@kernel-bugs.kernel.org > Reporter: johann.wilhelm@wilhelm.consulting > Regression: No > > Something between 5.10.26 and 5.20.30 broke (at least) the USB CDC > implementation by ST Microsystems on their STM32 devices. > > On opending of the device following error occurs: > [ 1333.790160] cdc_acm 1-10:1.0: acm_port_activate - usb_submit_urb(ctrl irq) > failed > > > 5.10.26 works - 5.10.30 does not. This is likely due to commit 6069e3e927c8 ("USB: cdc-acm: untangle a circular dependency between callback and softint") which had a bug that was just fixed by commit a8b3b519618f ("USB: CDC-ACM: fix poison/unpoison imbalance"). You can try applying the latter yourself but it will otherwise show up in stable soon. Johan
I applied the patch to 5.10.30, and it works again! Thanks, Johann
Can confirm the issue on 5.11.0-17 as well (Ubuntu)
Found the same issue on ubuntu 18.04 : 4.15.0-144. It started to work properly when tried running at 4.15.0-143.