While working on adding SSD1351 support to the ssd130x driver - I
noticed that the area of the cursor was refreshing in a weird state.
I would fill the screen red while the flashing cursor was on the screen,
but the screen wouldn't refresh the entire 8x8 rectangle each flash.
After reading the SSD1351, SSD1331 and SSD132x manuals and manual
testing on the SSD1351, I was able to be sure that the problem was the
end addresses of "Set Column/Row Address" being sent as relative addresses
instead of absolute addresses.
I assume these bugs went under the radar because testing would usually
be done where the dirty rectangles would start from the 0,0 coordinates.
In these situations, the bug would be invisable, since adresses relative
to 0 are the same as their absolute value.
It is important to note that I didn't test these changes on a SSD132x
screen or a SSD133x screens, only on an SSD1351. Manual testing is
advised.
This series contains the fix for ssd132x_update_rect, a simple clean-up
patch for ssd132x_update_rect to keep the function clean, and the same
fix on ssd133x_update_rect.
Amit Barzilai (3):
drm/ssd130x: fix column and row end address in partial updates for
ssd132x
drm/ssd130x: hoist column and row addresses out of repeated division
drm/ssd130x: fix column and row end address in partial updates in
ssd133x
drivers/gpu/drm/solomon/ssd130x.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
--
2.54.0