Messages in this thread | | | Date | Mon, 8 Aug 2022 15:46:44 +0300 | From | Mika Westerberg <> | Subject | Re: Apple Thunderbolt Display chaining |
| |
On Mon, Aug 08, 2022 at 08:25:56PM +0800, Brad Campbell wrote: > root@bkd:/sys/bus/pci/devices/0000:31:04.0# modprobe thunderbolt > root@bkd:/sys/bus/pci/devices/0000:31:04.0# time cat config | hexdump > > <slowdown/lockup/reboot> > > This on the serial console : > [ 160.248275] ACPI: bus type thunderbolt registered > [ 160.253386] thunderbolt 0000:05:00.0: enabling device (0000 -> 0002) > [ 160.872438] thunderbolt 0-3: new device found, vendor=0x1 device=0x8002 > [ 160.879398] thunderbolt 0-3: Apple, Inc. Thunderbolt Display > [ 161.436984] thunderbolt 0-303: new device found, vendor=0x1 device=0x8002 > [ 161.444108] thunderbolt 0-303: Apple, Inc. Thunderbolt Display > [ 165.324982] hrtimer: interrupt took 604007930 ns > [ 169.744439] xhci_hcd 0000:28:00.0: Unable to change power state from D3hot to D0, device inaccessible > [ 223.912783] rcu: INFO: rcu_preempt self-detected stall on CPU > [ 229.741463] rcu: 9-....: (126 ticks this GP) idle=0d44/1/0x4000000000000000 softirq=1935/1935 fqs=76 > [ 237.593512] (t=7349 jiffies g=1537 q=264 ncpus=12) > [ 242.425503] NMI backtrace for cpu 9 > [ 244.640203] CPU: 9 PID: 57 Comm: ksoftirqd/9 Tainted: G O 5.19.0+ #57 > [ 251.082940] Hardware name: Gigabyte Technology Co., Ltd. B550 VISION D-P/B550 VISION D-P, BIOS F15d 07/20/2022 > [ 258.532330] Call Trace: > [ 260.545693] <IRQ> > [ 262.156386] dump_stack_lvl+0x34/0x44 > [ 264.985085] nmi_cpu_backtrace.cold+0x30/0x70 > [ 268.800445] ? lapic_can_unplug_cpu+0x90/0x90 > [ 273.028459] nmi_trig
Yeah, the link (PCIe tunnel) seems not to be functional and that causes the hang. In addition to what I asked in my previous email, let's block runtime PM from xHCI too in drivers/usb/host/xhci-pci.c::xhci_pci_quirks():
Comment out this block:
if (pdev->vendor == PCI_VENDOR_ID_INTEL && (pdev->device == PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_2C_XHCI || pdev->device == PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_4C_XHCI || pdev->device == PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_LP_XHCI || pdev->device == PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_C_2C_XHCI || pdev->device == PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_C_4C_XHCI || pdev->device == PCI_DEVICE_ID_INTEL_TITAN_RIDGE_2C_XHCI || pdev->device == PCI_DEVICE_ID_INTEL_TITAN_RIDGE_4C_XHCI || pdev->device == PCI_DEVICE_ID_INTEL_TITAN_RIDGE_DD_XHCI || pdev->device == PCI_DEVICE_ID_INTEL_ICE_LAKE_XHCI || pdev->device == PCI_DEVICE_ID_INTEL_TIGER_LAKE_XHCI || pdev->device == PCI_DEVICE_ID_INTEL_MAPLE_RIDGE_XHCI || pdev->device == PCI_DEVICE_ID_INTEL_ALDER_LAKE_XHCI || pdev->device == PCI_DEVICE_ID_INTEL_ALDER_LAKE_N_XHCI || pdev->device == PCI_DEVICE_ID_INTEL_ALDER_LAKE_PCH_XHCI || pdev->device == PCI_DEVICE_ID_INTEL_RAPTOR_LAKE_XHCI || pdev->device == PCI_DEVICE_ID_INTEL_METEOR_LAKE_XHCI)) xhci->quirks |= XHCI_DEFAULT_PM_RUNTIME_ALLOW;
| |