summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Purchase <shotofadds@rockbox.org>2008-07-15 18:59:05 +0000
committerRob Purchase <shotofadds@rockbox.org>2008-07-15 18:59:05 +0000
commit7776c7a6f4462ffe74f6569ef2aaea920c084afe (patch)
tree015dc8a74166bd0a879e058911f7133a6083ae12
parente78cb65a50433fda33bf8bbbe62d9f0785f76918 (diff)
downloadrockbox-7776c7a6f4462ffe74f6569ef2aaea920c084afe.zip
rockbox-7776c7a6f4462ffe74f6569ef2aaea920c084afe.tar.gz
rockbox-7776c7a6f4462ffe74f6569ef2aaea920c084afe.tar.bz2
rockbox-7776c7a6f4462ffe74f6569ef2aaea920c084afe.tar.xz
Fix red for target with insanely wide LCDs.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18060 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/target/arm/lcd-as-memframe.S12
1 files changed, 11 insertions, 1 deletions
diff --git a/firmware/target/arm/lcd-as-memframe.S b/firmware/target/arm/lcd-as-memframe.S
index 519a8a1..84f5490 100644
--- a/firmware/target/arm/lcd-as-memframe.S
+++ b/firmware/target/arm/lcd-as-memframe.S
@@ -302,8 +302,13 @@ lcd_write_yuv420_lines:
#if LCD_WIDTH >= LCD_HEIGHT
add r0, r0, #2*LCD_WIDTH
strh r12, [r0, #2]
+#if LCD_WIDTH <= 512
sub r0, r0, #(2*LCD_WIDTH)-4
#else
+ sub r0, r0, #(2*LCD_WIDTH)
+ add r0, r0, #4
+#endif
+#else
strh r12, [r0, #-2] @ store pixel
#if LCD_WIDTH < 256
add r0, r0, #2*LCD_WIDTH @
@@ -603,7 +608,12 @@ lcd_write_yuv420_lines_odither:
#if LCD_WIDTH >= LCD_HEIGHT
add r0, r0, #2*LCD_WIDTH
strh r1, [r0, #2] @ store pixel
- sub r0, r0, #(2*LCD_WIDTH-4)
+#if LCD_WIDTH <= 512
+ sub r0, r0, #(2*LCD_WIDTH)-4
+#else
+ sub r0, r0, #(2*LCD_WIDTH)
+ add r0, r0, #4
+#endif
#else
strh r1, [r0, #-2] @ store pixel
#if LCD_WIDTH < 256