• Nicholas Kazlauskas's avatar
    drm/amd/display: Only put primary planes into the mode_info->planes list · 54087768
    Nicholas Kazlauskas authored
    We want DRM planes to be initialized in the following order:
    
    - primary planes
    - overlay planes
    - cursor planes
    
    to support existing userspace expectations for plane z-ordering. This
    means that we also need to register CRTCs after all planes have been
    initialized since overlay planes can be placed on any CRTC.
    
    So the only reason why we have the mode_info->planes list is to
    remember the primary planes for use later when we need to register
    the CRTC.
    
    Overlay planes have no purpose being in this list. DRM will cleanup
    any planes that we've registered for us, so the only planes that need to
    be explicitly cleaned up are the ones that have failed to register.
    
    By dropping the explicit free on every plane in the mode_info->planes
    list this patch also fixes a double-free in the case where we fail to
    initialize only some of the planes.
    
    Cc: Leo Li <sunpeng.li@amd.com>
    Cc: Harry Wentland <harry.wentland@amd.com>
    Signed-off-by: default avatarNicholas Kazlauskas <nicholas.kazlauskas@amd.com>
    Reviewed-by: default avatarHarry Wentland <harry.wentland@amd.com>
    Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
    54087768
amdgpu_dm.c 174 KB