diff options
author | Marcin Bukat <marcin.bukat@gmail.com> | 2010-12-11 23:55:14 +0000 |
---|---|---|
committer | Marcin Bukat <marcin.bukat@gmail.com> | 2010-12-11 23:55:14 +0000 |
commit | 8e1021bd4c048f793ae5593a08d81e0994b5aba1 (patch) | |
tree | d7dd70738d5b363569070c05dc82660c6b8181e7 /firmware/target | |
parent | 08bcbd08d2b8229c6ea54c02d0805376bc75757d (diff) | |
download | rockbox-8e1021bd4c048f793ae5593a08d81e0994b5aba1.tar.gz rockbox-8e1021bd4c048f793ae5593a08d81e0994b5aba1.zip |
HD300 - further speedup of lcd_update() by utilizing DMA transfer when unboosted. The gain is 438 -> 728 fps @ 45MHz.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28799 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target')
-rw-r--r-- | firmware/target/coldfire/mpio/hd300/lcd-hd300.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/firmware/target/coldfire/mpio/hd300/lcd-hd300.c b/firmware/target/coldfire/mpio/hd300/lcd-hd300.c index 31087a5d43..d66210db22 100644 --- a/firmware/target/coldfire/mpio/hd300/lcd-hd300.c +++ b/firmware/target/coldfire/mpio/hd300/lcd-hd300.c | |||
@@ -210,8 +210,22 @@ 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 | /* Copy display bitmap to hardware */ | 213 | /* lcd can't handle the speed of DMA transfer when boosted */ |
214 | lcd_write_data (&lcd_framebuffer[0][0], LCD_WIDTH*LCD_FBHEIGHT); | 214 | if ( cpu_frequency > 60000000 ) |
215 | { | ||
216 | /* Copy display bitmap to hardware */ | ||
217 | lcd_write_data (&lcd_framebuffer[0][0], LCD_WIDTH*LCD_FBHEIGHT); | ||
218 | } | ||
219 | else | ||
220 | { | ||
221 | /* Copy display bitmap to hardware using DMA */ | ||
222 | DSR3 = 1; | ||
223 | DAR3 = 0xf0000002; | ||
224 | SAR3 = (unsigned long)lcd_framebuffer; | ||
225 | BCR3 = LCD_WIDTH*LCD_FBHEIGHT; | ||
226 | DCR3 = DMA_BWC(1) | DMA_SINC | DMA_SSIZE(DMA_SIZE_BYTE) | | ||
227 | DMA_DSIZE(DMA_SIZE_BYTE) | DMA_START; | ||
228 | } | ||
215 | } | 229 | } |
216 | 230 | ||
217 | /* Update a fraction of the display. */ | 231 | /* Update a fraction of the display. */ |