Add cirrus reset handler

The vga reset handler overwrites some cirrus registers, causing reboots
to corrupt cirrus state to the point that guests can only bring up 640x480
resolutions.

Fix by adding a dedicated cirrus reset handler (which calls the common vga
handler).

Signed-off-by: Avi Kivity <avi@redhat.com>


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6191 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
blueswir1 2009-01-05 17:37:06 +00:00
parent 785f451b62
commit 4abc796d41
3 changed files with 66 additions and 53 deletions

View file

@ -1839,7 +1839,7 @@ static void vga_invalidate_display(void *opaque)
s->last_height = -1;
}
static void vga_reset(void *opaque)
void vga_reset(void *opaque)
{
VGAState *s = (VGAState *) opaque;
@ -2277,7 +2277,6 @@ void vga_common_init(VGAState *s, DisplayState *ds, uint8_t *vga_ram_base,
s->update_retrace_info = vga_precise_update_retrace_info;
break;
}
qemu_register_reset(vga_reset, s);
vga_reset(s);
}
@ -2286,6 +2285,7 @@ void vga_init(VGAState *s)
{
int vga_io_memory;
qemu_register_reset(vga_reset, s);
register_savevm("vga", 0, 2, vga_save, vga_load, s);
register_ioport_write(0x3c0, 16, 1, vga_ioport_write, s);