FS#49642 - [linux] 4.6.x VIA VL805 USB 3.0 controller resets device making it unusable until re-plugged
Attached to Project:
Arch Linux
Opened by Dmitry (skwee) - Thursday, 09 June 2016, 21:52 GMT
Last edited by Sven-Hendrik Haase (Svenstaro) - Thursday, 03 March 2022, 13:15 GMT
Opened by Dmitry (skwee) - Thursday, 09 June 2016, 21:52 GMT
Last edited by Sven-Hendrik Haase (Svenstaro) - Thursday, 03 March 2022, 13:15 GMT
|
Details
Description:
I have a Gigabyte GA-H81M-HD3 motherboard. The motherboard provides: 2 USB 3.0/2.0 ports (available through the internal USB header) AND 6 USB 2.0/1.1 ports (2 ports on the back panel, 4 ports available through the internal USB headers) On the chipset itself (Intel chipsep, lspci output attached) AND 4 USB 3.0/2.0 ports on the back panel through VIA VL805 chip. All USB outputs (3.0 and 2.0) works well with 2.0 USB devices. However I've purchased a USB 3.0 card reader (Transcend USB 3.0 Multi-Card Reader) and when I connect it to the front USB3.0 output (located on the Intel chipset) everything works as expected, but when I connect it to any of the 4 USB3.0 ports on the back, after about 1-1.5 minutes the devices resets and I get an error "device not accepting address" (full dmesg output attached). At this point the device no longer functioning (also disappears from lsusb) and the only way to make it work is to unplug and plug it back but then again the same process happens, so essentially the rear USB 3.0 does not work at all. Since the device works correctly on the front USB 3.0, I believe that the issue is with the kernel itself / via controller driver, rather than the device (I do not have any other USB3.0 device to test). Additional info: lspci: 00:00.0 Host bridge: Intel Corporation 4th Gen Core Processor DRAM Controller (rev 06) 00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller (rev 06) 00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 05) 00:16.0 Communication controller: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #1 (rev 04) 00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 05) 00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 05) 00:1c.0 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 (rev d5) 00:1c.2 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #3 (rev d5) 00:1c.3 PCI bridge: Intel Corporation 82801 PCI Bridge (rev d5) 00:1c.5 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #6 (rev d5) 00:1d.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 (rev 05) 00:1f.0 ISA bridge: Intel Corporation C220 Series Chipset Family H81 Express LPC Controller (rev 05) 00:1f.2 SATA controller: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (rev 05) 00:1f.3 SMBus: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller (rev 05) 01:00.0 VGA compatible controller: NVIDIA Corporation GM107 [GeForce GTX 750] (rev a2) 01:00.1 Audio device: NVIDIA Corporation Device 0fbc (rev a1) 03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 06) 04:00.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 41) 06:00.0 USB controller: VIA Technologies, Inc. VL805 USB 3.0 Host Controller (rev 01) Notice the 3 USB controllers: Intel 8 series/C220 series chipset for xHCI, EHCI #1 and EHCI #2 as well as VIA VL805 USB 3.0 controller. dmesg -wH [Jun10 00:21] Linux version 4.6.2-1-ARCH (builduser@tobias) (gcc version 6.1.1 20160602 (GCC) ) #1 SMP PREEMPT Wed Jun 8 08:40:59 CEST 2016 ** omitted irrelevant data ** [ +0.000000] ------------[ cut here ]------------ [ +0.000000] WARNING: CPU: 0 PID: 0 at drivers/iommu/dmar.c:830 warn_invalid_dmar.part.1+0x76/0x90 [ +0.000000] Your BIOS is broken; DMAR reported at address 0! BIOS vendor: American Megatrends Inc.; Ver: F2; Product Version: To be filled by O.E.M. [ +0.000000] Modules linked in: [ +0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 4.6.2-1-ARCH #1 [ +0.000000] Hardware name: Gigabyte Technology Co., Ltd. H81M-HD3/H81M-HD3, BIOS F2 08/14/2013 [ +0.000000] 0000000000000086 8c8c09699d9357e2 ffffffff81803d30 ffffffff812e5492 [ +0.000000] ffffffff81803d80 0000000000000000 ffffffff81803d70 ffffffff8107a6bb [ +0.000000] 0000033e81941c89 0000000000000000 ffffffff8171f902 ffffffff81b4e01c [ +0.000000] Call Trace: [ +0.000000] [<ffffffff812e5492>] dump_stack+0x63/0x81 [ +0.000000] [<ffffffff8107a6bb>] __warn+0xcb/0xf0 [ +0.000000] [<ffffffff8107a7b7>] warn_slowpath_fmt_taint+0x57/0x70 [ +0.000000] [<ffffffff81941ee4>] ? early_ioremap+0x9/0xb [ +0.000000] [<ffffffff81921f50>] ? __acpi_map_table+0x13/0x18 [ +0.000000] [<ffffffff813fbfc6>] warn_invalid_dmar.part.1+0x76/0x90 [ +0.000000] [<ffffffff815be2e0>] dmar_validate_one_drhd+0xa0/0xe0 [ +0.000000] [<ffffffff813fbb9a>] dmar_walk_remapping_entries+0x8a/0x1a0 [ +0.000000] [<ffffffff813946fc>] ? acpi_get_table_with_size+0x63/0xb9 [ +0.000000] [<ffffffff81955856>] detect_intel_iommu+0x5f/0xf4 [ +0.000000] [<ffffffff815be240>] ? xen_swiotlb_init+0x500/0x500 [ +0.000000] [<ffffffff8191cbfc>] pci_iommu_alloc+0x50/0x6c [ +0.000000] [<ffffffff8192b844>] mem_init+0x17/0x9d [ +0.000000] [<ffffffff8190cdde>] start_kernel+0x22c/0x45f [ +0.000000] [<ffffffff8190c120>] ? early_idt_handler_array+0x120/0x120 [ +0.000000] [<ffffffff8190c346>] x86_64_start_reservations+0x2a/0x2c [ +0.000000] [<ffffffff8190c494>] x86_64_start_kernel+0x14c/0x16f [ +0.000000] ---[ end trace 030a3d2481f72efb ]--- ** omitted irrelevant data ** [ +0.007274] ACPI: bus type USB registered [ +0.000038] usbcore: registered new interface driver usbfs [ +0.000021] usbcore: registered new interface driver hub [ +0.000052] usbcore: registered new device driver usb [ +0.000441] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ +0.000265] ehci-pci: EHCI PCI platform driver [ +0.000127] ehci-pci 0000:00:1a.0: EHCI Host Controller [ +0.000006] ehci-pci 0000:00:1a.0: new USB bus registered, assigned bus number 1 [ +0.000016] ehci-pci 0000:00:1a.0: debug port 2 [ +0.000749] SCSI subsystem initialized [ +0.001027] libata version 3.00 loaded. [ +0.002108] ehci-pci 0000:00:1a.0: cache line size of 64 is not supported [ +0.000010] ehci-pci 0000:00:1a.0: irq 16, io mem 0xf3318000 [ +0.008033] ehci-pci 0000:00:1a.0: USB 2.0 started, EHCI 1.00 [ +0.000178] hub 1-0:1.0: USB hub found [ +0.000008] hub 1-0:1.0: 2 ports detected [ +0.000261] ehci-pci 0000:00:1d.0: EHCI Host Controller [ +0.000013] ehci-pci 0000:00:1d.0: new USB bus registered, assigned bus number 2 [ +0.000013] ehci-pci 0000:00:1d.0: debug port 2 [ +0.003906] ehci-pci 0000:00:1d.0: cache line size of 64 is not supported [ +0.000009] ehci-pci 0000:00:1d.0: irq 23, io mem 0xf3317000 [ +0.008939] ehci-pci 0000:00:1d.0: USB 2.0 started, EHCI 1.00 [ +0.000175] hub 2-0:1.0: USB hub found [ +0.000004] hub 2-0:1.0: 2 ports detected [ +0.000167] xhci_hcd 0000:00:14.0: xHCI Host Controller [ +0.000006] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 3 [ +0.001071] xhci_hcd 0000:00:14.0: hcc params 0x200077c1 hci version 0x100 quirks 0x00009810 [ +0.000004] xhci_hcd 0000:00:14.0: cache line size of 64 is not supported [ +0.000144] hub 3-0:1.0: USB hub found [ +0.000012] hub 3-0:1.0: 10 ports detected [ +0.001105] xhci_hcd 0000:00:14.0: xHCI Host Controller [ +0.000003] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 4 [ +0.000094] hub 4-0:1.0: USB hub found [ +0.000007] hub 4-0:1.0: 2 ports detected [ +0.000291] ahci 0000:00:1f.2: version 3.0 [ +0.000033] xhci_hcd 0000:06:00.0: xHCI Host Controller [ +0.000003] xhci_hcd 0000:06:00.0: new USB bus registered, assigned bus number 5 [ +0.000095] xhci_hcd 0000:06:00.0: hcc params 0x002841eb hci version 0x100 quirks 0x00000090 [ +0.000010] ahci 0000:00:1f.2: AHCI 0001.0300 32 slots 4 ports 6 Gbps 0x3 impl SATA mode [ +0.000002] ahci 0000:00:1f.2: flags: 64bit ncq led clo pio slum part ems [ +0.000225] hub 5-0:1.0: USB hub found [ +0.000008] hub 5-0:1.0: 1 port detected [ +0.000064] xhci_hcd 0000:06:00.0: xHCI Host Controller [ +0.000004] xhci_hcd 0000:06:00.0: new USB bus registered, assigned bus number 6 [ +0.000022] usb usb6: We don't know the algorithms for LPM for this host, disabling LPM. [ +0.000168] hub 6-0:1.0: USB hub found [ +0.000010] hub 6-0:1.0: 4 ports detected ** omitted irrelevant data ** ** the device in question is now connected and then after about 1 minute resets ** [Jun10 00:22] usb 6-2: new SuperSpeed USB device number 2 using xhci_hcd [ +0.032587] usb-storage 6-2:1.0: USB Mass Storage device detected [ +0.000530] scsi host4: usb-storage 6-2:1.0 [ +0.000489] usbcore: registered new interface driver usb-storage [ +0.002221] usbcore: registered new interface driver uas [ +1.001382] scsi 4:0:0:0: Direct-Access Generic STORAGE DEVICE TS26 PQ: 0 ANSI: 6 [ +0.000646] scsi 4:0:0:1: Direct-Access Generic STORAGE DEVICE TS26 PQ: 0 ANSI: 6 [ +0.000589] scsi 4:0:0:2: Direct-Access Generic STORAGE DEVICE TS26 PQ: 0 ANSI: 6 [ +0.007183] sd 4:0:0:0: [sdc] Attached SCSI removable disk [ +0.000908] sd 4:0:0:1: [sdd] Attached SCSI removable disk [ +0.001125] sd 4:0:0:2: [sde] Attached SCSI removable disk [Jun10 00:23] usb 3-3: reset high-speed USB device number 2 using xhci_hcd [Jun10 00:24] xhci_hcd 0000:06:00.0: Timeout while waiting for setup device command [ +5.214018] xhci_hcd 0000:06:00.0: Timeout while waiting for setup device command [ +0.203334] usb 6-2: device not accepting address 2, error -62 [ +3.977266] usb usb6-port2: Cannot enable. Maybe the USB cable is bad? [ +2.410228] usb usb6-port2: Could not disable after 2000 ms [ +0.770106] usb 6-2: device not accepting address 2, error -22 [ +3.970509] usb usb6-port2: Cannot enable. Maybe the USB cable is bad? [ +2.400384] usb usb6-port2: Could not disable after 2000 ms [ +0.000216] usb 6-2: USB disconnect, device number 2 Please note: I DID NOT disconnect the device. It stays connected to the USB port even though dmesg reports it was disconnected, making the device useless. In BIOS itself I found only 2 options that are somehow related to USB: "XHCI Handoff" and "EHCI Handoff". They are set to "Enabled" and "Disabled" respectively. Steps to reproduce: Acquire motherboard with VIA VL805 USB3.0 controller. Connect USB3.0 device to USB3.0 port, after about 1-1.5 minutes the device becomes unresponsive and dmesg reports that it timed out trying to setup device and then disconnects it. |
This task depends upon
Closed by Sven-Hendrik Haase (Svenstaro)
Thursday, 03 March 2022, 13:15 GMT
Reason for closing: Not a bug
Additional comments about closing: 2022-02-27: A task closure has been requested. Reason for request: Firmware-related issue. See last comment.
Thursday, 03 March 2022, 13:15 GMT
Reason for closing: Not a bug
Additional comments about closing: 2022-02-27: A task closure has been requested. Reason for request: Firmware-related issue. See last comment.
Reported to kernel.org (https://bugzilla.kernel.org/show_bug.cgi?id=120981)
My version of the firmware (013600 vs 013704) was older than the new one.
[b]Note that to update the firmware, you need to unninstall the windows driver in the device manager, I've had some issues updating it.[/b]
This was the response of VIA tech support when I asked them for Linux issues:
[quote=VIA Support]
Hi,
VL805 is working well on Fedora 4.13.9-300. fc27.x86_64 .
And we also test on Fedora 4.13.16-100. fc25.x86_64 .
The function is ok, USB device can be recognized under VL805.
This issue should be possibly related to AMD driver behavior
Test condition in VLI:
CPU = Intel i3-8100
Motherboard : MSI Z370 Gaming M5
You can download the latest firmware update tool for VL805 and check the function.
User guide is stored in the folder.
This tool only support on Windows-based.
https://www.dropbox.com/s/68srdt4gmvgsv6k/VL805%26VL806%20FW%20Update%20Tool.zip?dl=0
If there is any question, please contact me.
Thanks.
[/quote]
I Hope my message helps other people, since there aren't any other place I've found that shows the true sollution.