On Fri, Nov 20, 2020 at 3:50 PM Alex Deucher <alexdeucher@xxxxxxxxx> wrote: > > On Fri, Nov 20, 2020 at 3:19 PM Simon Ser <contact@xxxxxxxxxxx> wrote: > > > > This patch expands the cursor checks added in "drm/amd/display: add basic > > atomic check for cursor plane" to also include a FB size check. Without > > this patch, setting a FB smaller than max_cursor_size with an invalid > > width would result in amdgpu error messages and a fallback to a 64-byte > > width: > > > > [drm:hubp1_cursor_set_attributes [amdgpu]] *ERROR* Invalid cursor pitch of 100. Only 64/128/256 is supported on DCN. > > > > Note that DC uses the word "pitch" when actually checking the FB width. > > Indeed, the function handle_cursor_update does this: > > > > attributes.pitch = attributes.width; > > > > In my tests, the cursor FB actually had a pitch of 512 bytes. > > > > Signed-off-by: Simon Ser <contact@xxxxxxxxxxx> > > Reported-by: Pierre-Loup A. Griffais <pgriffais@xxxxxxxxxxxxxxxxx> > > Cc: Alex Deucher <alexander.deucher@xxxxxxx> > > Cc: Harry Wentland <hwentlan@xxxxxxx> > > Cc: Nicholas Kazlauskas <nicholas.kazlauskas@xxxxxxx> > > --- > > .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 22 +++++++++++++++++++ > > 1 file changed, 22 insertions(+) > > > > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > > index 2855bb918535..bd63f1c4ae79 100644 > > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > > @@ -8902,6 +8902,28 @@ static int dm_update_plane_state(struct dc *dc, > > return -EINVAL; > > } > > > > + if (new_plane_state->fb) { > > + if (new_plane_state->fb->width > new_acrtc->max_cursor_width || > > + new_plane_state->fb->height > new_acrtc->max_cursor_height) { > > + DRM_DEBUG_ATOMIC("Bad cursor FB size %dx%d\n", > > + new_plane_state->fb->width, > > + new_plane_state->fb->height); > > + return -EINVAL; > > + } > > + > > + switch (new_plane_state->fb->width) { > > + case 64: > > + case 128: > > + case 256: > > + /* FB width is supported by cursor plane */ > > I'm pretty sure DCE6.x only supports 64 and DCE8-12 only supports 128. > I think only DCN supports 256. Nevermind, the check above handles this. Thanks, > > Alex > > > > + break; > > + default: > > + DRM_DEBUG_ATOMIC("Bad cursor FB width %d\n", > > + new_plane_state->fb->width); > > + return -EINVAL; > > + } > > + } > > + > > return 0; > > } > > > > -- > > 2.29.2 > > > > > > _______________________________________________ > > amd-gfx mailing list > > amd-gfx@xxxxxxxxxxxxxxxxxxxxx > > https://lists.freedesktop.org/mailman/listinfo/amd-gfx _______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx