drm/amd/display: Fallback to SW cursor if SubVP + cursor too big
authorAlvin Lee <Alvin.Lee2@amd.com>
Thu, 14 Jul 2022 22:21:28 +0000 (18:21 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 25 Jul 2022 21:16:01 +0000 (17:16 -0400)
[Description]
- For SubVP cursor cannot be cached in MALL, therefore
we will switch to SW cursor if the cursor size exceeds
what can fit in the local DCN buffers (64x64x4)
- Returning false / failure for set_cursor_attributes will
fallback to SW cursor

Reviewed-by: Jun Lei <Jun.Lei@amd.com>
Acked-by: Alex Hung <alex.hung@amd.com>
Signed-off-by: Alvin Lee <Alvin.Lee2@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/core/dc_stream.c

index 6752ca4..f62d509 100644 (file)
@@ -328,6 +328,11 @@ bool dc_stream_set_cursor_attributes(
        }
 
        dc = stream->ctx->dc;
+
+       if (attributes->height * attributes->width * 4 > 16384)
+               if (stream->mall_stream_config.type == SUBVP_MAIN)
+                       return false;
+
        stream->cursor_attributes = *attributes;
 
        dc_z10_restore(dc);