summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
authorAidan MacDonald <amachronic@protonmail.com>2022-10-02 01:35:06 +0100
committerAidan MacDonald <amachronic@protonmail.com>2022-10-12 07:58:57 -0400
commit9549ddabba292f904769437098817dd158c76f49 (patch)
treea88769892a5da797003e664ffccea12c2240ad90 /firmware
parent44b9785465fcb96f7544576b7657a47813625a01 (diff)
downloadrockbox-9549ddabba292f904769437098817dd158c76f49.tar.gz
rockbox-9549ddabba292f904769437098817dd158c76f49.zip
lcd: Fix bug in grayscale clear_display() implementation
clear_display() on grayscale LCDs sets the number of scrolling lines to 0 but that's wrong, the scollers need to be shut down first. Call scroll_stop() for that, as is done on color LCDs. Change-Id: I75fb6839ed04f6fe1eb8e2855c8db820fcedddb8
Diffstat (limited to 'firmware')
-rw-r--r--firmware/drivers/lcd-1bit-vert.c2
-rw-r--r--firmware/drivers/lcd-2bit-horz.c2
-rw-r--r--firmware/drivers/lcd-2bit-vert.c2
-rw-r--r--firmware/drivers/lcd-2bit-vi.c2
4 files changed, 4 insertions, 4 deletions
diff --git a/firmware/drivers/lcd-1bit-vert.c b/firmware/drivers/lcd-1bit-vert.c
index accce026cd..77eb4ab2a1 100644
--- a/firmware/drivers/lcd-1bit-vert.c
+++ b/firmware/drivers/lcd-1bit-vert.c
@@ -203,7 +203,7 @@ void LCDFN(clear_display)(void)
203 unsigned bits = (CURRENT_VP->drawmode & DRMODE_INVERSEVID) ? 0xFFu : 0; 203 unsigned bits = (CURRENT_VP->drawmode & DRMODE_INVERSEVID) ? 0xFFu : 0;
204 204
205 memset(LCDFB(0, 0), bits, FBSIZE); 205 memset(LCDFB(0, 0), bits, FBSIZE);
206 LCDFN(scroll_info).lines = 0; 206 LCDFN(scroll_stop)();
207} 207}
208 208
209/* Draw a horizontal line (optimised) */ 209/* Draw a horizontal line (optimised) */
diff --git a/firmware/drivers/lcd-2bit-horz.c b/firmware/drivers/lcd-2bit-horz.c
index b8ebaff7e1..abe7443e01 100644
--- a/firmware/drivers/lcd-2bit-horz.c
+++ b/firmware/drivers/lcd-2bit-horz.c
@@ -345,7 +345,7 @@ void lcd_clear_display(void)
345 memset(FBADDR(0,0), bg_pattern, FRAMEBUFFER_SIZE); 345 memset(FBADDR(0,0), bg_pattern, FRAMEBUFFER_SIZE);
346 } 346 }
347 347
348 lcd_scroll_info.lines = 0; 348 lcd_scroll_stop();
349} 349}
350 350
351/* Draw a horizontal line (optimised) */ 351/* Draw a horizontal line (optimised) */
diff --git a/firmware/drivers/lcd-2bit-vert.c b/firmware/drivers/lcd-2bit-vert.c
index 9856b28819..6ea367e695 100644
--- a/firmware/drivers/lcd-2bit-vert.c
+++ b/firmware/drivers/lcd-2bit-vert.c
@@ -347,7 +347,7 @@ void lcd_clear_display(void)
347 memset(FBADDR(0,0), bg_pattern, FRAMEBUFFER_SIZE); 347 memset(FBADDR(0,0), bg_pattern, FRAMEBUFFER_SIZE);
348 } 348 }
349 349
350 lcd_scroll_info.lines = 0; 350 lcd_scroll_stop();
351} 351}
352 352
353/* Draw a horizontal line (optimised) */ 353/* Draw a horizontal line (optimised) */
diff --git a/firmware/drivers/lcd-2bit-vi.c b/firmware/drivers/lcd-2bit-vi.c
index d621951c78..5c615c4c9e 100644
--- a/firmware/drivers/lcd-2bit-vi.c
+++ b/firmware/drivers/lcd-2bit-vi.c
@@ -380,7 +380,7 @@ void LCDFN(clear_display)(void)
380 FBSIZE); 380 FBSIZE);
381 } 381 }
382 382
383 LCDFN(scroll_info).lines = 0; 383 LCDFN(scroll_stop)();
384} 384}
385 385
386/* Draw a horizontal line (optimised) */ 386/* Draw a horizontal line (optimised) */