Fix SVGA decode mask for Trident TGUI9440.
This commit is contained in:
parent
32f794adc4
commit
c88fb61aab
1 changed files with 3 additions and 0 deletions
|
|
@ -311,6 +311,7 @@ void tgui_out(uint16_t addr, uint8_t val, void *p)
|
|||
{
|
||||
tgui->linear_base = ((val & 0xf) | ((val >> 2) & 0x30)) << 20;
|
||||
tgui->linear_size = (val & 0x10) ? 0x200000 : 0x100000;
|
||||
tgui->svga.decode_mask = (val & 0x10) ? 0x1fffff : 0xfffff;
|
||||
}
|
||||
tgui_recalcmapping(tgui);
|
||||
}
|
||||
|
|
@ -710,12 +711,14 @@ void tgui_pci_write(int func, int addr, uint8_t val, void *p)
|
|||
case 0x12:
|
||||
tgui->linear_base = (tgui->linear_base & 0xff000000) | ((val & 0xe0) << 16);
|
||||
tgui->linear_size = 2 << 20;
|
||||
tgui->svga.decode_mask = 0x1fffff;
|
||||
svga->crtc[0x21] = (svga->crtc[0x21] & ~0xf) | (val >> 4);
|
||||
tgui_recalcmapping(tgui);
|
||||
break;
|
||||
case 0x13:
|
||||
tgui->linear_base = (tgui->linear_base & 0xe00000) | (val << 24);
|
||||
tgui->linear_size = 2 << 20;
|
||||
tgui->svga.decode_mask = 0x1fffff;
|
||||
svga->crtc[0x21] = (svga->crtc[0x21] & ~0xc0) | (val >> 6);
|
||||
tgui_recalcmapping(tgui);
|
||||
break;
|
||||
|
|
|
|||
Loading…
Reference in a new issue