Message ID | 20181024184313.2967-4-eric@anholt.net (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm: tinydrm driver for adafruit PiTFT 3.5" touchscreen | expand |
Den 24.10.2018 20.43, skrev Eric Anholt: > 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> > --- Good catch. Reviewed-by: Noralf Trønnes <noralf@tronnes.org> > drivers/gpu/drm/tinydrm/mipi-dbi.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/tinydrm/mipi-dbi.c b/drivers/gpu/drm/tinydrm/mipi-dbi.c > index cb3441e51d5f..1bb870021f6e 100644 > --- a/drivers/gpu/drm/tinydrm/mipi-dbi.c > +++ b/drivers/gpu/drm/tinydrm/mipi-dbi.c > @@ -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);
diff --git a/drivers/gpu/drm/tinydrm/mipi-dbi.c b/drivers/gpu/drm/tinydrm/mipi-dbi.c index cb3441e51d5f..1bb870021f6e 100644 --- a/drivers/gpu/drm/tinydrm/mipi-dbi.c +++ b/drivers/gpu/drm/tinydrm/mipi-dbi.c @@ -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);
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> --- drivers/gpu/drm/tinydrm/mipi-dbi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)