summary refs log tree commit diff stats
path: root/hw/display/tcx.c
diff options
context:
space:
mode:
authorMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>2017-04-05 09:02:46 +0100
committerMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>2017-04-21 09:02:04 +0100
commit4b865c28099ddd365062f46dd1ad83c03b2468eb (patch)
tree971f0e0b7baa05c3ca7ff833980f23895511f76a /hw/display/tcx.c
parent9800b3c20e79b4203f08ca13c7c3cb602cda1618 (diff)
downloadfocaccia-qemu-4b865c28099ddd365062f46dd1ad83c03b2468eb.tar.gz
focaccia-qemu-4b865c28099ddd365062f46dd1ad83c03b2468eb.zip
tcx: ensure tcx_set_dirty() also invalidates the 24-bit plane and cplane
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'hw/display/tcx.c')
-rw-r--r--hw/display/tcx.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/hw/display/tcx.c b/hw/display/tcx.c
index d24466f59d..6817bd207d 100644
--- a/hw/display/tcx.c
+++ b/hw/display/tcx.c
@@ -96,6 +96,13 @@ typedef struct TCXState {
 static void tcx_set_dirty(TCXState *s, ram_addr_t addr, int len)
 {
     memory_region_set_dirty(&s->vram_mem, addr, len);
+
+    if (s->depth == 24) {
+        memory_region_set_dirty(&s->vram_mem, s->vram24_offset + addr * 4,
+                                len * 4);
+        memory_region_set_dirty(&s->vram_mem, s->cplane_offset + addr * 4,
+                                len * 4);
+    }
 }
 
 static inline int tcx24_check_dirty(TCXState *s, ram_addr_t page,