summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcin Bukat <marcin.bukat@gmail.com>2010-12-20 21:13:27 +0000
committerMarcin Bukat <marcin.bukat@gmail.com>2010-12-20 21:13:27 +0000
commitdddab541513c12982f649ac6498c425d40517613 (patch)
treea83fec685591d9ffe4d8d01a4b7d15c7668ef62f
parent4c046d090b6073520690672e65e2e6fbc2d0651f (diff)
downloadrockbox-dddab541513c12982f649ac6498c425d40517613.tar.gz
rockbox-dddab541513c12982f649ac6498c425d40517613.zip
HD300 - Fix bootloader freeze introduced in r28799. DMA transfer hangs for some reason when cpu runs @11MHz in bootloader.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28867 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/target/coldfire/mpio/hd300/lcd-hd300.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/firmware/target/coldfire/mpio/hd300/lcd-hd300.c b/firmware/target/coldfire/mpio/hd300/lcd-hd300.c
index d66210db22..3752a84073 100644
--- a/firmware/target/coldfire/mpio/hd300/lcd-hd300.c
+++ b/firmware/target/coldfire/mpio/hd300/lcd-hd300.c
@@ -210,13 +210,10 @@ void lcd_update(void)
210 lcd_write_command_ex(LCD_CNTL_COLUMN, 0, -1); 210 lcd_write_command_ex(LCD_CNTL_COLUMN, 0, -1);
211 lcd_write_command(LCD_CNTL_DATA_WRITE); 211 lcd_write_command(LCD_CNTL_DATA_WRITE);
212 212
213 /* lcd can't handle the speed of DMA transfer when boosted */ 213 /* lcd can't handle the speed of DMA transfer when boosted
214 if ( cpu_frequency > 60000000 ) 214 * 11 MHz in bootloader hangs for unknown reason
215 { 215 */
216 /* Copy display bitmap to hardware */ 216 if ( cpu_frequency == CPUFREQ_NORMAL )
217 lcd_write_data (&lcd_framebuffer[0][0], LCD_WIDTH*LCD_FBHEIGHT);
218 }
219 else
220 { 217 {
221 /* Copy display bitmap to hardware using DMA */ 218 /* Copy display bitmap to hardware using DMA */
222 DSR3 = 1; 219 DSR3 = 1;
@@ -226,6 +223,12 @@ void lcd_update(void)
226 DCR3 = DMA_BWC(1) | DMA_SINC | DMA_SSIZE(DMA_SIZE_BYTE) | 223 DCR3 = DMA_BWC(1) | DMA_SINC | DMA_SSIZE(DMA_SIZE_BYTE) |
227 DMA_DSIZE(DMA_SIZE_BYTE) | DMA_START; 224 DMA_DSIZE(DMA_SIZE_BYTE) | DMA_START;
228 } 225 }
226 else
227 {
228 /* Copy display bitmap to hardware */
229 lcd_write_data (&lcd_framebuffer[0][0], LCD_WIDTH*LCD_FBHEIGHT);
230 }
231
229} 232}
230 233
231/* Update a fraction of the display. */ 234/* Update a fraction of the display. */