summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2007-11-18 12:49:24 +0000
committerJens Arnold <amiconn@rockbox.org>2007-11-18 12:49:24 +0000
commit6ef2db2c1127954e22001d8663fb2ab9de5c2665 (patch)
treefce79b4f0e5a5aa143527d3223a3bc7202f1b3f3
parenta8993baeb4affc0856b1683bfaead4b929a8f460 (diff)
downloadrockbox-6ef2db2c1127954e22001d8663fb2ab9de5c2665.zip
rockbox-6ef2db2c1127954e22001d8663fb2ab9de5c2665.tar.gz
rockbox-6ef2db2c1127954e22001d8663fb2ab9de5c2665.tar.bz2
rockbox-6ef2db2c1127954e22001d8663fb2ab9de5c2665.tar.xz
Significant LCD speedup for all greyscale iPods and Sansa c200 (c200, 4th Gen, Mini 1st Gen: >3.3x speedup, 1st..3rd Gen: ~2x speedup, Mini 2nd Gen: ~30% speedup).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15655 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/target/arm/ipod/lcd-gray.c10
-rw-r--r--firmware/target/arm/sandisk/sansa-c200/lcd-c200.c2
2 files changed, 9 insertions, 3 deletions
diff --git a/firmware/target/arm/ipod/lcd-gray.c b/firmware/target/arm/ipod/lcd-gray.c
index 9f73226..bbe7703 100644
--- a/firmware/target/arm/ipod/lcd-gray.c
+++ b/firmware/target/arm/ipod/lcd-gray.c
@@ -153,9 +153,15 @@ void lcd_init_device(void)
* f/32, for better blacklevel stability */
else
power_reg_h = 0x1100;
-#elif defined IPOD_MINI2G
+#endif
+
+#ifdef IPOD_MINI2G /* serial LCD hookup */
lcd_wait_write();
- LCD1_CONTROL = (LCD1_CONTROL & ~0x1f00000) | 0x1700000;
+ LCD1_CONTROL = 0x01730084; /* fastest setting */
+#elif defined(IPOD_1G2G) || defined(IPOD_3G)
+ LCD1_CONTROL = (LCD1_CONTROL & 0x0002) | 0x0084; /* fastest setting, keep backlight bit */
+#else
+ LCD1_CONTROL = 0x0084; /* fastest setting */
#endif
lcd_cmd_and_data(R_POWER_CONTROL, POWER_REG_H | 0xc);
diff --git a/firmware/target/arm/sandisk/sansa-c200/lcd-c200.c b/firmware/target/arm/sandisk/sansa-c200/lcd-c200.c
index 49e1268..b17cce3 100644
--- a/firmware/target/arm/sandisk/sansa-c200/lcd-c200.c
+++ b/firmware/target/arm/sandisk/sansa-c200/lcd-c200.c
@@ -100,7 +100,7 @@ void lcd_init_device(void)
LCD1_CONTROL |= 0x4;
udelay(10);
- LCD1_CONTROL = 0x4687;
+ LCD1_CONTROL = 0x0084; /* bits (9,10) = 00 -> fastest setting */
udelay(10000);
lcd_send_command(R_STANDBY_OFF);