[BUG][RT][ti-j72xx] spi: cadence-quadspi: boot failed with rtmutex deadlock detected

He, Guocai (CN) Guocai.He.CN at windriver.com
Wed Dec 17 00:21:19 PST 2025


Hi all,

I am seeing an reproducible issue in
drivers/spi/spi-cadence-quadspi.c on TI J72xx platform.

Kernel:
  v6.1/standard/preempt-rt/ti-sdk-6.1/ti-j7xxx
  (based on Linux v6.1.159 PREEMPT_RT)

Platform:
  TI J72xx
  QSPI controller: Cadence QuadSPI

Problem description:
when boot fail with the following call trace:
[    2.028205] ------------[ cut here ]------------
[    2.028213] rtmutex deadlock detected
[    2.028227] WARNING: CPU: 1 PID: 50 at kernel/locking/rtmutex.c:1642 __rt_mutex_slowlock_locked.constprop.0+0x184/0x2dc
[    2.028246] Modules linked in:
[    2.028256] CPU: 1 PID: 50 Comm: kworker/u8:1 Not tainted 6.1.159-rt32-yocto-preempt-rt #1
[    2.028263] Hardware name: Texas Instruments AM62A7 SK (DT)
[    2.028269] Workqueue: events_unbound deferred_probe_work_func
[    2.028282] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[    2.028288] pc : __rt_mutex_slowlock_locked.constprop.0+0x184/0x2dc
[    2.028294] lr : __rt_mutex_slowlock_locked.constprop.0+0x184/0x2dc
[    2.028300] sp : fffffe000abef090
[    2.028302] x29: fffffe000abef110 x28: fffffe00090dc620 x27: 0000000000000001
[    2.028311] x26: fffffc0801af98f8 x25: 0000000000000000 x24: fffffc0804ac4088
[    2.028319] x23: 0000000000000000 x22: fffffe000abef098 x21: 00000000ffffffdd
[    2.028327] x20: fffffc0801a01d80 x19: fffffc08034b53e0 x18: ffffffffffffffff
[    2.028335] x17: 0000000000000000 x16: 0000000000000001 x15: fffffe000abef5b0
[    2.028343] x14: fffffc0804d1ad8e x13: 0a64657463657465 x12: 64206b636f6c6461
[    2.028351] x11: fffffffffffe0000 x10: 2d2d2d2d2d2d2d2d x9 : fffffe00080fc87c
[    2.028359] x8 : fffffe000abef090 x7 : 6b636f6c64616564 x6 : 000000000000000c
[    2.028367] x5 : 00000000fffff141 x4 : fffffe000abeee40 x3 : 0000000000000000
[    2.028375] x2 : 0000000000000000 x1 : 0000000000000000 x0 : fffffc0801a01d80
[    2.028384] Call trace:
[    2.028386]  __rt_mutex_slowlock_locked.constprop.0+0x184/0x2dc
[    2.028393]  mutex_lock+0x98/0xbc
[    2.028401]  spi_controller_resume+0x28/0xbc
[    2.028410]  cqspi_resume+0x58/0xa4
[    2.028418]  pm_generic_runtime_resume+0x34/0x50
[    2.028426]  __genpd_runtime_resume+0x38/0x90
[    2.028434]  genpd_runtime_resume+0x148/0x27c
[    2.028443]  __rpm_callback+0x50/0x1b4
[    2.028452]  rpm_callback+0x74/0x80
[    2.028459]  rpm_resume+0x5e4/0x85c
[    2.028467]  __pm_runtime_resume+0x5c/0xc0
[    2.028474]  cqspi_exec_mem_op+0x64/0xf50
[    2.028481]  spi_mem_exec_op+0x3bc/0x410
[    2.028487]  spinand_reset_op.constprop.0+0x64/0xa0
[    2.028495]  spinand_probe+0xdc/0x650
[    2.028502]  spi_mem_probe+0x74/0xc4
[    2.028508]  spi_probe+0x8c/0xec
[    2.028515]  really_probe+0xc4/0x2e0
[    2.028523]  __driver_probe_device+0x80/0x120
[    2.028531]  driver_probe_device+0xdc/0x170
[    2.028539]  __device_attach_driver+0xc0/0x14c
[    2.028548]  bus_for_each_drv+0x88/0xec
[    2.028555]  __device_attach+0xa8/0x1ac
[    2.028563]  device_initial_probe+0x1c/0x30
[    2.028572]  bus_probe_device+0xa4/0xb0
[    2.028579]  device_add+0x380/0x784
[    2.028586]  __spi_add_device+0x74/0x114
[    2.028592]  spi_add_device+0x68/0xa0
[    2.028597]  spi_register_controller+0x730/0xb00
[    2.028602]  cqspi_probe+0x690/0x98c
[    2.028608]  platform_probe+0x70/0xcc
[    2.028615]  really_probe+0xc4/0x2e0
[    2.028623]  __driver_probe_device+0x80/0x120
[    2.028631]  driver_probe_device+0xdc/0x170
[    2.028639]  __device_attach_driver+0xc0/0x14c
[    2.028648]  bus_for_each_drv+0x88/0xec
[    2.028655]  __device_attach+0xa8/0x1ac
[    2.028663]  device_initial_probe+0x1c/0x30
[    2.028671]  bus_probe_device+0xa4/0xb0
[    2.028679]  deferred_probe_work_func+0x90/0xd0
[    2.028687]  process_one_work+0x1f8/0x4b0
[    2.028696]  worker_thread+0x238/0x440
[    2.028703]  kthread+0x138/0x140
[    2.028710]  ret_from_fork+0x10/0x20
[    2.028718] ---[ end trace 0000000000000000 ]---

Analysis:
* 18db8c7f20a6 (HEAD) Revert "spi: cadence-qspi: fix pointer reference in runtime PM hooks"
*   7083c6620486 Merge branch 'v6.1/standard/base' into v6.1/standard/preempt-rt/ti-sdk-6.1/ti-j7xxx
|\
| *   2c1b513331dc Merge tag 'v6.1.140' into v6.1/standard/base
| |\
| | * da3c5173c55f (tag: v6.1.140) Linux 6.1.140
| | * 05e85d376720 x86/modules: Set VM_FLUSH_RESET_PERMS in module_alloc()

It is ok at da3c5173c55f,but it is bad at 7083c6620486.
I revert the commit(2c914aac952) which merged from stable release,  it also ok at 18db8c7f20a6.
Maybe it is a compatibility issue between v6.1/standard/preempt-rt/ti-sdk-6.1/ti-j7xxx and the stable release.

if this is an known issue ? 

Thanks,
Guocai He


More information about the linux-arm-kernel mailing list