When we steal the vram, we copy the old data into it. It may be the
case that the display output is already running - eg a VNC client
already connected. In this case it is necessary to call dpy_update to
ensure that the data is sent to the client.
Without this change the initial screen clearing (done by the BIOS
before vram is stole) may be missed if the vnc client is fast at VM
startup, resulting in a white vnc screen with bits of black-backed
text painted over (which can be rectified by asking for a screen
refresh).
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
xen_pfn_t *pfn_list;
int i;
void *vram;
+ DisplayState *ds;
fprintf(logfile, "mapping video RAM from %llx\n",
(unsigned long long)vram_addr);
#ifdef CONFIG_STUBDOM
xenfb_pv_display_start(vram);
#endif
+ /* If some display is already working, we need to update it now */
+ ds= xen_vga_state->ds;
+ if (ds)
+ dpy_update(ds, 0,0, ds->width,ds->height);
}
/* Called at boot time when the BIOS has allocated video RAM */