From: Mark Cave-Ayland Date: Thu, 26 Oct 2023 08:56:49 +0000 (+0100) Subject: macfb: allow larger write accesses to the DAFB_LUT register X-Git-Tag: v8.2.0-rc0~33^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ced64254d66c28e18e669318aaffa0338df6ae3a;p=thirdparty%2Fqemu.git macfb: allow larger write accesses to the DAFB_LUT register The original tests with MacOS showed that only the bottom 8 bits of the DAFB_LUT register were used when writing to the LUT, however A/UX performs some of its writes using 4 byte accesses. Expand the address range for the DAFB_LUT register so that different size accesses write the correct value to the color_palette array. Signed-off-by: Mark Cave-Ayland Reviewed-by: Laurent Vivier Message-ID: <20231026085650.917663-4-mark.cave-ayland@ilande.co.uk> Signed-off-by: Laurent Vivier --- diff --git a/hw/display/macfb.c b/hw/display/macfb.c index eb4ce6b824c..4a1c75d5720 100644 --- a/hw/display/macfb.c +++ b/hw/display/macfb.c @@ -37,7 +37,7 @@ #define DAFB_INTR_STAT 0x108 #define DAFB_INTR_CLEAR 0x10c #define DAFB_LUT_INDEX 0x200 -#define DAFB_LUT 0x213 +#define DAFB_LUT 0x210 #define DAFB_INTR_VBL 0x4 @@ -586,8 +586,8 @@ static void macfb_ctrl_write(void *opaque, case DAFB_LUT_INDEX: s->palette_current = (val & 0xff) * 3; break; - case DAFB_LUT: - s->color_palette[s->palette_current] = val; + case DAFB_LUT ... DAFB_LUT + 3: + s->color_palette[s->palette_current] = val & 0xff; s->palette_current = (s->palette_current + 1) % ARRAY_SIZE(s->color_palette); if (s->palette_current % 3) {