]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
drm/tinydrm: Fix setting of the column/page end addresses.
authorEric Anholt <eric@anholt.net>
Wed, 24 Oct 2018 18:43:13 +0000 (11:43 -0700)
committerEric Anholt <eric@anholt.net>
Tue, 30 Oct 2018 23:23:38 +0000 (16:23 -0700)
If the clipped dirty region's x/y happened to align to 256, we would
have set the top 8 bits wrong.  Noticed by inspection, not by
reproducing a bug.

Signed-off-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/20181024184313.2967-4-eric@anholt.net
Reviewed-by: Noralf Trønnes <noralf@tronnes.org>
drivers/gpu/drm/tinydrm/mipi-dbi.c

index cb3441e51d5f03f4c3e1f6b82cb091ef64af7637..1bb870021f6e46ec22d3117090b87ef3a2068e37 100644 (file)
@@ -240,10 +240,10 @@ static int mipi_dbi_fb_dirty(struct drm_framebuffer *fb,
 
        mipi_dbi_command(mipi, MIPI_DCS_SET_COLUMN_ADDRESS,
                         (clip.x1 >> 8) & 0xFF, clip.x1 & 0xFF,
-                        (clip.x2 >> 8) & 0xFF, (clip.x2 - 1) & 0xFF);
+                        ((clip.x2 - 1) >> 8) & 0xFF, (clip.x2 - 1) & 0xFF);
        mipi_dbi_command(mipi, MIPI_DCS_SET_PAGE_ADDRESS,
                         (clip.y1 >> 8) & 0xFF, clip.y1 & 0xFF,
-                        (clip.y2 >> 8) & 0xFF, (clip.y2 - 1) & 0xFF);
+                        ((clip.y2 - 1) >> 8) & 0xFF, (clip.y2 - 1) & 0xFF);
 
        ret = mipi_dbi_command_buf(mipi, MIPI_DCS_WRITE_MEMORY_START, tr,
                                (clip.x2 - clip.x1) * (clip.y2 - clip.y1) * 2);