diff options
authorAidan MacDonald <>2024-03-30 15:16:49 +0000
committerAidan MacDonald <>2024-03-31 11:36:16 -0400
commit5fd5f56cacdd82ae10fb33496525e1614bcc0dd8 (patch)
parentb0a8cacd1dd11dbf6f8f7b46675d89e5b5b32920 (diff)
Disable unused LCD scroll functions in bootloaders
These functions just reset some state related to the scroll engine, which is already disabled for bootloaders. They get called from the LCD code and compiled into the binary, but have no real effect when the rest of the scroll engine is not present. Replacing the calls with inline stubs gets rid of this dead code from bootloaders. Change-Id: I12a6d8926e19477ae3a5913e7fc8aff41cecd970
2 files changed, 27 insertions, 1 deletions
diff --git a/firmware/drivers/lcd-scroll.c b/firmware/drivers/lcd-scroll.c
index 26b15732cd..895cf98cba 100644
--- a/firmware/drivers/lcd-scroll.c
+++ b/firmware/drivers/lcd-scroll.c
@@ -30,6 +30,7 @@
#define MAIN_LCD
+#if !defined(BOOTLOADER)
static struct scrollinfo LCDFN(scroll)[LCDM(SCROLLABLE_LINES)];
struct scroll_screen_info LCDFN(scroll_info) =
@@ -180,7 +181,6 @@ bool LCDFN(scroll_now)(struct scrollinfo *s)
return ended;
-#if !defined(BOOTLOADER)
static void LCDFN(scroll_worker)(void)
int index;
diff --git a/firmware/export/scroll_engine.h b/firmware/export/scroll_engine.h
index f13e2efca7..2a1a510dbd 100644
--- a/firmware/export/scroll_engine.h
+++ b/firmware/export/scroll_engine.h
@@ -38,10 +38,36 @@ extern void lcd_bidir_scroll(int threshold);
extern void lcd_scroll_speed(int speed);
extern void lcd_scroll_delay(int ms);
+static inline void lcd_scroll_stop(void)
+static inline void lcd_scroll_stop_viewport(const struct viewport *vp)
+ (void)vp;
+static inline void lcd_scroll_stop_viewport_rect(const struct viewport *vp, int x, int y, int width, int height)
+ (void)vp;
+ (void)x;
+ (void)y;
+ (void)width;
+ (void)height;
+static inline bool lcd_scroll_now(struct scrollinfo *scroll)
+ (void)scroll;
+ return false;
extern void lcd_scroll_stop(void);
extern void lcd_scroll_stop_viewport(const struct viewport *vp);
extern void lcd_scroll_stop_viewport_rect(const struct viewport *vp, int x, int y, int width, int height);
extern bool lcd_scroll_now(struct scrollinfo *scroll);
extern void lcd_remote_scroll_speed(int speed);
extern void lcd_remote_scroll_delay(int ms);