diff options
-rw-r--r-- | hw/acpi/piix4.c | 9 | ||||
-rw-r--r-- | hw/isa/lpc_ich9.c | 9 | ||||
-rw-r--r-- | include/exec/ioport.h | 1 | ||||
-rw-r--r-- | ioport.c | 7 |
4 files changed, 10 insertions, 16 deletions
diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c index 756df3bee2..ff559c0a4a 100644 --- a/hw/acpi/piix4.c +++ b/hw/acpi/piix4.c @@ -383,14 +383,15 @@ static void piix4_pm_powerdown_req(Notifier *n, void *opaque) static void piix4_pm_machine_ready(Notifier *n, void *opaque) { PIIX4PMState *s = container_of(n, PIIX4PMState, machine_ready); + MemoryRegion *io_as = pci_address_space_io(&s->dev); uint8_t *pci_conf; pci_conf = s->dev.config; - pci_conf[0x5f] = (isa_is_ioport_assigned(0x378) ? 0x80 : 0) | 0x10; + pci_conf[0x5f] = 0x10 | + (memory_region_find(io_as, 0x378, 1).mr ? 0x80 : 0); pci_conf[0x63] = 0x60; - pci_conf[0x67] = (isa_is_ioport_assigned(0x3f8) ? 0x08 : 0) | - (isa_is_ioport_assigned(0x2f8) ? 0x90 : 0); - + pci_conf[0x67] = (memory_region_find(io_as, 0x3f8, 1).mr ? 0x08 : 0) | + (memory_region_find(io_as, 0x2f8, 1).mr ? 0x90 : 0); } static int piix4_pm_initfn(PCIDevice *dev) diff --git a/hw/isa/lpc_ich9.c b/hw/isa/lpc_ich9.c index 667e882962..461ab7caf3 100644 --- a/hw/isa/lpc_ich9.c +++ b/hw/isa/lpc_ich9.c @@ -477,22 +477,23 @@ static const MemoryRegionOps rbca_mmio_ops = { static void ich9_lpc_machine_ready(Notifier *n, void *opaque) { ICH9LPCState *s = container_of(n, ICH9LPCState, machine_ready); + MemoryRegion *io_as = pci_address_space_io(&s->d); uint8_t *pci_conf; pci_conf = s->d.config; - if (isa_is_ioport_assigned(0x3f8)) { + if (memory_region_find(io_as, 0x3f8, 1).mr) { /* com1 */ pci_conf[0x82] |= 0x01; } - if (isa_is_ioport_assigned(0x2f8)) { + if (memory_region_find(io_as, 0x2f8, 1).mr) { /* com2 */ pci_conf[0x82] |= 0x02; } - if (isa_is_ioport_assigned(0x378)) { + if (memory_region_find(io_as, 0x378, 1).mr) { /* lpt */ pci_conf[0x82] |= 0x04; } - if (isa_is_ioport_assigned(0x3f0)) { + if (memory_region_find(io_as, 0x3f0, 1).mr) { /* floppy */ pci_conf[0x82] |= 0x08; } diff --git a/include/exec/ioport.h b/include/exec/ioport.h index 4953892c16..eb99ffe583 100644 --- a/include/exec/ioport.h +++ b/include/exec/ioport.h @@ -40,7 +40,6 @@ typedef void (IOPortDestructor)(void *opaque); void ioport_register(IORange *iorange); void isa_unassign_ioport(pio_addr_t start, int length); -bool isa_is_ioport_assigned(pio_addr_t start); void cpu_outb(pio_addr_t addr, uint8_t val); void cpu_outw(pio_addr_t addr, uint16_t val); @@ -273,13 +273,6 @@ void isa_unassign_ioport(pio_addr_t start, int length) } } -bool isa_is_ioport_assigned(pio_addr_t start) -{ - return (ioport_read_table[0][start] || ioport_write_table[0][start] || - ioport_read_table[1][start] || ioport_write_table[1][start] || - ioport_read_table[2][start] || ioport_write_table[2][start]); -} - /***********************************************************/ void cpu_outb(pio_addr_t addr, uint8_t val) |