From 3f01a82af09bad11d05b29f7db26fdca8a276737 Mon Sep 17 00:00:00 2001 From: Andree Buschmann Date: Thu, 30 Dec 2010 15:46:39 +0000 Subject: Submitted the wrong file with r28933. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28934 a1c6a512-1295-4272-9138-f99709370657 --- firmware/target/arm/ipod/lcd-as-color-nano.S | 2 +- firmware/target/arm/s5l8700/ipodnano2g/lcd-asm-nano2g.S | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/firmware/target/arm/ipod/lcd-as-color-nano.S b/firmware/target/arm/ipod/lcd-as-color-nano.S index 5708d0afb8..d4df4d496a 100755 --- a/firmware/target/arm/ipod/lcd-as-color-nano.S +++ b/firmware/target/arm/ipod/lcd-as-color-nano.S @@ -136,7 +136,7 @@ lcd_yuv_write_inner_loop: orr r6, r6, r7, lsl #24 @ swap bytes and add pixels simultaneously mov r7, r7, lsr #8 orr r6, r6, r7, lsl #16 -#if 0 +#if 1 11: @ while (!(LCD2_BLOCK_CTRL & LCD2_BLOCK_TXOK)); ldr r11, [r4, #0x20] @ tst r11, #0x1000000 @ diff --git a/firmware/target/arm/s5l8700/ipodnano2g/lcd-asm-nano2g.S b/firmware/target/arm/s5l8700/ipodnano2g/lcd-asm-nano2g.S index 7fd703972d..2b170f329b 100755 --- a/firmware/target/arm/s5l8700/ipodnano2g/lcd-asm-nano2g.S +++ b/firmware/target/arm/s5l8700/ipodnano2g/lcd-asm-nano2g.S @@ -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" .section .icode, "ax", %progbits @@ -185,13 +194,13 @@ lcd_write_yuv420_lines: /* 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, r6, lsl #11 /* r5 = pixel_2 */ - +#ifdef FORCE_FIFO_WAIT /* wait for FIFO half full */ .fifo_wait1: ldr r3, [lr, #-0x24] /* while (LCD_STATUS & 0x08); */ tst r3, #0x8 bgt .fifo_wait1 - +#endif stmia lr, {r4,r5} /* write pixel_1 and pixel_2 */ 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 */ orr r5, r5, r3, lsl #5 /* pixel_2 = r<<11 | g<<5 | b */ orr r5, r5, r6, lsl #11 /* r5 = pixel_2 */ - +#ifdef FORCE_FIFO_WAIT /* wait for FIFO half full */ .fifo_wait2: ldr r3, [lr, #-0x24] /* while (LCD_STATUS & 0x08); */ tst r3, #0x8 bgt .fifo_wait2 - +#endif stmia lr, {r4,r5} /* write pixel_1 and pixel_2 */ subs r7, r7, #2 /* check for loop end */ -- cgit v1.2.3