Re: [PATCH 1/2] pmdomain/rockchip: skip QoS operations for idle-only domains
From: Shawn Lin
Date: Sat Apr 04 2026 - 07:46:03 EST
+ Jonas
在 2026/04/04 星期六 5:27, Daniel Bozeman 写道:
I ran both tests you requested:
Test 1: Added pr_err to rockchip_pd_power_on/off to identify
the crashing domain. With patch 2 only (skip EPROBE_DEFER),
the crash occurs on PD_VO:
Thanks for fing the PD_VO, and I'm still requesting more docs internally
to check what's going on. I see there are several qos nodes under PD_VO,
but I'm not sure if they all belong to PD_VO and even not sure if their
registers are define correctly.
Perhaps, could you help dig more by removing the qos one by one from
PD_VO to narrow down the broken qos?
I also loop in Jonas who submited the code, to have a look.(I'm also
surprised to see there aren't any Qos nodes under PD_VO in vendor
kernel for reference, but upstream code has...)
rockchip_pd_power_off: vo pwr_mask=0x0
Internal error: synchronous external abort: 0000000096000010
Workqueue: pm genpd_power_off_work_fn
Call trace:
regmap_mmio_read32le+0x8/0x20
_regmap_bus_reg_read+0x6c/0xac
_regmap_read+0x60/0xd8
regmap_read+0x4c/0x7c
rockchip_pmu_set_idle_request.isra.0+0x98/0x16c
rockchip_pd_power+0x130/0x48c
rockchip_pd_power_off+0x38/0x48
genpd_power_off.isra.0+0x1f0/0x2f0
genpd_power_off_work_fn+0x34/0x54
Test 2: Same debug build, booted with clk_ignore_unused
added to kernel cmdline via U-Boot. Same crash, same domain:
rockchip_pd_power_off: vo pwr_mask=0x0
Internal error: synchronous external abort: 0000000096000010
(identical call trace)
The crash occurs even with clk_ignore_unused. The QoS
registers for PD_VO are inaccessible when genpd attempts
to power off this idle-only domain.