aboutsummaryrefslogtreecommitdiff
path: root/hw/isa
diff options
context:
space:
mode:
authorBALATON Zoltan <balaton@eik.bme.hu>2021-01-09 21:16:36 +0100
committerPhilippe Mathieu-Daudé <f4bug@amsat.org>2021-02-21 19:42:34 +0100
commitcc2b4550115baf77d556341f17eb464d18953cee (patch)
tree6d0d4b6969d47b148a41d255d038fbaa14382a13 /hw/isa
parent2c4c556e0616a003c37d53f005b7bc1b65b234ab (diff)
vt82c686: Fix superio_cfg_{read,write}() functions
These functions are memory region callbacks so we have to check against relative address not the mapped address. Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu> Message-Id: <15b2968fd300a12d06b42368d084f6f80d3c3be5.1610223397.git.balaton@eik.bme.hu> [PMD: Split original patch in 5, this is part 5/5] Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Diffstat (limited to 'hw/isa')
-rw-r--r--hw/isa/vt82c686.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/hw/isa/vt82c686.c b/hw/isa/vt82c686.c
index 766584cabd..5db9b1706c 100644
--- a/hw/isa/vt82c686.c
+++ b/hw/isa/vt82c686.c
@@ -260,12 +260,13 @@ static void superio_cfg_write(void *opaque, hwaddr addr, uint64_t data,
SuperIOConfig *sc = opaque;
uint8_t idx = sc->regs[0];
- if (addr == 0x3f0) { /* config index register */
- idx = data & 0xff;
+ if (addr == 0) { /* config index register */
+ sc->regs[0] = data;
return;
}
- /* 0x3f1, config data register */
- trace_via_superio_write(idx, data & 0xff);
+
+ /* config data register */
+ trace_via_superio_write(idx, data);
switch (idx) {
case 0x00 ... 0xdf:
case 0xe4:
@@ -284,7 +285,7 @@ static void superio_cfg_write(void *opaque, hwaddr addr, uint64_t data,
"via_superio_cfg: unimplemented register 0x%x\n", idx);
break;
}
- sc->regs[idx] = data & 0xff;
+ sc->regs[idx] = data;
}
static uint64_t superio_cfg_read(void *opaque, hwaddr addr, unsigned size)