summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bootloader/main-pp.c13
-rw-r--r--firmware/target/arm/samsung/yh925/lcd-yh925.c12
2 files changed, 24 insertions, 1 deletions
diff --git a/bootloader/main-pp.c b/bootloader/main-pp.c
index c213a65121..ef0e199e3a 100644
--- a/bootloader/main-pp.c
+++ b/bootloader/main-pp.c
@@ -47,6 +47,11 @@
47#include "usb.h" 47#include "usb.h"
48#include "usb_drv.h" 48#include "usb_drv.h"
49#endif 49#endif
50#if defined(SAMSUNG_YH925)
51/* this function (in lcd-yh925.c) resets the screen orientation for the OF
52 * for use with dualbooting */
53void lcd_reset(void);
54#endif
50 55
51/* Show the Rockbox logo - in show_logo.c */ 56/* Show the Rockbox logo - in show_logo.c */
52extern int show_logo(void); 57extern int show_logo(void);
@@ -575,7 +580,7 @@ void* main(void)
575 The rest of the loading is done in crt0.S. 580 The rest of the loading is done in crt0.S.
576 1) First try reading from the hidden partition (on Sansa only). 581 1) First try reading from the hidden partition (on Sansa only).
577 2) Next try a decrypted mi4 file in /System/OF.mi4 582 2) Next try a decrypted mi4 file in /System/OF.mi4
578 3) Finally, try a raw firmware binary in /System/OF.mi4. It should be 583 3) Finally, try a raw firmware binary in /System/OF.bin. It should be
579 a mi4 firmware decrypted and header stripped using mi4code. 584 a mi4 firmware decrypted and header stripped using mi4code.
580 */ 585 */
581 printf("Loading original firmware..."); 586 printf("Loading original firmware...");
@@ -615,6 +620,9 @@ void* main(void)
615 printf("Can't load /System/OF.mi4"); 620 printf("Can't load /System/OF.mi4");
616 printf(strerror(rc)); 621 printf(strerror(rc));
617 } else { 622 } else {
623#if defined(SAMSUNG_YH925)
624 lcd_reset();
625#endif
618 return (void*)loadbuffer; 626 return (void*)loadbuffer;
619 } 627 }
620 628
@@ -624,6 +632,9 @@ void* main(void)
624 printf("Can't load /System/OF.bin"); 632 printf("Can't load /System/OF.bin");
625 printf(strerror(rc)); 633 printf(strerror(rc));
626 } else { 634 } else {
635#if defined(SAMSUNG_YH925)
636 lcd_reset();
637#endif
627 return (void*)loadbuffer; 638 return (void*)loadbuffer;
628 } 639 }
629 640
diff --git a/firmware/target/arm/samsung/yh925/lcd-yh925.c b/firmware/target/arm/samsung/yh925/lcd-yh925.c
index edeef49d40..7509deff36 100644
--- a/firmware/target/arm/samsung/yh925/lcd-yh925.c
+++ b/firmware/target/arm/samsung/yh925/lcd-yh925.c
@@ -190,6 +190,18 @@ void lcd_set_flip(bool flip)
190 lcd_write_reg(R_ENTRY_MODE, 0x1028); 190 lcd_write_reg(R_ENTRY_MODE, 0x1028);
191} 191}
192 192
193/* Reset the LCD prior to booting the OF */
194#ifdef BOOTLOADER
195void lcd_reset(void)
196{
197 lcd_write_reg(R_DRV_OUTPUT_CONTROL, 0x0315);
198 lcd_write_reg(R_ENTRY_MODE, 0x1028);
199 lcd_write_reg(R_HORIZ_RAM_ADDR_POS, 0x7f00);
200 lcd_write_reg(R_VERT_RAM_ADDR_POS, 0xaf10);
201 lcd_write_reg(R_RAM_ADDR_SET, 0x0000);
202}
203#endif
204
193/* LCD init */ 205/* LCD init */
194void lcd_init_device(void) 206void lcd_init_device(void)
195{ 207{