Re: [PATCH 1/2] pmdomain/rockchip: skip QoS operations for idle-only domains

Daniel Bozeman
2026-04-03T21:27:33Z

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:

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.