• Nicholas Kazlauskas's avatar
    drm/amd/display: Drop underlay plane support · b2fddb13
    Nicholas Kazlauskas authored
    [Why]
    Primary and underlay planes were previously exposed to DRM by using
    max_planes and max_slave_planes.
    
    The value for max_planes was always pipe_count + has_underlay.
    If there was an underlay pipe, then max_slave_planes = 1.
    
    Raven has pipe_count = 4, max_planes = 4, and max_slave_planes = 1.
    So during plane initialziation it was actually "creating"
    1 overlay plane and 3 primary planes... or it would be, had its
    plane_type array not been dm_plane_type_default, which will only create
    DRM_PLANE_TYPE_PRIMARY planes.
    
    We can expose primary planes as supporting more than one CRTC at a time
    to more closely resemble plane behavior on DCN but userspace doesn't
    really expect planes to be used in this manner and will either
    ignore the planes or crash.
    
    Planes with index greater than max_streams are marked as supporting
    all CRTCs. No ASIC currently has primary plane count greater than the
    stream count but we shouldn't expose more than necessary.
    
    [How]
    Drop support for underlay planes. They aren't well tested and don't
    fully work right at the moment.
    
    Only create one primary plane per CRTC so we're not creating overlays.
    
    Initialize plane types directly instead of referencing a misleading
    array of plane types.
    Signed-off-by: default avatarNicholas Kazlauskas <nicholas.kazlauskas@amd.com>
    Reviewed-by: default avatarTony Cheng <Tony.Cheng@amd.com>
    Acked-by: default avatarBhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
    Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
    b2fddb13
amdgpu_dm.c 171 KB