diff --git a/firmware/drivers/lcd-1bit-vert.c b/firmware/drivers/lcd-1bit-vert.c index 8bdc0c6d8e..c86ced9b6c 100644 --- a/firmware/drivers/lcd-1bit-vert.c +++ b/firmware/drivers/lcd-1bit-vert.c @@ -73,10 +73,10 @@ static struct viewport default_vp = .height = LCDM(HEIGHT), .font = FONT_SYSFIXED, .drawmode = DRMODE_SOLID, - .buffer = &LCDFN(framebuffer_default), + .buffer = NULL, }; -struct viewport* CURRENT_VP MEM_ALIGN_ATTR = NULL; +struct viewport* CURRENT_VP; static void *LCDFN(frameaddress_default)(int x, int y) { @@ -94,6 +94,7 @@ static void *LCDFN(frameaddress_default)(int x, int y) /* LCD init */ void LCDFN(init)(void) { + /* Initialize the viewport */ LCDFN(set_viewport)(NULL); LCDFN(clear_display)(); diff --git a/firmware/drivers/lcd-2bit-horz.c b/firmware/drivers/lcd-2bit-horz.c index a96ee51036..b2114ba830 100644 --- a/firmware/drivers/lcd-2bit-horz.c +++ b/firmware/drivers/lcd-2bit-horz.c @@ -66,12 +66,12 @@ static struct viewport default_vp = .height = LCD_HEIGHT, .font = FONT_SYSFIXED, .drawmode = DRMODE_SOLID, - .buffer = &lcd_framebuffer_default, + .buffer = NULL, .fg_pattern = LCD_DEFAULT_FG, .bg_pattern = LCD_DEFAULT_BG }; -struct viewport* lcd_current_viewport IBSS_ATTR MEM_ALIGN_ATTR = NULL; +struct viewport* lcd_current_viewport IBSS_ATTR; static unsigned fg_pattern IBSS_ATTR; static unsigned bg_pattern IBSS_ATTR; @@ -93,6 +93,7 @@ void lcd_init(void) { /* Initialize the viewport */ lcd_set_viewport(NULL); + lcd_clear_display(); /* Call device specific init */ lcd_init_device(); diff --git a/firmware/drivers/lcd-2bit-vert.c b/firmware/drivers/lcd-2bit-vert.c index dbd0eac3b6..6a476495d0 100644 --- a/firmware/drivers/lcd-2bit-vert.c +++ b/firmware/drivers/lcd-2bit-vert.c @@ -68,12 +68,12 @@ static struct viewport default_vp = .height = LCD_HEIGHT, .font = FONT_SYSFIXED, .drawmode = DRMODE_SOLID, - .buffer = &lcd_framebuffer_default, + .buffer = NULL, .fg_pattern = LCD_DEFAULT_FG, .bg_pattern = LCD_DEFAULT_BG }; -struct viewport* lcd_current_viewport IBSS_ATTR MEM_ALIGN_ATTR = NULL; +struct viewport* lcd_current_viewport IBSS_ATTR; static unsigned fg_pattern IBSS_ATTR; static unsigned bg_pattern IBSS_ATTR; diff --git a/firmware/drivers/lcd-2bit-vi.c b/firmware/drivers/lcd-2bit-vi.c index 5482777afd..c09bbce2e0 100644 --- a/firmware/drivers/lcd-2bit-vi.c +++ b/firmware/drivers/lcd-2bit-vi.c @@ -80,12 +80,12 @@ static struct viewport default_vp = .height = LCDM(HEIGHT), .font = FONT_SYSFIXED, .drawmode = DRMODE_SOLID, - .buffer = &LCDFN(framebuffer_default), + .buffer = NULL, .fg_pattern = LCDM(DEFAULT_FG), .bg_pattern = LCDM(DEFAULT_BG) }; -struct viewport * CURRENT_VP IBSS_ATTR MEM_ALIGN_ATTR = NULL; +struct viewport * CURRENT_VP IBSS_ATTR; static unsigned fg_pattern IBSS_ATTR; static unsigned bg_pattern IBSS_ATTR; diff --git a/firmware/drivers/lcd-color-common.c b/firmware/drivers/lcd-color-common.c index de72863bea..935f4e59dd 100644 --- a/firmware/drivers/lcd-color-common.c +++ b/firmware/drivers/lcd-color-common.c @@ -63,12 +63,12 @@ static struct viewport default_vp = .height = LCD_HEIGHT, .font = FONT_SYSFIXED, .drawmode = DRMODE_SOLID, - .buffer = &lcd_framebuffer_default, + .buffer = NULL, .fg_pattern = LCD_DEFAULT_FG, .bg_pattern = LCD_DEFAULT_BG, }; -struct viewport* lcd_current_viewport IDATA_ATTR MEM_ALIGN_ATTR = NULL; +struct viewport* lcd_current_viewport IDATA_ATTR; static void *lcd_frameaddress_default(int x, int y) {