lkml.org 
[lkml]   [2020]   [Feb]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.5 037/542] drm/mipi_dbi: Fix off-by-one bugs in mipi_dbi_blank()
    Date
    From: Geert Uytterhoeven <geert+renesas@glider.be>

    [ Upstream commit 2ce18249af5a28031b3f909cfafccc88ea966c9d ]

    When configuring the frame memory window, the last column and row
    numbers are written to the column resp. page address registers. These
    numbers are thus one less than the actual window width resp. height.

    While this is handled correctly in mipi_dbi_fb_dirty() since commit
    03ceb1c8dfd1e293 ("drm/tinydrm: Fix setting of the column/page end
    addresses."), it is not in mipi_dbi_blank(). The latter still forgets
    to subtract one when calculating the most significant bytes of the
    column and row numbers, thus programming wrong values when the display
    width or height is a multiple of 256.

    Fixes: 02dd95fe31693626 ("drm/tinydrm: Add MIPI DBI support")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20191230130604.31006-1-geert+renesas@glider.be
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/gpu/drm/drm_mipi_dbi.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    diff --git a/drivers/gpu/drm/drm_mipi_dbi.c b/drivers/gpu/drm/drm_mipi_dbi.c
    index e34058c721bec..16bff1be4b8ac 100644
    --- a/drivers/gpu/drm/drm_mipi_dbi.c
    +++ b/drivers/gpu/drm/drm_mipi_dbi.c
    @@ -367,9 +367,9 @@ static void mipi_dbi_blank(struct mipi_dbi_dev *dbidev)
    memset(dbidev->tx_buf, 0, len);

    mipi_dbi_command(dbi, MIPI_DCS_SET_COLUMN_ADDRESS, 0, 0,
    - (width >> 8) & 0xFF, (width - 1) & 0xFF);
    + ((width - 1) >> 8) & 0xFF, (width - 1) & 0xFF);
    mipi_dbi_command(dbi, MIPI_DCS_SET_PAGE_ADDRESS, 0, 0,
    - (height >> 8) & 0xFF, (height - 1) & 0xFF);
    + ((height - 1) >> 8) & 0xFF, (height - 1) & 0xFF);
    mipi_dbi_command_buf(dbi, MIPI_DCS_WRITE_MEMORY_START,
    (u8 *)dbidev->tx_buf, len);

    --
    2.20.1
    \
     
     \ /
      Last update: 2020-02-14 19:22    [W:3.131 / U:0.284 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site