Revision c84649ca
b/hw/acpi.c | ||
---|---|---|
493 | 493 |
ar->gpe.en = g_malloc0(len / 2); |
494 | 494 |
} |
495 | 495 |
|
496 |
void acpi_gpe_blk(ACPIREGS *ar, uint32_t blk) |
|
497 |
{ |
|
498 |
ar->gpe.blk = blk; |
|
499 |
} |
|
500 |
|
|
501 | 496 |
void acpi_gpe_reset(ACPIREGS *ar) |
502 | 497 |
{ |
503 | 498 |
memset(ar->gpe.sts, 0, ar->gpe.len / 2); |
... | ... | |
523 | 518 |
{ |
524 | 519 |
uint8_t *cur; |
525 | 520 |
|
526 |
addr -= ar->gpe.blk; |
|
527 | 521 |
cur = acpi_gpe_ioport_get_ptr(ar, addr); |
528 | 522 |
if (addr < ar->gpe.len / 2) { |
529 | 523 |
/* GPE_STS */ |
... | ... | |
541 | 535 |
uint8_t *cur; |
542 | 536 |
uint32_t val; |
543 | 537 |
|
544 |
addr -= ar->gpe.blk; |
|
545 | 538 |
cur = acpi_gpe_ioport_get_ptr(ar, addr); |
546 | 539 |
val = 0; |
547 | 540 |
if (cur != NULL) { |
b/hw/acpi.h | ||
---|---|---|
104 | 104 |
}; |
105 | 105 |
|
106 | 106 |
struct ACPIGPE { |
107 |
uint32_t blk; |
|
108 | 107 |
uint8_t len; |
109 | 108 |
|
110 | 109 |
uint8_t *sts; |
... | ... | |
150 | 149 |
|
151 | 150 |
/* GPE0 */ |
152 | 151 |
void acpi_gpe_init(ACPIREGS *ar, uint8_t len); |
153 |
void acpi_gpe_blk(ACPIREGS *ar, uint32_t blk); |
|
154 | 152 |
void acpi_gpe_reset(ACPIREGS *ar); |
155 | 153 |
|
156 | 154 |
void acpi_gpe_ioport_writeb(ACPIREGS *ar, uint32_t addr, uint32_t val); |
b/hw/acpi_ich9.c | ||
---|---|---|
212 | 212 |
acpi_pm1_cnt_init(&pm->acpi_regs, &pm->io); |
213 | 213 |
|
214 | 214 |
acpi_gpe_init(&pm->acpi_regs, ICH9_PMIO_GPE0_LEN); |
215 |
acpi_gpe_blk(&pm->acpi_regs, 0); |
|
216 | 215 |
memory_region_init_io(&pm->io_gpe, &ich9_gpe_ops, pm, "apci-gpe0", |
217 | 216 |
ICH9_PMIO_GPE0_LEN); |
218 | 217 |
memory_region_add_subregion(&pm->io, ICH9_PMIO_GPE0_STS, &pm->io_gpe); |
b/hw/acpi_piix4.c | ||
---|---|---|
582 | 582 |
memory_region_init_io(&s->io_gpe, &piix4_gpe_ops, s, "apci-gpe0", |
583 | 583 |
GPE_LEN); |
584 | 584 |
memory_region_add_subregion(get_system_io(), GPE_BASE, &s->io_gpe); |
585 |
acpi_gpe_blk(&s->ar, 0); |
|
586 | 585 |
|
587 | 586 |
register_ioport_read(PCI_UP_BASE, 4, 4, pci_up_read, s); |
588 | 587 |
register_ioport_read(PCI_DOWN_BASE, 4, 4, pci_down_read, s); |
Also available in: Unified diff