forked from len0rd/rockbox
Submitted the wrong file with r28933.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28934 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
397215dae9
commit
3f01a82af0
2 changed files with 14 additions and 5 deletions
|
|
@ -136,7 +136,7 @@ lcd_yuv_write_inner_loop:
|
||||||
orr r6, r6, r7, lsl #24 @ swap bytes and add pixels simultaneously
|
orr r6, r6, r7, lsl #24 @ swap bytes and add pixels simultaneously
|
||||||
mov r7, r7, lsr #8
|
mov r7, r7, lsr #8
|
||||||
orr r6, r6, r7, lsl #16
|
orr r6, r6, r7, lsl #16
|
||||||
#if 0
|
#if 1
|
||||||
11: @ while (!(LCD2_BLOCK_CTRL & LCD2_BLOCK_TXOK));
|
11: @ while (!(LCD2_BLOCK_CTRL & LCD2_BLOCK_TXOK));
|
||||||
ldr r11, [r4, #0x20] @
|
ldr r11, [r4, #0x20] @
|
||||||
tst r11, #0x1000000 @
|
tst r11, #0x1000000 @
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,15 @@
|
||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* #define FORCE_FIFO_WAIT
|
||||||
|
*
|
||||||
|
* This is not needed in YUV blitting when the LCD IF is fast enough. In this
|
||||||
|
* case YUV-to-RGB conversion per pixel needs longer than the transfer of a
|
||||||
|
* pixel via the LCD IF. For iPod nano 2G this is true if the LCD IF is
|
||||||
|
* configured to use LCD_PHTIME = 0x00 (see lcd-nano2g.c).
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
.section .icode, "ax", %progbits
|
.section .icode, "ax", %progbits
|
||||||
|
|
@ -185,13 +194,13 @@ lcd_write_yuv420_lines:
|
||||||
/* calculate pixel_2 and pack with pixel_1 before writing */
|
/* calculate pixel_2 and pack with pixel_1 before writing */
|
||||||
orr r5, r5, r3, lsl #5 /* pixel_2 = r<<11 | g<<5 | b */
|
orr r5, r5, r3, lsl #5 /* pixel_2 = r<<11 | g<<5 | b */
|
||||||
orr r5, r5, r6, lsl #11 /* r5 = pixel_2 */
|
orr r5, r5, r6, lsl #11 /* r5 = pixel_2 */
|
||||||
|
#ifdef FORCE_FIFO_WAIT
|
||||||
/* wait for FIFO half full */
|
/* wait for FIFO half full */
|
||||||
.fifo_wait1:
|
.fifo_wait1:
|
||||||
ldr r3, [lr, #-0x24] /* while (LCD_STATUS & 0x08); */
|
ldr r3, [lr, #-0x24] /* while (LCD_STATUS & 0x08); */
|
||||||
tst r3, #0x8
|
tst r3, #0x8
|
||||||
bgt .fifo_wait1
|
bgt .fifo_wait1
|
||||||
|
#endif
|
||||||
stmia lr, {r4,r5} /* write pixel_1 and pixel_2 */
|
stmia lr, {r4,r5} /* write pixel_1 and pixel_2 */
|
||||||
|
|
||||||
subs r7, r7, #2 /* check for loop end */
|
subs r7, r7, #2 /* check for loop end */
|
||||||
|
|
@ -265,13 +274,13 @@ lcd_write_yuv420_lines:
|
||||||
/* calculate pixel_2 and pack with pixel_1 before writing */
|
/* calculate pixel_2 and pack with pixel_1 before writing */
|
||||||
orr r5, r5, r3, lsl #5 /* pixel_2 = r<<11 | g<<5 | b */
|
orr r5, r5, r3, lsl #5 /* pixel_2 = r<<11 | g<<5 | b */
|
||||||
orr r5, r5, r6, lsl #11 /* r5 = pixel_2 */
|
orr r5, r5, r6, lsl #11 /* r5 = pixel_2 */
|
||||||
|
#ifdef FORCE_FIFO_WAIT
|
||||||
/* wait for FIFO half full */
|
/* wait for FIFO half full */
|
||||||
.fifo_wait2:
|
.fifo_wait2:
|
||||||
ldr r3, [lr, #-0x24] /* while (LCD_STATUS & 0x08); */
|
ldr r3, [lr, #-0x24] /* while (LCD_STATUS & 0x08); */
|
||||||
tst r3, #0x8
|
tst r3, #0x8
|
||||||
bgt .fifo_wait2
|
bgt .fifo_wait2
|
||||||
|
#endif
|
||||||
stmia lr, {r4,r5} /* write pixel_1 and pixel_2 */
|
stmia lr, {r4,r5} /* write pixel_1 and pixel_2 */
|
||||||
|
|
||||||
subs r7, r7, #2 /* check for loop end */
|
subs r7, r7, #2 /* check for loop end */
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue