Commit 28523a4
committed
sunxi-6.18: fix H3/H5 RCU stall / CPU hang during DVFS
Disable the megous aw-opp-6.18 patch 0002 ("Don't use CPU PLL gating and
CPUX reparenting to HOSC") on the current (6.18) kernel.
That patch removes two CPU-clock safety notifiers from ccu-sun8i-h3.c:
- sun8i_h3_pll_cpu_nb - gates pll_cpux across rate changes so it relocks
cleanly
- sun8i_h3_cpu_nb - reparents the CPU to the 24 MHz oscillator while
pll_cpux is being reprogrammed, then switches back
Without them the core keeps executing off pll_cpux while the PLL is mid
relock. On 6.18 the sunxi clk core was refactored (round_rate ->
determine_rate in ccu_nkmp, ccu_mp rework), and that live PLL change now
glitches the CPU at the first cpufreq/DVFS transition -> core hang -> RCU
stall. It manifests right after thermal zone init (when the governor starts
scaling) and bricks boot on H3/H5 boards.
The patch is identical on legacy 6.12, which boots fine - the difference is
purely the 6.18 clk-core rework, so this is an interaction regression, not a
patch that stopped applying. Leaving 0002 unapplied restores upstream's
notifiers (the 6.12 behaviour) and is the minimal, conservative fix; the OPP
tables and 0001 (max P/M=1) are untouched.
Edge (aw-opp-7.0) is unaffected: it applies 0002 but then reverts it via
0012 and refines with 0013/0008, so the notifiers are already present there
- it must NOT disable 0002 (0012 would have nothing to revert).
Confirmed on hardware: orangepizeroplus (H5) now boots normally on current.
Signed-off-by: Igor Pecovnik <igor@armbian.com>1 parent cbd3cb3 commit 28523a4
1 file changed
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
64 | 64 | | |
65 | 65 | | |
66 | 66 | | |
67 | | - | |
| 67 | + | |
68 | 68 | | |
69 | 69 | | |
70 | 70 | | |
| |||
0 commit comments