From 1e9216324528f08ed095e0c03381527d347d4bb9 Mon Sep 17 00:00:00 2001 From: santiago Date: Sat, 9 May 2020 16:24:40 -0300 Subject: [PATCH] lazy fix for the screen init bug, hopefully --- arm11/source/hw/gpulcd.c | 14 +++++--------- arm11/source/hw/mcu.c | 3 +-- arm11/source/system/sys.c | 1 - 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/arm11/source/hw/gpulcd.c b/arm11/source/hw/gpulcd.c index c04f847..a5a9719 100644 --- a/arm11/source/hw/gpulcd.c +++ b/arm11/source/hw/gpulcd.c @@ -39,8 +39,10 @@ u8 LCD_GetBrightness(void) void LCD_Initialize(u8 brightness) { - *REG_LCD(0x014) = 0x00000001; - *REG_LCD(0x00C) &= 0xFFFEFFFE; + *REG_LCD(0x014) = 1; + *REG_LCD(0x00C) = 0; + TIMER_WaitTicks(CLK_MS_TO_TICKS(10)); + *REG_LCD(0x240) = brightness; *REG_LCD(0xA40) = brightness; *REG_LCD(0x244) = 0x1023E; @@ -150,13 +152,7 @@ void GPU_SetFramebufferMode(u32 screen, u8 mode) void GPU_Init(void) { - if (*REG_GPU_CNT == 0x1007F) { - MCU_PushToLCD(false); - - LCD_Deinitialize(); - *REG_GPU_CNT = 0x10001; - TIMER_WaitTicks(CLK_MS_TO_TICKS(40)); - } + MCU_PushToLCD(true); LCD_Initialize(0x20); diff --git a/arm11/source/hw/mcu.c b/arm11/source/hw/mcu.c index 3b09580..d43dbac 100755 --- a/arm11/source/hw/mcu.c +++ b/arm11/source/hw/mcu.c @@ -138,6 +138,7 @@ void MCU_ResetLED(void) void MCU_PushToLCD(bool enable) { MCU_WriteReg(REG_LCD_STATE, enable ? 0x2A : 0x01); + TIMER_WaitTicks(CLK_MS_TO_TICKS(160)); } void MCU_HandleInterrupts(u32 __attribute__((unused)) irqn) @@ -172,14 +173,12 @@ void MCU_HandleInterrupts(u32 __attribute__((unused)) irqn) case MCU_SHELL_OPEN: MCU_PushToLCD(true); MCU_UpdateShellState(true); - TIMER_WaitTicks(CLK_MS_TO_TICKS(5)); MCU_ResetLED(); break; case MCU_SHELL_CLOSE: MCU_PushToLCD(false); MCU_UpdateShellState(false); - TIMER_WaitTicks(CLK_MS_TO_TICKS(5)); break; case MCU_VOL_SLIDER: diff --git a/arm11/source/system/sys.c b/arm11/source/system/sys.c index 48064bd..a0a6112 100755 --- a/arm11/source/system/sys.c +++ b/arm11/source/system/sys.c @@ -118,7 +118,6 @@ void SYS_CoreZeroInit(void) GPU_SetFramebufferMode(1, PDC_RGB24); MCU_PushToLCD(true); - TIMER_WaitTicks(CLK_MS_TO_TICKS(5)); } void SYS_CoreInit(void)