udelay between command and data write seems to get rid of the display glitches on...
authorranma <ranma@a1c6a512-1295-4272-9138-f99709370657>
Sun, 27 Jun 2010 03:24:56 +0000 (27 03:24 +0000)
committerranma <ranma@a1c6a512-1295-4272-9138-f99709370657>
Sun, 27 Jun 2010 03:24:56 +0000 (27 03:24 +0000)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27151 a1c6a512-1295-4272-9138-f99709370657

firmware/target/arm/lcd-c200_c200v2.c

index 858828f..f82f8a8 100644 (file)
@@ -274,13 +274,8 @@ void lcd_enable(bool yesno)
 
     if ((is_lcd_enabled = yesno))
     {
-#ifdef SANSA_C200V2
-        /* lcd sometimes gets stuck, do full init here */
-        lcd_reset();
-#else
         lcd_send_command(R_STANDBY_OFF, 0);
         lcd_send_command(R_DISPLAY_ON, 0);
-#endif
         send_event(LCD_EVENT_ACTIVATION, NULL);
     }
     else
@@ -418,6 +413,11 @@ void lcd_update_rect(int x, int y, int width, int height)
     lcd_send_command(R_Y_ADDR_AREA, y + 0x1a);
     lcd_send_command(y + height - 1 + 0x1a, 0);
 
+#ifdef SANSA_C200V2
+    /* somehow there are glitches without this delay */
+    udelay(1);
+#endif
+
     do {
         lcd_write_data(addr, width);
         addr += LCD_WIDTH;