summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAidan MacDonald <amachronic@protonmail.com>2024-03-30 15:16:49 +0000
committerAidan MacDonald <amachronic@protonmail.com>2024-03-31 11:36:16 -0400
commit5fd5f56cacdd82ae10fb33496525e1614bcc0dd8 (patch)
tree8604d89e43c2094a0e01008dc2c4c51a38d4bc33
parentb0a8cacd1dd11dbf6f8f7b46675d89e5b5b32920 (diff)
downloadrockbox-5fd5f56cacdd82ae10fb33496525e1614bcc0dd8.tar.gz
rockbox-5fd5f56cacdd82ae10fb33496525e1614bcc0dd8.zip
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
-rw-r--r--firmware/drivers/lcd-scroll.c2
-rw-r--r--firmware/export/scroll_engine.h26
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 @@
30#define MAIN_LCD 30#define MAIN_LCD
31#endif 31#endif
32 32
33#if !defined(BOOTLOADER)
33static struct scrollinfo LCDFN(scroll)[LCDM(SCROLLABLE_LINES)]; 34static struct scrollinfo LCDFN(scroll)[LCDM(SCROLLABLE_LINES)];
34 35
35struct scroll_screen_info LCDFN(scroll_info) = 36struct scroll_screen_info LCDFN(scroll_info) =
@@ -180,7 +181,6 @@ bool LCDFN(scroll_now)(struct scrollinfo *s)
180 return ended; 181 return ended;
181} 182}
182 183
183#if !defined(BOOTLOADER)
184static void LCDFN(scroll_worker)(void) 184static void LCDFN(scroll_worker)(void)
185{ 185{
186 int index; 186 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);
38extern void lcd_scroll_speed(int speed); 38extern void lcd_scroll_speed(int speed);
39extern void lcd_scroll_delay(int ms); 39extern void lcd_scroll_delay(int ms);
40 40
41#ifdef BOOTLOADER
42static inline void lcd_scroll_stop(void)
43{
44}
45
46static inline void lcd_scroll_stop_viewport(const struct viewport *vp)
47{
48 (void)vp;
49}
50
51static inline void lcd_scroll_stop_viewport_rect(const struct viewport *vp, int x, int y, int width, int height)
52{
53 (void)vp;
54 (void)x;
55 (void)y;
56 (void)width;
57 (void)height;
58}
59
60static inline bool lcd_scroll_now(struct scrollinfo *scroll)
61{
62 (void)scroll;
63 return false;
64}
65#else
41extern void lcd_scroll_stop(void); 66extern void lcd_scroll_stop(void);
42extern void lcd_scroll_stop_viewport(const struct viewport *vp); 67extern void lcd_scroll_stop_viewport(const struct viewport *vp);
43extern void lcd_scroll_stop_viewport_rect(const struct viewport *vp, int x, int y, int width, int height); 68extern void lcd_scroll_stop_viewport_rect(const struct viewport *vp, int x, int y, int width, int height);
44extern bool lcd_scroll_now(struct scrollinfo *scroll); 69extern bool lcd_scroll_now(struct scrollinfo *scroll);
70#endif
45#ifdef HAVE_REMOTE_LCD 71#ifdef HAVE_REMOTE_LCD
46extern void lcd_remote_scroll_speed(int speed); 72extern void lcd_remote_scroll_speed(int speed);
47extern void lcd_remote_scroll_delay(int ms); 73extern void lcd_remote_scroll_delay(int ms);