[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 31/32] ich9: implement ACPI_EN register
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PULL 31/32] ich9: implement ACPI_EN register |
Date: |
Tue, 28 Jun 2016 19:34:01 +0200 |
Signed-off-by: Paolo Bonzini <address@hidden>
---
hw/isa/lpc_ich9.c | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/hw/isa/lpc_ich9.c b/hw/isa/lpc_ich9.c
index fe0ba83..f8e6fb8 100644
--- a/hw/isa/lpc_ich9.c
+++ b/hw/isa/lpc_ich9.c
@@ -394,10 +394,16 @@ static void ich9_apm_ctrl_changed(uint32_t val, void *arg)
/* config:PMBASE */
static void
-ich9_lpc_pmbase_update(ICH9LPCState *lpc)
+ich9_lpc_pmbase_sci_update(ICH9LPCState *lpc)
{
uint32_t pm_io_base = pci_get_long(lpc->d.config + ICH9_LPC_PMBASE);
- pm_io_base &= ICH9_LPC_PMBASE_BASE_ADDRESS_MASK;
+ uint8_t acpi_cntl = pci_get_long(lpc->d.config + ICH9_LPC_ACPI_CTRL);
+
+ if (acpi_cntl & ICH9_LPC_ACPI_CTRL_ACPI_EN) {
+ pm_io_base &= ICH9_LPC_PMBASE_BASE_ADDRESS_MASK;
+ } else {
+ pm_io_base = 0;
+ }
ich9_pm_iospace_update(&lpc->pm, pm_io_base);
}
@@ -449,7 +455,8 @@ static void ich9_lpc_config_write(PCIDevice *d,
uint32_t rcba_old = pci_get_long(d->config + ICH9_LPC_RCBA);
pci_default_write_config(d, addr, val, len);
- if (ranges_overlap(addr, len, ICH9_LPC_PMBASE, 4)) {
+ if (ranges_overlap(addr, len, ICH9_LPC_PMBASE, 4) ||
+ ranges_overlap(addr, len, ICH9_LPC_ACPI_CTRL, 1)) {
ich9_lpc_pmbase_update(lpc);
}
if (ranges_overlap(addr, len, ICH9_LPC_RCBA, 4)) {
@@ -610,6 +617,8 @@ static void ich9_lpc_realize(PCIDevice *d, Error **errp)
pci_set_long(d->wmask + ICH9_LPC_PMBASE,
ICH9_LPC_PMBASE_BASE_ADDRESS_MASK);
+ pci_set_byte(d->wmask + ICH9_LPC_PMBASE,
+ ICH9_LPC_ACPI_CTRL_ACPI_EN);
memory_region_init_io(&lpc->rcrb_mem, OBJECT(d), &rcrb_mmio_ops, lpc,
"lpc-rcrb-mmio", ICH9_CC_SIZE);
--
2.7.4
- [Qemu-devel] [PULL 23/32] socket: unlink unix socket on remove, (continued)
- [Qemu-devel] [PULL 23/32] socket: unlink unix socket on remove, Paolo Bonzini, 2016/06/28
- [Qemu-devel] [PULL 24/32] iscsi: fix assertion in is_sector_request_lun_aligned, Paolo Bonzini, 2016/06/28
- [Qemu-devel] [PULL 26/32] serial: simplify tsr_retry reset, Paolo Bonzini, 2016/06/28
- [Qemu-devel] [PULL 20/32] target-*: Don't redefine cpu_exec(), Paolo Bonzini, 2016/06/28
- [Qemu-devel] [PULL 25/32] serial: make tsr_retry unsigned, Paolo Bonzini, 2016/06/28
- [Qemu-devel] [PULL 29/32] serial: remove watch on reset, Paolo Bonzini, 2016/06/28
- [Qemu-devel] [PULL 27/32] serial: separate serial_xmit and serial_watch_cb, Paolo Bonzini, 2016/06/28
- [Qemu-devel] [PULL 30/32] serial: reinstate watch after migration, Paolo Bonzini, 2016/06/28
- [Qemu-devel] [PULL 32/32] ich9: implement SCI_IRQ_SEL register, Paolo Bonzini, 2016/06/28
- [Qemu-devel] [PULL 28/32] char: change qemu_chr_fe_add_watch to return unsigned, Paolo Bonzini, 2016/06/28
- [Qemu-devel] [PULL 31/32] ich9: implement ACPI_EN register,
Paolo Bonzini <=
- Re: [Qemu-devel] [PULL 00/32] Misc patches for QEMU soft freeze, Peter Maydell, 2016/06/29