diff options
Diffstat (limited to 'firmware/drivers')
-rw-r--r-- | firmware/drivers/lcd-16bit.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/firmware/drivers/lcd-16bit.c b/firmware/drivers/lcd-16bit.c index c91d222830..020d6bf63a 100644 --- a/firmware/drivers/lcd-16bit.c +++ b/firmware/drivers/lcd-16bit.c | |||
@@ -49,6 +49,10 @@ fb_data lcd_framebuffer[LCD_FBHEIGHT][LCD_FBWIDTH] | |||
49 | static fb_data* lcd_backdrop = NULL; | 49 | static fb_data* lcd_backdrop = NULL; |
50 | static long lcd_backdrop_offset IDATA_ATTR = 0; | 50 | static long lcd_backdrop_offset IDATA_ATTR = 0; |
51 | 51 | ||
52 | #ifdef HAVE_LCD_ENABLE | ||
53 | static void (*lcd_enable_hook)(void) = NULL; | ||
54 | #endif | ||
55 | |||
52 | static struct viewport default_vp = | 56 | static struct viewport default_vp = |
53 | { | 57 | { |
54 | .x = 0, | 58 | .x = 0, |
@@ -84,6 +88,23 @@ void lcd_init(void) | |||
84 | scroll_init(); | 88 | scroll_init(); |
85 | } | 89 | } |
86 | 90 | ||
91 | /*** Helpers - consolidate optional code ***/ | ||
92 | #ifdef HAVE_LCD_ENABLE | ||
93 | void lcd_set_enable_hook(void (*enable_hook)(void)) | ||
94 | { | ||
95 | lcd_enable_hook = enable_hook; | ||
96 | } | ||
97 | |||
98 | /* To be called by target driver after enabling display and refreshing it */ | ||
99 | void lcd_call_enable_hook(void) | ||
100 | { | ||
101 | void (*enable_hook)(void) = lcd_enable_hook; | ||
102 | |||
103 | if (enable_hook != NULL) | ||
104 | enable_hook(); | ||
105 | } | ||
106 | #endif | ||
107 | |||
87 | /*** Viewports ***/ | 108 | /*** Viewports ***/ |
88 | 109 | ||
89 | void lcd_set_viewport(struct viewport* vp) | 110 | void lcd_set_viewport(struct viewport* vp) |