From cc2b4550115baf77d556341f17eb464d18953cee Mon Sep 17 00:00:00 2001 From: BALATON Zoltan Date: Sat, 9 Jan 2021 21:16:36 +0100 Subject: [PATCH] vt82c686: Fix superio_cfg_{read,write}() functions MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit These functions are memory region callbacks so we have to check against relative address not the mapped address. Signed-off-by: BALATON Zoltan 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é --- hw/isa/vt82c686.c | 11 ++++++----- 1 file 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) -- 2.11.4.GIT