Fix an off-by-one error when setting the vblanking start in
<VBLKSTR>. Commit d6460bd52c27 ("drm/mgag200: Add dedicated
variables for blanking fields") switched the value from
crtc_vdisplay to crtc_vblank_start, which DRM helpers copy
from the former. The commit missed to subtract one though.

Reported-by: Wakko Warner <[email protected]>
Closes: 
https://lore.kernel.org/dri-devel/CAMwc25rKPKooaSp85zDq2eh-9q4UPZD=rqsdbrp1faagdnm...@mail.gmail.com/
Reported-by: Сергей <[email protected]>
Closes: 
https://lore.kernel.org/all/[email protected]/
Closes: https://bbs.archlinux.org/viewtopic.php?id=303819
Signed-off-by: Thomas Zimmermann <[email protected]>
Fixes: d6460bd52c27 ("drm/mgag200: Add dedicated variables for blanking fields")
Cc: Thomas Zimmermann <[email protected]>
Cc: Jocelyn Falempe <[email protected]>
Cc: Dave Airlie <[email protected]>
Cc: [email protected]
Cc: <[email protected]> # v6.12+
---
 drivers/gpu/drm/mgag200/mgag200_mode.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/mgag200/mgag200_mode.c 
b/drivers/gpu/drm/mgag200/mgag200_mode.c
index fb71658c3117..6067d08aeee3 100644
--- a/drivers/gpu/drm/mgag200/mgag200_mode.c
+++ b/drivers/gpu/drm/mgag200/mgag200_mode.c
@@ -223,7 +223,7 @@ void mgag200_set_mode_regs(struct mga_device *mdev, const 
struct drm_display_mod
        vsyncstr = mode->crtc_vsync_start - 1;
        vsyncend = mode->crtc_vsync_end - 1;
        vtotal = mode->crtc_vtotal - 2;
-       vblkstr = mode->crtc_vblank_start;
+       vblkstr = mode->crtc_vblank_start - 1;
        vblkend = vtotal + 1;
 
        linecomp = vdispend;
-- 
2.49.0

Reply via email to