From 44fbb1a59363a464d637d93656e9b29858451550 Mon Sep 17 00:00:00 2001 From: Aidan MacDonald Date: Wed, 16 Mar 2022 15:35:39 +0000 Subject: [PATCH] x1000: bootloader: add LCD dualboot cleanup for the M3K Disable LCD interrupts before booting the OF - the OF kernel hangs at boot if they are enabled. Change-Id: I4f119818d0243953cdd620e17d9509b4fb16cc28 --- firmware/target/mips/ingenic_x1000/boot-x1000.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/firmware/target/mips/ingenic_x1000/boot-x1000.c b/firmware/target/mips/ingenic_x1000/boot-x1000.c index feb67994b7..aa97bfcd85 100644 --- a/firmware/target/mips/ingenic_x1000/boot-x1000.c +++ b/firmware/target/mips/ingenic_x1000/boot-x1000.c @@ -145,13 +145,11 @@ void rolo_restart(const unsigned char* source, unsigned char* dest, int length) void x1000_dualboot_cleanup(void) { -#ifdef SHANLING_Q1 - /* hack for the Q1 since OF kernels don't reset this bit, - * leading to garbled graphics. */ - if(!jz_readf(CPM_CLKGR, LCD)) { - jz_writef(LCD_CTRL, BEDN(0)); - } -#endif + /* - disable all LCD interrupts since the M3K can't cope with them + * - disable BEDN bit since it creates garbled graphics on the Q1 */ + jz_writef(CPM_CLKGR, LCD(0)); + jz_writef(LCD_CTRL, BEDN(0), EOFM(0), SOFM(0), IFUM(0), QDM(0)); + jz_writef(CPM_CLKGR, LCD(1)); /* clear USB PHY voodoo bits, not all kernels use them */ jz_writef(CPM_OPCR, GATE_USBPHY_CLK(0));