• Dafna Hirschfeld's avatar
    media: mtk-vpu: on suspend, read/write regs only if vpu is running · 11420749
    Dafna Hirschfeld authored
    If the vpu is not running, we should not rely on VPU_IDLE_REG
    value. In this case, the suspend cb should only unprepare the
    clock. This fixes a system-wide suspend to ram failure:
    
    [  273.073363] PM: suspend entry (deep)
    [  273.410502] mtk-msdc 11230000.mmc: phase: [map:ffffffff] [maxlen:32] [final:10]
    [  273.455926] Filesystems sync: 0.378 seconds
    [  273.589707] Freezing user space processes ... (elapsed 0.003 seconds) done.
    [  273.600104] OOM killer disabled.
    [  273.603409] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
    [  273.613361] mwifiex_sdio mmc2:0001:1: None of the WOWLAN triggers enabled
    [  274.784952] mtk_vpu 10020000.vpu: vpu idle timeout
    [  274.789764] PM: dpm_run_callback(): platform_pm_suspend+0x0/0x70 returns -5
    [  274.796740] mtk_vpu 10020000.vpu: PM: failed to suspend: error -5
    [  274.802842] PM: Some devices failed to suspend, or early wake event detected
    [  275.426489] OOM killer enabled.
    [  275.429718] Restarting tasks ...
    [  275.435765] done.
    [  275.447510] PM: suspend exit
    
    Fixes: 1f565e26 ("media: mtk-vpu: VPU should be in idle state before system is suspended")
    Signed-off-by: default avatarDafna Hirschfeld <dafna.hirschfeld@collabora.com>
    Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
    11420749
mtk_vpu.c 25.9 KB