summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hw/g364fb.c4
-rw-r--r--hw/vga.c4
-rw-r--r--vl.c2
3 files changed, 8 insertions, 2 deletions
diff --git a/hw/g364fb.c b/hw/g364fb.c
index b43341f8d7..f00ee27b17 100644
--- a/hw/g364fb.c
+++ b/hw/g364fb.c
@@ -245,6 +245,8 @@ static void g364fb_update_display(void *opaque)
{
G364State *s = opaque;
+ qemu_flush_coalesced_mmio_buffer();
+
if (s->width == 0 || s->height == 0)
return;
@@ -297,6 +299,8 @@ static void g364fb_screen_dump(void *opaque, const char *filename)
uint8_t *data_buffer;
FILE *f;
+ qemu_flush_coalesced_mmio_buffer();
+
if (s->depth != 8) {
error_report("g364: unknown guest depth %d", s->depth);
return;
diff --git a/hw/vga.c b/hw/vga.c
index 5beaa9992a..ca79aa157d 100644
--- a/hw/vga.c
+++ b/hw/vga.c
@@ -1838,6 +1838,8 @@ static void vga_update_display(void *opaque)
VGACommonState *s = opaque;
int full_update, graphic_mode;
+ qemu_flush_coalesced_mmio_buffer();
+
if (ds_get_bits_per_pixel(s->ds) == 0) {
/* nothing to do */
} else {
@@ -1958,6 +1960,8 @@ static void vga_update_text(void *opaque, console_ch_t *chardata)
char msg_buffer[80];
int full_update = 0;
+ qemu_flush_coalesced_mmio_buffer();
+
if (!(s->ar_index & 0x20)) {
graphic_mode = GMODE_BLANK;
} else {
diff --git a/vl.c b/vl.c
index dbf77781a7..dd85a41dcb 100644
--- a/vl.c
+++ b/vl.c
@@ -1196,7 +1196,6 @@ static void gui_update(void *opaque)
DisplayState *ds = opaque;
DisplayChangeListener *dcl = ds->listeners;
- qemu_flush_coalesced_mmio_buffer();
dpy_refresh(ds);
while (dcl != NULL) {
@@ -1212,7 +1211,6 @@ static void nographic_update(void *opaque)
{
uint64_t interval = GUI_REFRESH_INTERVAL;
- qemu_flush_coalesced_mmio_buffer();
qemu_mod_timer(nographic_timer, interval + qemu_get_clock_ms(rt_clock));
}