Index: firmware/target/arm/sandisk/sansa-e200/lcd-e200.c =================================================================== --- firmware/target/arm/sandisk/sansa-e200/lcd-e200.c (revision 14446) +++ firmware/target/arm/sandisk/sansa-e200/lcd-e200.c (working copy) @@ -36,8 +36,8 @@ static unsigned short r_disp_control_rev = R_DISP_CONTROL_NORMAL; /* Flipping */ -#define R_DRV_OUTPUT_CONTROL_NORMAL 0x101b -#define R_DRV_OUTPUT_CONTROL_FLIPPED 0x131b +#define R_DRV_OUTPUT_CONTROL_NORMAL 0x121b +#define R_DRV_OUTPUT_CONTROL_FLIPPED 0x111b static unsigned short r_drv_output_control = R_DRV_OUTPUT_CONTROL_NORMAL; #define LCD_DATA_IN_GPIO GPIOB_INPUT_VAL @@ -111,7 +111,6 @@ static fb_data lcd_driver_framebuffer[LCD_FBHEIGHT][LCD_FBWIDTH] __attribute__((aligned(16))); /* Same alignment as in lcd-16bit.c */ -#ifdef BOOTLOADER static void lcd_init_gpio(void) { GPIOB_ENABLE |= (1<<7); @@ -121,7 +120,6 @@ GPIOD_ENABLE |= (1<<6); GPIOD_OUTPUT_EN |= (1<<6); } -#endif static void lcd_bus_idle(void) { @@ -221,7 +219,7 @@ * AM: horizontal update direction * ID1-0: H decrement, V increment */ - lcd_write_reg(R_ENTRY_MODE, 0x6020); + lcd_write_reg(R_ENTRY_MODE, 0x6000); lcd_write_reg(R_COMPARE_REG1, 0x0000); lcd_write_reg(R_COMPARE_REG2, 0x0000); /* FP3-0=0001, BP3-0=0010 */ @@ -265,7 +263,7 @@ /* WRN14-10=00000, VRN03-00=0000 */ lcd_write_reg(R_GAMMA_AMP_ADJ_NEG, 0x0000); /* AD15-0=175 (upper right corner) */ - lcd_write_reg(R_RAM_ADDR_SET, 175); + lcd_write_reg(R_RAM_ADDR_SET, (219 << 8)+175); /* RM=1, DM1-0=01, RIM1-0=00 */ lcd_write_reg(R_EXT_DISP_INTF_CONTROL, 0x0110); @@ -362,7 +360,6 @@ LCD_REG_6 &= ~1; udelay(100000); -#ifdef BOOTLOADER /* Bother at all to do this again? */ /* Init GPIO ports */ lcd_init_gpio(); /* Controller init */ @@ -397,7 +394,7 @@ LCD_REG_7 &= (0xfffff800); LCD_REG_8 = (LCD_REG_8 & (0xf800ffff)) | (0xb0 << 16); - LCD_REG_8 = (LCD_REG_8 & (0xfffff800)) | (0xde); /* X-Y Geometry? */ + LCD_REG_8 = (LCD_REG_8 & (0xfffff800)) | (0xdc); /* X-Y Geometry? */ LCD_REG_5 |= 0xc; LCD_REG_5 = (LCD_REG_5 & ~(0x70)) | (0x3 << 4); @@ -421,18 +418,7 @@ udelay(10000); lcd_display_on(); -#else - /* Power and display already ON - switch framebuffer address and reset - settings */ - LCD_FB_BASE_REG = phys_fb_address((unsigned long)lcd_driver_framebuffer); - power_on = true; - display_on = true; - - lcd_set_invert_display(false); - lcd_set_flip(false); -#endif - LCD_REG_6 |= 1; /* Start DMA */ }