mt7988 usb broken on 6.10
From: Frank Wunderlich
Date: Fri Jul 26 2024 - 13:13:53 EST
Hi,
i've noticed that usb on mt7988 is broken in 6.10, was working on 6.9 (with some additional patches like
for pinctrl and dts as this chipset is not completely supported by mainline yet).
i see this in my dmesg
[ 6.147068] irq 105: nobody cared (try booting with the "irqpoll" option)
[ 6.153851] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 6.10.0-bpi-r4-main #1
[ 6.160803] Hardware name: Banana Pi BPI-R4 (DT)
[ 6.165409] Call trace:
[ 6.167846] dump_backtrace+0x94/0x114
[ 6.171593] show_stack+0x18/0x24
[ 6.174898] dump_stack_lvl+0x74/0x8c
[ 6.178553] dump_stack+0x18/0x24
[ 6.181859] __report_bad_irq+0x38/0x120
[ 6.185775] note_interrupt+0x308/0x358
[ 6.189601] handle_irq_event+0xd8/0xec
[ 6.193427] handle_fasteoi_irq+0xb0/0x284
[ 6.197515] generic_handle_domain_irq+0x2c/0x44
[ 6.202121] gic_handle_irq+0x4c/0x118
[ 6.205861] call_on_irq_stack+0x24/0x4c
[ 6.209774] do_interrupt_handler+0x80/0x84
[ 6.213947] el1_interrupt+0x34/0x54
[ 6.217514] el1h_64_irq_handler+0x18/0x24
[ 6.221600] el1h_64_irq+0x68/0x6c
[ 6.224991] default_idle_call+0x50/0xf0
[ 6.228905] do_idle+0xac/0xfc
[ 6.231952] cpu_startup_entry+0x38/0x3c
[ 6.235865] kernel_init+0x0/0x1d8
[ 6.239259] start_kernel+0x4ac/0x710
[ 6.242914] __primary_switched+0x80/0x88
[ 6.246916] handlers:
[ 6.249177] [<(____ptrval____)>] usb_hcd_irq
[ 6.253443] Disabling IRQ #105
...
[ 45.305428] xhci-mtk 11200000.usb: xHCI host not responding to stop endpoint command
[ 45.351865] xhci-mtk 11200000.usb: Host halt failed, -110
[ 45.357253] xhci-mtk 11200000.usb: xHCI host controller not responding, assume dead
[ 45.364918] xhci-mtk 11200000.usb: HC died; cleaning up
maybe anybody can point me to possible rootcause? as this seem to happen somewhere in interrupt-handling i have no idea where to search
this is what i did till now:
# cat /proc/interrupts| grep xhci
104: 0 0 0 0 GICv3 205 Level xhci-hcd:usb1
105: 100201 0 0 0 GICv3 204 Level xhci-hcd:usb3
mtk xhci driver itself seems unchanged so far
$ git logone drivers/usb/host/xhci-mtk*
06790c19086f 2024-02-29 xhci: replace real & fake port with pointer to root hub port Niklas Neronin
017dbfc05c31 2024-01-04 usb: xhci-mtk: fix a short packet issue of gen1 isoc-in transfer Chunfeng Yun
clocks seems also not the cause
$ git logone drivers/clk/mediatek/
878e845d8db0 2024-06-13 clk: mediatek: mt8183: Only enable runtime PM on mt8183-mfgcfg Pin-yen Lin
619b92b9c8fe 2024-05-18 Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux Linus Torvalds
4c0c087772d7 2024-04-18 clk: mediatek: mt8365-mm: fix DPI0 parent Alexandre Mergnat
bb7b3c8e7180 2024-03-08 clk: mediatek: pllfh: Don't log error for missing fhctl node Nícolas F. R. A. Prado
also when trying to find any error like pinctrl or similar seems not showing any more like above related to usb
root@bpi-r4-v11:~
# dmesg | grep -i 'err\|fail\|unable'
[ 0.000000] CPU features: detected: ARM erratum 858921
[ 0.000000] arch_timer: Enabling local workaround for ARM erratum 858921
[ 0.044091] cacheinfo: Unable to detect cache hierarchy for CPU 0
[ 0.070823] arch_timer: Enabling local workaround for ARM erratum 858921
[ 0.071164] arch_timer: Enabling local workaround for ARM erratum 858921
[ 0.071448] arch_timer: Enabling local workaround for ARM erratum 858921
[ 0.330245] platform 11280000.pcie: Fixed dependency cycle(s) with /soc/pcie@11280000/interrupt-controller
[ 0.340164] platform 11290000.pcie: Fixed dependency cycle(s) with /soc/pcie@11290000/interrupt-controller
[ 0.350045] platform 11300000.pcie: Fixed dependency cycle(s) with /soc/pcie@11300000/interrupt-controller
[ 0.359926] platform 11310000.pcie: Fixed dependency cycle(s) with /soc/pcie@11310000/interrupt-controller
[ 0.671440] mtk-xsphy soc:xphy@11e10000: failed to get ref_clk(id-1)
[ 0.686306] mtk-socinfo mtk-socinfo.0.auto: error -ENOENT: Failed to get socinfo data
[ 0.694258] mtk-socinfo mtk-socinfo.0.auto: probe with driver mtk-socinfo failed with error -2
[ 1.344755] ubi0 error: ubi_read_volume_table: the layout volume was not found
[ 1.352050] ubi0 error: ubi_attach_mtd_dev: failed to attach mtd1, error -22
[ 1.714508] rtc-pcf8563 2-0051: hctosys: unable to read the hardware clock
[ 1.805626] mtk-msdc 11230000.mmc: msdc_track_cmd_data: cmd=52 arg=00000C00; host->error=0x00000002
[ 1.818727] mtk-msdc 11230000.mmc: msdc_track_cmd_data: cmd=52 arg=80000C08; host->error=0x00000002
[ 1.835940] mtk-msdc 11230000.mmc: msdc_track_cmd_data: cmd=5 arg=00000000; host->error=0x00000002
[ 1.850219] mtk-msdc 11230000.mmc: msdc_track_cmd_data: cmd=5 arg=00000000; host->error=0x00000002
[ 1.867994] mtk-msdc 11230000.mmc: msdc_track_cmd_data: cmd=5 arg=00000000; host->error=0x00000002
[ 1.877061] mtk-msdc 11230000.mmc: msdc_track_cmd_data: cmd=5 arg=00000000; host->error=0x00000002
[ 2.005070] GPT: Use GNU Parted to correct GPT errors.
[ 2.184228] mtk-pcie-gen3 11280000.pcie: probe with driver mtk-pcie-gen3 failed with error -110
[ 6.185775] note_interrupt+0x308/0x358
[ 6.209774] do_interrupt_handler+0x80/0x84
[ 6.213947] el1_interrupt+0x34/0x54
[ 6.809767] systemd[1]: Failed to look up module alias 'autofs4': Function not implemented
[ 7.765542] systemd[1]: Arbitrary Executable File Formats File System Automount Point was skipped because of a failed condition check (Condit.
[ 8.099430] systemd[1]: Journal Audit Socket was skipped because of a failed condition check (ConditionSecurity=audit).
[ 8.285821] systemd[1]: Huge Pages File System was skipped because of a failed condition check (ConditionPathExists=/sys/kernel/mm/hugepages).
[ 8.455617] systemd[1]: Create List of Static Device Nodes was skipped because of a failed condition check (ConditionFileNotEmpty=/lib/module.
[ 8.685692] systemd[1]: Repartition Root Disk was skipped because all trigger condition checks failed.
[ 45.351865] xhci-mtk 11200000.usb: Host halt failed, -110
because of the pcie interrupt messages i checked my nvme and wifi-card and look sgood, so it seems no generic interrupt issue
# lspci
0000:00:00.0 PCI bridge: MEDIATEK Corp. Device 7988 (rev 01)
0000:01:00.0 Network controller: MEDIATEK Corp. Device 7990
0001:00:00.0 PCI bridge: MEDIATEK Corp. Device 7988 (rev 01)
0001:01:00.0 Network controller: MEDIATEK Corp. Device 7991
0002:00:00.0 PCI bridge: MEDIATEK Corp. Device 7988 (rev 01)
0002:01:00.0 Non-Volatile memory controller: ADATA Technology Co., Ltd. ADATA XPG GAMMIXS1 1L Media (rev 01)
full source is here:
https://github.com/frank-w/BPI-Router-Linux/tree/6.10-main
regards Frank