@@ -52,14 +52,12 @@ static void vga_map(PCIDevice *pci_dev, int region_num,
{
PCIVGAState *d = (PCIVGAState *)pci_dev;
VGACommonState *s = &d->vga;
- if (region_num == PCI_ROM_SLOT) {
- cpu_register_physical_memory(addr, s->bios_size, s->bios_offset);
- } else {
- cpu_register_physical_memory(addr, s->vram_size, s->vram_offset);
- s->map_addr = addr;
- s->map_end = addr + s->vram_size;
- vga_dirty_log_start(s);
- }
+
+ assert(region_num != PCI_ROM_SLOT);
+
+ s->map_addr = addr;
+ s->map_end = addr + s->vram_size;
+ vga_dirty_log_start(s);
}
static void pci_vga_write_config(PCIDevice *d,
@@ -92,8 +90,9 @@ static int pci_vga_initfn(PCIDevice *dev)
pci_config_set_class(pci_conf, PCI_CLASS_DISPLAY_VGA);
/* XXX: VGA_RAM_SIZE must be a power of two */
- pci_register_bar(&d->dev, 0, VGA_RAM_SIZE,
- PCI_BASE_ADDRESS_MEM_PREFETCH, vga_map, NULL);
+ pci_register_bar(&d->dev, 0, VGA_RAM_SIZE, PCI_BASE_ADDRESS_MEM_PREFETCH,
+ NULL, vga_map);
+ pci_bar_map(&d->dev, 0, 0, 0, s->vram_size, s->vram_offset);
if (s->bios_size) {
unsigned int bios_total_size;
@@ -102,7 +101,8 @@ static int pci_vga_initfn(PCIDevice *dev)
while (bios_total_size < s->bios_size)
bios_total_size <<= 1;
pci_register_bar(&d->dev, PCI_ROM_SLOT, bios_total_size,
- PCI_BASE_ADDRESS_MEM_PREFETCH, vga_map, NULL);
+ PCI_BASE_ADDRESS_MEM_PREFETCH, NULL, NULL);
+ pci_bar_map(&d->dev, PCI_ROM_SLOT, 0, 0, s->bios_size, s->bios_offset);
}
vga_init_vbe(s);
Use pci_bar_map() and post_map_func instead of a mapping function. Signed-off-by: Blue Swirl <blauwirbel@gmail.com> --- hw/vga-pci.c | 22 +++++++++++----------- 1 files changed, 11 insertions(+), 11 deletions(-)