Rockbox open source high quality audio player as a Music Player Daemon
mpris rockbox mpd libadwaita audio rust zig deno
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

Fix iPod Classic LCD problems

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29009 a1c6a512-1295-4272-9138-f99709370657

+33 -34
+33 -34
firmware/target/arm/s5l8702/ipod6g/lcd-ipod6g.c
··· 56 56 LCD_WCMD = cmd; 57 57 58 58 while (LCD_STATUS & 0x10); 59 - LCD_WDATA = data; 59 + LCD_WDATA = (data & 0xff) | ((data & 0x7f00) << 1); 60 60 } 61 61 62 62 static inline void s5l_lcd_write_cmd(unsigned short cmd) ··· 103 103 pmu_write(0x2b, 0); /* Kill the backlight, instantly. */ 104 104 pmu_write(0x29, 0); 105 105 106 - if (lcd_type == 3) 107 - { 108 - s5l_lcd_write_cmd_data(0x7, 0x172); 109 - s5l_lcd_write_cmd_data(0x30, 0x3ff); 110 - sleep(HZ / 10); 111 - s5l_lcd_write_cmd_data(0x7, 0x120); 112 - s5l_lcd_write_cmd_data(0x30, 0x0); 113 - s5l_lcd_write_cmd_data(0x100, 0x780); 114 - s5l_lcd_write_cmd_data(0x7, 0x0); 115 - s5l_lcd_write_cmd_data(0x101, 0x260); 116 - s5l_lcd_write_cmd_data(0x102, 0xa9); 117 - sleep(HZ / 30); 118 - s5l_lcd_write_cmd_data(0x100, 0x700); 119 - s5l_lcd_write_cmd_data(0x100, 0x704); 120 - } 121 - else if (lcd_type == 1) 122 - { 123 - s5l_lcd_write_cmd(0x28); 124 - s5l_lcd_write_cmd(0x10); 125 - sleep(HZ / 10); 126 - } 127 - else 128 - { 129 - s5l_lcd_write_cmd(0x28); 130 - sleep(HZ / 20); 131 - s5l_lcd_write_cmd(0x10); 132 - sleep(HZ / 20); 133 - } 106 + if (lcd_type & 2) 107 + { 108 + s5l_lcd_write_cmd_data(0x7, 0x172); 109 + s5l_lcd_write_cmd_data(0x30, 0x3ff); 110 + sleep(HZ / 10); 111 + s5l_lcd_write_cmd_data(0x7, 0x120); 112 + s5l_lcd_write_cmd_data(0x30, 0x0); 113 + s5l_lcd_write_cmd_data(0x100, 0x780); 114 + s5l_lcd_write_cmd_data(0x7, 0x0); 115 + s5l_lcd_write_cmd_data(0x101, 0x260); 116 + s5l_lcd_write_cmd_data(0x102, 0xa9); 117 + sleep(HZ / 30); 118 + s5l_lcd_write_cmd_data(0x100, 0x700); 119 + s5l_lcd_write_cmd_data(0x100, 0x704); 120 + } 121 + else if (lcd_type == 1) 122 + { 123 + s5l_lcd_write_cmd(0x28); 124 + s5l_lcd_write_cmd(0x10); 125 + sleep(HZ / 10); 126 + } 127 + else 128 + { 129 + s5l_lcd_write_cmd(0x28); 130 + sleep(HZ / 20); 131 + s5l_lcd_write_cmd(0x10); 132 + sleep(HZ / 20); 133 + } 134 134 } 135 135 136 136 void lcd_sleep(void) ··· 187 187 s5l_lcd_write_cmd_data(R_VERT_ADDR_START_POS, y0); 188 188 s5l_lcd_write_cmd_data(R_VERT_ADDR_END_POS, y1); 189 189 190 - s5l_lcd_write_cmd_data(R_HORIZ_GRAM_ADDR_SET, (x1 << 8) | x0); 191 - s5l_lcd_write_cmd_data(R_VERT_GRAM_ADDR_SET, (y1 << 8) | y0); 190 + s5l_lcd_write_cmd_data(R_HORIZ_GRAM_ADDR_SET, x0); 191 + s5l_lcd_write_cmd_data(R_VERT_GRAM_ADDR_SET, y0); 192 192 193 193 s5l_lcd_write_cmd(R_WRITE_DATA_TO_GRAM); 194 194 } else { ··· 253 253 s5l_lcd_write_cmd_data(R_VERT_ADDR_START_POS, y0); 254 254 s5l_lcd_write_cmd_data(R_VERT_ADDR_END_POS, y1); 255 255 256 - s5l_lcd_write_cmd_data(R_HORIZ_GRAM_ADDR_SET, (x1 << 8) | x0); 257 - s5l_lcd_write_cmd_data(R_VERT_GRAM_ADDR_SET, (y1 << 8) | y0); 256 + s5l_lcd_write_cmd_data(R_HORIZ_GRAM_ADDR_SET, x0); 257 + s5l_lcd_write_cmd_data(R_VERT_GRAM_ADDR_SET, y0); 258 258 259 - s5l_lcd_write_cmd(0); 260 259 s5l_lcd_write_cmd(R_WRITE_DATA_TO_GRAM); 261 260 } else { 262 261 s5l_lcd_write_cmd(R_COLUMN_ADDR_SET);