merged.

Bruce

In message: [linux-yocto][linux-yocto v5.15/standard/nxp-sdk-5.15/nxp-soc & 
v5.15/standard/preempt-rt/nxp-sdk-5.15/nxp-soc][PATCH 1/3] irqchip: 
imx-irqsteer: Block the runtime PM
on 10/05/2022 Xiaolei Wang wrote:

> The irqsteer's runtime PM has to be enabled otherwise the probe of
> some devices (such as dpu) will fail because of the failure of 
> irq_chip_pm_get().
> But we can't allow the irqsteer to really enter the suspend state
> because it will break the kdump with a call trace like below.
> 
>   Internal error: synchronous external abort: 96000210 [#1] PREEMPT SMP
>   Modules linked in: sch_fq_codel
>   CPU: 3 PID: 3772 Comm: sh Kdump: loaded Not tainted 5.4.87-yocto-standard #1
>   Hardware name: Freescale i.MX8QM MEK (DT)
>   pstate: 40000085 (nZcv daIf -PAN -UAO)
>   pc : imx_irqsteer_irq_mask+0x50/0x90
>   lr : imx_irqsteer_irq_mask+0x40/0x90
>   sp : ffff800014b7b9e0
>   x29: ffff800014b7b9e0 x28: ffff0008e5800000
>   x27: 0000000000000000 x26: 0000000000000000
>   x25: 0000000000000007 x24: ffff800011513398
>   x23: ffff800014b7ba88 x22: ffff0008ef1fadd8
>   x21: ffff0008ef1fac80 x20: ffff0008eecd8858
>   x19: 0000000000000001 x18: 0000000000000020
>   x17: 0000000000000000 x16: 0000000000000000
>   x15: ffff0008e5800470 x14: 0000000080000085
>   x13: ffff800010192a48 x12: ffff800011ed8000
>   x11: ffff800011ed8b50 x10: 00000000000c01d2
>   x9 : 000000002769dc82 x8 : 00000000000084ab
>   x7 : ffff800011ed8b68 x6 : 0000000000000001
>   x5 : 0000000016f0f41b x4 : 8888888888888889
>   x3 : ffff800013677000 x2 : ffff800013677004
>   x1 : 0000000000000080 x0 : 0000000000000080
>   Call trace:
>    imx_irqsteer_irq_mask+0x50/0x90
>    machine_crash_shutdown+0xb4/0x10c
>    __crash_kexec+0x78/0x12c
>    panic+0x180/0x370
>    sysrq_handle_reboot+0x0/0x3c
>    __handle_sysrq+0xf0/0x1d0
>    write_sysrq_trigger+0xac/0xcc
>    proc_reg_write+0x8c/0x110
>    __vfs_write+0x4c/0x90
>    vfs_write+0xe8/0x1d0
>    ksys_write+0x7c/0x104
>    __arm64_sys_write+0x28/0x3c
>    el0_svc_common.constprop.0+0x7c/0x1b4
>    el0_svc_handler+0x54/0xc0
>    el0_svc+0x8/0x204
>   Code: f94092a3 531e7662 aa0003e1 8b22c062 (b9400040)
> 
> So enable the runtime PM with pm_runtime_enable(), but block the suspend of 
> irqsteer with pm_runtime_forbid().
> 
> Signed-off-by: Xiaolei Wang <[email protected]>
> Signed-off-by: Bruce Ashfield <[email protected]>
> ---
>  drivers/irqchip/irq-imx-irqsteer.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/irqchip/irq-imx-irqsteer.c 
> b/drivers/irqchip/irq-imx-irqsteer.c
> index a5165579bed1..df6c37c3e8e7 100644
> --- a/drivers/irqchip/irq-imx-irqsteer.c
> +++ b/drivers/irqchip/irq-imx-irqsteer.c
> @@ -298,6 +298,8 @@ static int imx_irqsteer_probe(struct platform_device 
> *pdev)
>       platform_set_drvdata(pdev, data);
>  
>       pm_runtime_enable(&pdev->dev);
> +     pm_runtime_forbid(&pdev->dev);
> +
>       return 0;
>  out:
>       clk_disable_unprepare(data->ipg_clk);
> -- 
> 2.25.1
> 
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#11295): 
https://lists.yoctoproject.org/g/linux-yocto/message/11295
Mute This Topic: https://lists.yoctoproject.org/mt/91008124/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/linux-yocto/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to