lkml.org 
[lkml]   [2022]   [Aug]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 190/545] drm/vc4: plane: Fix margin calculations for the right/bottom edges
    Date
    From: Dave Stevenson <dave.stevenson@raspberrypi.com>

    [ Upstream commit b7c3d6821627861f4ea3e1f2b595d0ed9e80aac8 ]

    The current plane margin calculation code clips the right and bottom
    edges of the range based using the left and top margins.

    This is obviously wrong, so let's fix it.

    Fixes: 666e73587f90 ("drm/vc4: Take margin setup into account when updating planes")
    Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
    Link: https://lore.kernel.org/r/20220613144800.326124-6-maxime@cerno.tech
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/gpu/drm/vc4/vc4_plane.c | 8 ++++----
    1 file changed, 4 insertions(+), 4 deletions(-)

    diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plane.c
    index bdf16554cf68..4df222a83049 100644
    --- a/drivers/gpu/drm/vc4/vc4_plane.c
    +++ b/drivers/gpu/drm/vc4/vc4_plane.c
    @@ -303,16 +303,16 @@ static int vc4_plane_margins_adj(struct drm_plane_state *pstate)
    adjhdisplay,
    crtc_state->mode.hdisplay);
    vc4_pstate->crtc_x += left;
    - if (vc4_pstate->crtc_x > crtc_state->mode.hdisplay - left)
    - vc4_pstate->crtc_x = crtc_state->mode.hdisplay - left;
    + if (vc4_pstate->crtc_x > crtc_state->mode.hdisplay - right)
    + vc4_pstate->crtc_x = crtc_state->mode.hdisplay - right;

    adjvdisplay = crtc_state->mode.vdisplay - (top + bottom);
    vc4_pstate->crtc_y = DIV_ROUND_CLOSEST(vc4_pstate->crtc_y *
    adjvdisplay,
    crtc_state->mode.vdisplay);
    vc4_pstate->crtc_y += top;
    - if (vc4_pstate->crtc_y > crtc_state->mode.vdisplay - top)
    - vc4_pstate->crtc_y = crtc_state->mode.vdisplay - top;
    + if (vc4_pstate->crtc_y > crtc_state->mode.vdisplay - bottom)
    + vc4_pstate->crtc_y = crtc_state->mode.vdisplay - bottom;

    vc4_pstate->crtc_w = DIV_ROUND_CLOSEST(vc4_pstate->crtc_w *
    adjhdisplay,
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-08-19 18:08    [W:4.021 / U:0.056 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site