Commit d55294710772a264e6697b06272c057b4fc61939

Authored by aurel32
1 parent ca1c9e15

i386: fix isapc machine

- cirrus vga: enable graphic console
- pc: don't use apic for interrupts on ISA machine

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5026 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 2 changed files with 10 additions and 4 deletions
hw/cirrus_vga.c
... ... @@ -3228,6 +3228,8 @@ void isa_cirrus_vga_init(DisplayState *ds, uint8_t *vga_ram_base,
3228 3228 vga_common_init((VGAState *)s,
3229 3229 ds, vga_ram_base, vga_ram_offset, vga_ram_size);
3230 3230 cirrus_init_common(s, CIRRUS_ID_CLGD5430, 0);
  3231 + s->console = graphic_console_init(s->ds, s->update, s->invalidate,
  3232 + s->screen_dump, s->text_update, s);
3231 3233 /* XXX ISA-LFB support */
3232 3234 }
3233 3235  
... ...
... ... @@ -121,10 +121,14 @@ static void pic_irq_request(void *opaque, int irq, int level)
121 121 if (!level)
122 122 return;
123 123  
124   - while (env) {
125   - if (apic_accept_pic_intr(env))
126   - apic_local_deliver(env, APIC_LINT0);
127   - env = env->next_cpu;
  124 + if (env->apic_state) {
  125 + while (env) {
  126 + if (apic_accept_pic_intr(env))
  127 + apic_local_deliver(env, APIC_LINT0);
  128 + env = env->next_cpu;
  129 + }
  130 + } else {
  131 + cpu_interrupt(env, CPU_INTERRUPT_HARD);
128 132 }
129 133 }
130 134  
... ...