summary refs log tree commit diff stats
path: root/hw/display/ati_int.h
diff options
context:
space:
mode:
authorBALATON Zoltan <balaton@eik.bme.hu>2019-08-16 00:18:09 +0200
committerGerd Hoffmann <kraxel@redhat.com>2019-08-22 10:04:20 +0200
commitb7105d280cab053465de79ff1766d2f7e1ea7554 (patch)
tree43d9a7f15db59a02aabc2f28f0b50107fc822c5d /hw/display/ati_int.h
parent8bb9a2b26d83a0989367e3688badb2914283827d (diff)
downloadfocaccia-qemu-b7105d280cab053465de79ff1766d2f7e1ea7554.tar.gz
focaccia-qemu-b7105d280cab053465de79ff1766d2f7e1ea7554.zip
ati-vga: Implement dummy VBlank IRQ
The MacOS driver exits if the card does not have an interrupt. If we
set PCI_INTERRUPT_PIN to 1 then it enables VBlank interrupts and it
boots but the mouse pointer cannot be moved. This patch implements a
dummy VBlank interrupt triggered by a 60 Hz timer. With this the
pointer now moves but MacOS still hangs somewhere before completely
finishing boot.

Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <89364275f2fb5f85ee73c0e76528aa91691a499a.1565907489.git.balaton@eik.bme.hu>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'hw/display/ati_int.h')
-rw-r--r--hw/display/ati_int.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/hw/display/ati_int.h b/hw/display/ati_int.h
index 5b4d3be1e6..2a16708e4f 100644
--- a/hw/display/ati_int.h
+++ b/hw/display/ati_int.h
@@ -9,6 +9,7 @@
 #ifndef ATI_INT_H
 #define ATI_INT_H
 
+#include "qemu/timer.h"
 #include "hw/pci/pci.h"
 #include "hw/i2c/bitbang_i2c.h"
 #include "vga_int.h"
@@ -33,6 +34,8 @@
 typedef struct ATIVGARegs {
     uint32_t mm_index;
     uint32_t bios_scratch[8];
+    uint32_t gen_int_cntl;
+    uint32_t gen_int_status;
     uint32_t crtc_gen_cntl;
     uint32_t crtc_ext_cntl;
     uint32_t dac_cntl;
@@ -89,6 +92,7 @@ typedef struct ATIVGAState {
     uint16_t cursor_size;
     uint32_t cursor_offset;
     QEMUCursor *cursor;
+    QEMUTimer vblank_timer;
     bitbang_i2c_interface bbi2c;
     MemoryRegion io;
     MemoryRegion mm;