framebuffer: set DIRTY_MEMORY_VGA on RAM that is used for the framebuffer
commitc1076c3e13a86140cc2ba29866512df8460cc7c2
authorPaolo Bonzini <pbonzini@redhat.com>
Mon, 13 Jul 2015 10:00:29 +0000 (13 12:00 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 24 Jul 2015 11:57:45 +0000 (24 13:57 +0200)
tree9aa1b98c2a7467e890539e2bb8cab4e2e989a725
parentdeb809edb85334c8e90530e1071b98f4da25ebaa
framebuffer: set DIRTY_MEMORY_VGA on RAM that is used for the framebuffer

The MemoryRegionSection contains enough information to access the
RAM region underlying the framebuffer, and can be cached inside the
display device.

By doing this, the new framebuffer_update_memory_section function can
enable dirty memory logging on the relevant RAM region.  The function
must be called whenever the stride or base of the framebuffer changes;
a simple way to cover these cases is to call it on every full frame
invalidation, which is a rare case.

framebuffer_update_display now works entirely on a MemoryRegionSection,
without going through cpu_physical_memory_map/unmap.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
hw/display/framebuffer.c
hw/display/framebuffer.h
hw/display/milkymist-vgafb.c
hw/display/omap_lcdc.c
hw/display/pl110.c
hw/display/pxa2xx_lcd.c