[PATCH 2/2] drm/amd/display: add cursor pitch check

Alex Deucher alexdeucher at gmail.com
Wed Dec 2 22:24:30 UTC 2020


On Wed, Dec 2, 2020 at 4:33 PM Kazlauskas, Nicholas
<nicholas.kazlauskas at amd.com> wrote:
>
> On 2020-12-02 4:09 p.m., Simon Ser wrote:
> > Replace the width check with a pitch check, which matches DM internals.
> > Add a new check to make sure the pitch (in pixels) matches the width.
> >
> > Signed-off-by: Simon Ser <contact at emersion.fr>
> > Cc: Alex Deucher <alexander.deucher at amd.com>
> > Cc: Harry Wentland <hwentlan at amd.com>
> > Cc: Nicholas Kazlauskas <nicholas.kazlauskas at amd.com>
>
> Series is:
>
> Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas at amd.com>

Applied.  Thanks!

Alex

>
> Regards,
> Nicholas Kazlauskas
>
> > ---
> >   .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 19 +++++++++++++++----
> >   1 file changed, 15 insertions(+), 4 deletions(-)
> >
> > 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 9e328101187e..862a59703060 100644
> > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> > @@ -8988,6 +8988,7 @@ static int dm_update_plane_state(struct dc *dc,
> >       struct amdgpu_crtc *new_acrtc;
> >       bool needs_reset;
> >       int ret = 0;
> > +     unsigned int pitch;
> >
> >
> >       new_plane_crtc = new_plane_state->crtc;
> > @@ -9021,15 +9022,25 @@ static int dm_update_plane_state(struct dc *dc,
> >                               return -EINVAL;
> >                       }
> >
> > -                     switch (new_plane_state->fb->width) {
> > +                     /* Pitch in pixels */
> > +                     pitch = new_plane_state->fb->pitches[0] / new_plane_state->fb->format->cpp[0];
> > +
> > +                     if (new_plane_state->fb->width != pitch) {
> > +                             DRM_DEBUG_ATOMIC("Cursor FB width %d doesn't match pitch %d",
> > +                                              new_plane_state->fb->width,
> > +                                              pitch);
> > +                             return -EINVAL;
> > +                     }
> > +
> > +                     switch (pitch) {
> >                       case 64:
> >                       case 128:
> >                       case 256:
> > -                             /* FB width is supported by cursor plane */
> > +                             /* FB pitch is supported by cursor plane */
> >                               break;
> >                       default:
> > -                             DRM_DEBUG_ATOMIC("Bad cursor FB width %d\n",
> > -                                              new_plane_state->fb->width);
> > +                             DRM_DEBUG_ATOMIC("Bad cursor FB pitch %d px\n",
> > +                                              pitch);
> >                               return -EINVAL;
> >                       }
> >               }
> >
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


More information about the amd-gfx mailing list