From d55294710772a264e6697b06272c057b4fc61939 Mon Sep 17 00:00:00 2001 From: aurel32 Date: Tue, 19 Aug 2008 12:55:20 +0000 Subject: [PATCH] i386: fix isapc machine - cirrus vga: enable graphic console - pc: don't use apic for interrupts on ISA machine Signed-off-by: Aurelien Jarno git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5026 c046a42c-6fe2-441c-8c8c-71466251a162 --- hw/cirrus_vga.c | 2 ++ hw/pc.c | 12 ++++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/hw/cirrus_vga.c b/hw/cirrus_vga.c index 2d0f66ab05..8e223e2662 100644 --- a/hw/cirrus_vga.c +++ b/hw/cirrus_vga.c @@ -3228,6 +3228,8 @@ void isa_cirrus_vga_init(DisplayState *ds, uint8_t *vga_ram_base, vga_common_init((VGAState *)s, ds, vga_ram_base, vga_ram_offset, vga_ram_size); cirrus_init_common(s, CIRRUS_ID_CLGD5430, 0); + s->console = graphic_console_init(s->ds, s->update, s->invalidate, + s->screen_dump, s->text_update, s); /* XXX ISA-LFB support */ } diff --git a/hw/pc.c b/hw/pc.c index 7461a08049..f20944afee 100644 --- a/hw/pc.c +++ b/hw/pc.c @@ -121,10 +121,14 @@ static void pic_irq_request(void *opaque, int irq, int level) if (!level) return; - while (env) { - if (apic_accept_pic_intr(env)) - apic_local_deliver(env, APIC_LINT0); - env = env->next_cpu; + if (env->apic_state) { + while (env) { + if (apic_accept_pic_intr(env)) + apic_local_deliver(env, APIC_LINT0); + env = env->next_cpu; + } + } else { + cpu_interrupt(env, CPU_INTERRUPT_HARD); } }