• Leo Li's avatar
    drm/amd/display: Fix double cursor on non-video RGB MPO · b2615099
    Leo Li authored
    [Why]
    
    DC makes use of layer_index (zpos) when picking the HW plane to enable
    HW cursor on. However, some compositors will not attach zpos information
    to each DRM plane. Consequently, in amdgpu, we default layer_index to 0
    and do not update it.
    
    This causes said DC logic to enable HW cursor on all planes of the same
    layer_index, which manifests as a double cursor issue if one of the
    planes is scaled (and hence scaling the cursor as well).
    
    [How]
    
    Use DRM core helpers to calculate a normalized_zpos value for each
    drm_plane_state under each crtc, within the atomic state.
    
    This helper will first consider existing zpos values, and if
    identical/unset, fallback to plane ID ordering.
    
    The normalized_zpos is then passed to dc_plane_info during atomic check
    for later use by the cursor logic.
    Reviewed-by: default avatarBhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
    Acked-by: default avatarWayne Lin <wayne.lin@amd.com>
    Signed-off-by: default avatarLeo Li <sunpeng.li@amd.com>
    Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
    Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
    b2615099
amdgpu_dm.c 293 KB