diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2010-05-06 15:11:39 +0200 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2010-06-18 12:13:23 +0200 |
commit | 846780ebcad7a907383173bd2f4fcc4e520e4611 (patch) | |
tree | 52edc671c938c240e27f3c2eeeb5eb0e9f0f66c8 | |
parent | be965ab705738d3dfe21ab2bafb15a92639ae50c (diff) | |
download | qemu-vgabios-846780ebcad7a907383173bd2f4fcc4e520e4611.tar.gz |
update pci_get_lfb_addr for vmware vga
vmware vga has the framebuffer at pci region 1 not 0. This patch makes
pci_get_lfb_addr check region 1 too. It also gives names to the
numbered labels to make the code more readable.
-rw-r--r-- | vgabios.c | 23 |
1 files changed, 14 insertions, 9 deletions
@@ -3852,26 +3852,31 @@ _pci_get_lfb_addr: mov dl, #0x00 call pci_read_reg cmp ax, #0xffff - jz pci_get_lfb_addr_5 - pci_get_lfb_addr_3: + jz pci_get_lfb_addr_fail + pci_get_lfb_addr_next_dev: mov dl, #0x00 call pci_read_reg cmp ax, bx ;; check vendor - jz pci_get_lfb_addr_4 + jz pci_get_lfb_addr_found add cx, #0x8 cmp cx, #0x200 ;; search bus #0 and #1 - jb pci_get_lfb_addr_3 - pci_get_lfb_addr_5: + jb pci_get_lfb_addr_next_dev + pci_get_lfb_addr_fail: xor dx, dx ;; no LFB - jmp pci_get_lfb_addr_6 - pci_get_lfb_addr_4: + jmp pci_get_lfb_addr_return + pci_get_lfb_addr_found: mov dl, #0x10 ;; I/O space #0 call pci_read_reg test ax, #0xfff1 - jnz pci_get_lfb_addr_5 + jz pci_get_lfb_addr_success + mov dl, #0x14 ;; I/O space #1 + call pci_read_reg + test ax, #0xfff1 + jnz pci_get_lfb_addr_fail + pci_get_lfb_addr_success: shr eax, #16 mov dx, ax ;; LFB address - pci_get_lfb_addr_6: + pci_get_lfb_addr_return: pop eax mov ax, dx pop dx |