summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/qemu/files/arm-bgr.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/qemu/files/arm-bgr.patch')
-rw-r--r--meta/recipes-devtools/qemu/files/arm-bgr.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/meta/recipes-devtools/qemu/files/arm-bgr.patch b/meta/recipes-devtools/qemu/files/arm-bgr.patch
new file mode 100644
index 0000000000..f3ebde6364
--- /dev/null
+++ b/meta/recipes-devtools/qemu/files/arm-bgr.patch
@@ -0,0 +1,30 @@
+After kernel commit:
+
+http://git.yoctoproject.org/cgit/cgit.cgi/linux-yocto-3.0/commit/?h=meta&id=9728c1b6a724daefc413b44e10253cdbb5e06d08
+
+It appears that the emulated colours in qemu are incorrect and that
+the red and blue channels are reversed. This patch reverses that logic
+so the colours are correctly displayed on the versatile platform which
+doesn't support the BGR bit.
+
+RP 16/9/2011
+
+Upstream-Status: Pending
+
+Index: qemu-1.2.0/hw/pl110.c
+===================================================================
+--- qemu-1.2.0.orig/hw/pl110.c 2012-09-06 14:07:27.619821133 -0700
++++ qemu-1.2.0/hw/pl110.c 2012-09-06 14:12:07.699829648 -0700
+@@ -168,7 +168,11 @@
+ fprintf(stderr, "pl110: Bad color depth\n");
+ exit(1);
+ }
+- if (s->cr & PL110_CR_BGR)
++
++ if (s->version && s->bpp == BPP_16)
++ /* Code assumes BPP_16 == 565 and BGR is never set on the versatile in 565 mode */
++ bpp_offset = 0;
++ else if (s->cr & PL110_CR_BGR)
+ bpp_offset = 0;
+ else
+ bpp_offset = 24;