• Nicholas Kazlauskas's avatar
    drm/amd/display: Don't re-program planes for DPMS changes · 6c68d165
    Nicholas Kazlauskas authored
    [ Upstream commit 5062b797 ]
    
    [Why]
    There are opt1c lock warnings and CRTC read timeouts when running the
    "igt@kms_plane@plane-position-hole-dpms-pipe-*" tests. These are
    caused by trying to reprogram planes that are not in the current
    context.
    
    DPMS off removes the stream from the context. In this case:
    
    new_crtc_state->active_changed = true
    new_crtc_state->mode_changed = false
    
    The planes are reprogrammed before the stream is removed from the
    context because stream_state->mode_changed = false.
    
    For DPMS adds the stream and planes back to the context:
    
    new_crtc_state->active_changed = true
    new_crtc_state->mode_changed = false
    
    The planes are also reprogrammed here before the stream is added to the
    context because stream_state->mode_changed = true. They were not
    previously in the current context so warnings occur here.
    
    [How]
    Set stream_state->mode_changed = true when
    new_crtc_state->active_changed = true too.
    
    This prevents reprogramming before the context is applied in DC. The
    programming will be done after the context is applied.
    Signed-off-by: default avatarNicholas Kazlauskas <nicholas.kazlauskas@amd.com>
    Reviewed-by: default avatarSun peng Li <Sunpeng.Li@amd.com>
    Acked-by: default avatarBhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
    Acked-by: default avatarTony Cheng <Tony.Cheng@amd.com>
    Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
    Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
    6c68d165
amdgpu_dm.c 147 KB