[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] cirrusfb: proper "Attribute Controller Toggle Readback" reg
From: |
Marcelo Tosatti |
Subject: |
[Qemu-devel] cirrusfb: proper "Attribute Controller Toggle Readback" register behaviour |
Date: |
Wed, 7 May 2008 19:49:23 -0300 |
User-agent: |
Mutt/1.4.2.1i |
The cirrusfb Linux driver uses the toggle readback register to determine
whether to flip 0xC30 to data/address mode.
Without proper implementation the VGA mode will be erroneously set to
blank resulting in crashes when starting BITBLT.
3d4h index 24h (R): Attribute Controller Toggle Readback Register
bit 7 If set the Attribute Controller will next access a data register, if
clear it'll access the index register
Signed-off-by: Marcelo Tosatti <address@hidden>
diff --git a/qemu/hw/cirrus_vga.c b/qemu/hw/cirrus_vga.c
index e14ec35..5baac2f 100644
--- a/qemu/hw/cirrus_vga.c
+++ b/qemu/hw/cirrus_vga.c
@@ -1606,13 +1606,15 @@ cirrus_hook_read_cr(CirrusVGAState * s, unsigned
reg_index, int *reg_value)
case 0x17: // Standard VGA
case 0x18: // Standard VGA
return CIRRUS_HOOK_NOT_HANDLED;
+ case 0x24: // Attribute Controller Toggle Readback (R)
+ *reg_value = (s->ar_flip_flop << 7);
+ break;
case 0x19: // Interlace End
case 0x1a: // Miscellaneous Control
case 0x1b: // Extended Display Control
case 0x1c: // Sync Adjust and Genlock
case 0x1d: // Overlay Extended Control
case 0x22: // Graphics Data Latches Readback (R)
- case 0x24: // Attribute Controller Toggle Readback (R)
case 0x25: // Part Status
case 0x27: // Part ID (R)
*reg_value = s->cr[reg_index];
- [Qemu-devel] cirrusfb: proper "Attribute Controller Toggle Readback" register behaviour,
Marcelo Tosatti <=