• chen gong's avatar
    drm/amdgpu: When the VCN(1.0) block is suspended, powergating is explicitly enabled · d4c2933f
    chen gong authored
    Play a video on the raven (or PCO, raven2) platform, and then do the S3
    test. When resume, the following error will be reported:
    
    amdgpu 0000:02:00.0: [drm:amdgpu_ring_test_helper [amdgpu]] *ERROR* ring
    vcn_dec test failed (-110)
    [drm:amdgpu_device_ip_resume_phase2 [amdgpu]] *ERROR* resume of IP block
    <vcn_v1_0> failed -110
    amdgpu 0000:02:00.0: amdgpu: amdgpu_device_ip_resume failed (-110).
    PM: dpm_run_callback(): pci_pm_resume+0x0/0x90 returns -110
    
    [why]
    When playing the video: The power state flag of the vcn block is set to
    POWER_STATE_ON.
    
    When doing suspend: There is no change to the power state flag of the
    vcn block, it is still POWER_STATE_ON.
    
    When doing resume: Need to open the power gate of the vcn block and set
    the power state flag of the VCN block to POWER_STATE_ON.
    But at this time, the power state flag of the vcn block is already
    POWER_STATE_ON. The power status flag check in the "8f2cdef drm/amd/pm:
    avoid duplicate powergate/ungate setting" patch will return the
    amdgpu_dpm_set_powergating_by_smu function directly.
    As a result, the gate of the power was not opened, causing the
    subsequent ring test to fail.
    
    [how]
    In the suspend function of the vcn block, explicitly change the power
    state flag of the vcn block to POWER_STATE_OFF.
    
    BugLink: https://gitlab.freedesktop.org/drm/amd/-/issues/1828Signed-off-by: default avatarchen gong <curry.gong@amd.com>
    Reviewed-by: default avatarEvan Quan <evan.quan@amd.com>
    Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
    d4c2933f
vcn_v1_0.c 62.5 KB