From 8729c661d517ed567538a5e1224d7ecd6be99901 Mon Sep 17 00:00:00 2001 From: Finley Xiao Date: Wed, 15 Jun 2022 09:35:26 +0800 Subject: [PATCH] soc: rockchip: power-domain: Fix panic when reset memory domain rockchip-pm-domain fd8d8000.power-management:power-controller: failed to get mem status 'venc0', target_on=0, val=1 Kernel panic - not syncing: panic_on_set_domain set ... CPU: 7 PID: 1 Comm: swapper/0 Not tainted 5.10.66 #1598 Hardware name: Rockchip RK3588 EVB1 LP4 V10 Board (DT) Call trace: dump_backtrace+0x0/0x1c8 show_stack+0x1c/0x2c dump_stack_lvl+0xdc/0x12c dump_stack+0x1c/0x64 panic+0x150/0x3a4 rockchip_do_pmu_set_power_domain+0x39c/0x3a0 rockchip_pd_power+0xcc/0x1bc rockchip_pd_power_on+0x28/0x38 genpd_power_on+0x104/0x294 __genpd_dev_pm_attach+0x138/0x1f0 genpd_dev_pm_attach+0x50/0x6c dev_pm_domain_attach+0x24/0x38 platform_drv_probe+0x3c/0xc4 really_probe+0x204/0x510 driver_probe_device+0x80/0xc0 device_driver_attach+0x70/0xb4 __driver_attach+0xc8/0x150 bus_for_each_dev+0x80/0xd0 driver_attach+0x28/0x38 bus_add_driver+0x108/0x1e8 driver_register+0x7c/0x118 __platform_driver_register+0x48/0x58 rk_iommu_init+0x20/0x30 do_one_initcall+0x98/0x2dc do_initcall_level+0xa8/0x160 do_initcalls+0x58/0x9c do_basic_setup+0x28/0x38 kernel_init_freeable+0xf4/0x16c kernel_init+0x18/0x190 ret_from_fork+0x10/0x30 Fixes: 69b9adc8add3 ("soc: rockchip: power-domain: fix panic when pd power on for rk3588") Signed-off-by: Finley Xiao Change-Id: Idc22efbd87cbc0cd694720bfb48373c81c5d8c83 --- drivers/soc/rockchip/pm_domains.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/soc/rockchip/pm_domains.c b/drivers/soc/rockchip/pm_domains.c index e88fe9593a65..8e0ff1be07ec 100644 --- a/drivers/soc/rockchip/pm_domains.c +++ b/drivers/soc/rockchip/pm_domains.c @@ -519,6 +519,8 @@ static int rockchip_pmu_domain_mem_reset(struct rockchip_pm_domain *pd) goto error; } + udelay(20); + regmap_write(pmu->regmap, pmu->info->mem_pwr_offset + pd->info->pwr_offset, (pd->info->pwr_mask | pd->info->pwr_w_mask)); dsb(sy);