video: fbdev: ssd1307fb: Optimize screen updates
authorGeert Uytterhoeven <geert@linux-m68k.org>
Tue, 27 Jul 2021 13:47:29 +0000 (15:47 +0200)
committerSam Ravnborg <sam@ravnborg.org>
Tue, 27 Jul 2021 15:18:23 +0000 (17:18 +0200)
commit251e48a1db758ad7151e2dce146e63d9f4baf94b
tree59b033aae9b2d0fc83a6dfb9749e1a60d5744f1a
parent8a15af3b86f497109dc3a6646eb029d1f934684d
video: fbdev: ssd1307fb: Optimize screen updates

Currently, each screen update triggers an I2C transfer of all screen
data, up to 1 KiB of data for a 128x64 display, which takes at least 20
ms in Fast mode.

Reduce the amount of transferred data by only updating the rectangle
that changed.  Remove the calls to ssd1307fb_set_col_range() and
ssd1307fb_set_page_range() during initialization, as
ssd1307fb_update_rect() now takes care of that.

Note that for now the optimized operation is only used for fillrect,
copyarea, and imageblit, which are used by fbcon.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20210727134730.3765898-5-geert@linux-m68k.org
drivers/video/fbdev/ssd1307fb.c