summaryrefslogtreecommitdiff
path: root/firmware/target
diff options
context:
space:
mode:
authorTobias Diedrich <ranma+coreboot@tdiedrich.de>2010-06-27 03:24:56 +0000
committerTobias Diedrich <ranma+coreboot@tdiedrich.de>2010-06-27 03:24:56 +0000
commit4b189764961da77f1ada942ca68ddce4acc575e9 (patch)
tree9dc0b28c3a9af5a9c535675a3b24becc8e3fd117 /firmware/target
parent04f9aa8e55cd35d48b7d92bf102072cd59982a3d (diff)
downloadrockbox-4b189764961da77f1ada942ca68ddce4acc575e9.tar.gz
rockbox-4b189764961da77f1ada942ca68ddce4acc575e9.zip
udelay between command and data write seems to get rid of the display glitches on C200v2
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27151 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target')
-rw-r--r--firmware/target/arm/lcd-c200_c200v2.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/firmware/target/arm/lcd-c200_c200v2.c b/firmware/target/arm/lcd-c200_c200v2.c
index 858828f88a..f82f8a809e 100644
--- a/firmware/target/arm/lcd-c200_c200v2.c
+++ b/firmware/target/arm/lcd-c200_c200v2.c
@@ -274,13 +274,8 @@ void lcd_enable(bool yesno)
274 274
275 if ((is_lcd_enabled = yesno)) 275 if ((is_lcd_enabled = yesno))
276 { 276 {
277#ifdef SANSA_C200V2
278 /* lcd sometimes gets stuck, do full init here */
279 lcd_reset();
280#else
281 lcd_send_command(R_STANDBY_OFF, 0); 277 lcd_send_command(R_STANDBY_OFF, 0);
282 lcd_send_command(R_DISPLAY_ON, 0); 278 lcd_send_command(R_DISPLAY_ON, 0);
283#endif
284 send_event(LCD_EVENT_ACTIVATION, NULL); 279 send_event(LCD_EVENT_ACTIVATION, NULL);
285 } 280 }
286 else 281 else
@@ -418,6 +413,11 @@ void lcd_update_rect(int x, int y, int width, int height)
418 lcd_send_command(R_Y_ADDR_AREA, y + 0x1a); 413 lcd_send_command(R_Y_ADDR_AREA, y + 0x1a);
419 lcd_send_command(y + height - 1 + 0x1a, 0); 414 lcd_send_command(y + height - 1 + 0x1a, 0);
420 415
416#ifdef SANSA_C200V2
417 /* somehow there are glitches without this delay */
418 udelay(1);
419#endif
420
421 do { 421 do {
422 lcd_write_data(addr, width); 422 lcd_write_data(addr, width);
423 addr += LCD_WIDTH; 423 addr += LCD_WIDTH;