Hi Midgy, On 6/8/2026 5:14 PM, Midgy Balon wrote: > Hello Chaoyi, > > Following up on the need_regulator suggestion -- I implemented and > tested it on the > board, and unfortunately it doesn't avoid the deadlock on RK3568; it > moves it from > boot to the NPU job submit. > > What I did: gave the RK3568 NPU power domain a regulator (a DOMAIN_M_R > variant with > need_regulator = true), wired domain-supply = <&vdd_npu>, and dropped the > regulator-always-on workaround. > > Boot is now clean and the NPU probes, but there is a warning during boot: > > rockchip-pm-domain ...: Failed to create device link (0x180) with supplier > 0-0020 for .../power-domain@6 > > (0-0020 is the rk809 PMIC that supplies vdd_npu.) Then on the first NPU job > submit the board hard-hangs with an RCU stall: > > rcu: INFO: rcu_preempt detected stalls on CPUs/tasks: > rcu: 3-...!: (1 GPs behind) ... > rcu: rcu_preempt kthread starved for 5115 jiffies! ... RCU_GP_WAIT_FQS(5) > rcu: Unless rcu_preempt kthread gets sufficient CPU time, OOM is now > expected > > My reading: vdd_npu is on the rk809 *I2C* PMIC, so when genpd > enables/disables the > regulator during the NPU's runtime-PM power transition, the I2C > transfer runs in a > context that starves RCU and the box freezes. (I suspect > need_regulator is fine on > the RK3588 NPU because its supply isn't behind an I2C PMIC.) The always-on > workaround avoids this precisely because genpd never touches the I2C > regulator in > that path. >
No, they are all controlled by RK809. And This looks werid. Is your rocket driver compiled as a module? Please try compiling it as a module. When is the above error printed? Please provide the complete boot log. > So: for an NPU domain whose supply is an I2C PMIC, is there a > supported way to let > genpd own the regulator without performing the I2C op in the > power-transition path > (a deferred/async regulator enable, or a flag), or should RK3568 keep vdd_npu > as > regulator-always-on? For v4 I'll keep always-on unless there's a cleaner path. > -- Best, Chaoyi
