Pencheff Posted December 15, 2020 Posted December 15, 2020 Armbianmonitor: http://ix.io/2IbI Board is RockPro64, legacy kernel - 4.4.213-rockchip64. The issue is this: [ 1451.681339] ohci-platform fe3a0000.usb: frame counter not updating; disabled [ 1451.681972] ohci-platform fe3a0000.usb: HC died; cleaning up [ 1451.682516] usb 8-1: usbfs: usb_submit_urb returned -19 [ 1451.682569] usb 8-1: USB disconnect, device number 2 It happens only on the USB2.0 ports with different keyboards, mice, custom USB HID device, webcam. The other 2x USB 3.0 ports are working fine with the same devices. Tried fixes so far - turning usbcore.autosuspend option off, adding usbhid.quirks for every device. extraargs=usbcore.autosuspend=-1 usbhid.quirks=0x10c4:0x85d4:0x00000400 The problem seems to be fixed in mainline kernel, as 24/7 test with continuous transfers to a custom USB HID device passes for 3 days that I tested. I cannot use mainline kernel since I need the VPU and GPU accelerated X with EGL. Any advice on fixing this in the legacy kernel is appreciated.
Solution Pencheff Posted December 19, 2020 Author Solution Posted December 19, 2020 (edited) Nevermind, it turns out not to be a kernel problem. Leaving details about what was wrong, if anyone else has similar issues. I have a custom USB HID device that gets accessed every 3-4 seconds by an app, which uses libusb. The libusb has 2 implementations - libusb-1.0 and hidraw. It turns out libusb-1.0 implementation was causing the host controller issues, funny it happened only with legacy kernels. The problems went away when I switched to the hidraw implementation. Edited December 19, 2020 by Pencheff
Recommended Posts