We have a usb3.0 camera connected and it will randomly disappear.
I found log like this in /var/log/syslog. Any idea what is happening and how can we eliminate it? Thanks.
Dec 3 16:19:23 kernel: [115244.117992] tegra-xusb-padctl 7009f000.xusb_padctl: power on UTMI pads 1
Dec 3 16:19:23 kernel: [115244.261556] tegra-xusb-padctl 7009f000.xusb_padctl: power down UTMI pad 1
Dec 3 16:19:23 kernel: [115244.281424] usb 1-2: usb_suspend_both: status 0
Dec 3 16:19:23 kernel: [115244.282255] usb 1-2: USB disconnect, device number 2
Dec 3 16:19:23 kernel: [115244.312278] usb 1-3: USB disconnect, device number 3
Dec 3 16:19:23 kernel: [115244.312713] usb usb1: usb_suspend_both: status 0
Dec 3 16:19:27 kernel: [115247.882110] usb 2-1.3: USB disconnect, device number 3
Dec 3 16:19:27 kernel: [115247.929565] usb 2-1: usb_suspend_both: status 0
Dec 3 16:19:27 kernel: [115247.957769] usb 2-1: USB disconnect, device number 2
Dec 3 16:19:27 kernel: [115247.985872] usb usb2: usb_suspend_both: status 0
Dec 3 16:19:27 kernel: [115247.985896] tegra-xusb 70090000.xusb: entering ELPG
Dec 3 16:19:27 kernel: [115247.988930] tegra-xusb-padctl 7009f000.xusb_padctl: power down UTMI pad 2
Dec 3 16:19:27 kernel: [115247.989023] tegra-xusb 70090000.xusb: entering ELPG done
Devices which are marginal and don’t have enough power won’t show up in the logs, but if the power delivery circuit detects over-current, then that would show up. However, I see some autosuspend logs. This is often a problem because many devices don’t correctly implement autosuspend. You might test be adding “usbcore.autosuspend=-1” to your kernel command line.
To see your current kernel command line: cat /proc/cmdline
Normally the USB part is via a module, in which case the easiest way to disable autosuspend is via a module config file (modules are part of the kernel, and you can send arguments to the module). The file would be “/etc/modprobe.d/usbcore.conf”. You would add that file if missing, or append this if the file already exists: options usbcore autosuspend=-1
You could also edit “/boot/extlinux/extlinux.conf”, and add this to the end of the “APPEND” key/value pair (make sure you keep this as one long line): usbcore.autosuspend=-1
…the result would be that the long APPEND ends with " usbcore.autosuspend=-1" (there is a space delimiter between arguments, and no space within an argument).
I won’t go into doing this with device tree unless you find you need to. Make the change, reboot, and check “/proc/cmdline” to see if the argument made its way in. If it is there, then test again and see if USB drop stops occurring.