[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 21/49] hw/display/omap_lcdc: Drop broken bigendian ifdef
From: |
Peter Maydell |
Subject: |
[PULL 21/49] hw/display/omap_lcdc: Drop broken bigendian ifdef |
Date: |
Fri, 5 Mar 2021 17:14:47 +0000 |
The draw_line16_32() function in the omap_lcdc template header
includes an ifdef for the case where HOST_WORDS_BIGENDIAN matches
TARGET_WORDS_BIGENDIAN. This is trying to optimise for "source
bitmap and destination bitmap format match", but it is broken,
because in this function the formats don't match: the source is
16-bit colour and the destination is 32-bit colour, so a memcpy()
will produce corrupted graphics output. Drop the bogus ifdef.
This bug was introduced in commit ea644cf343129, when we dropped
support for DEPTH values other than 32 from the template header.
The old #if line was
#if DEPTH == 16 && defined(HOST_WORDS_BIGENDIAN) ==
defined(TARGET_WORDS_BIGENDIAN)
and this was mistakenly changed to
#if defined(HOST_WORDS_BIGENDIAN) == defined(TARGET_WORDS_BIGENDIAN)
rather than deleting the #if as now having an always-false condition.
Fixes: ea644cf343129
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-id: 20210215103215.4944-7-peter.maydell@linaro.org
---
hw/display/omap_lcd_template.h | 4 ----
1 file changed, 4 deletions(-)
diff --git a/hw/display/omap_lcd_template.h b/hw/display/omap_lcd_template.h
index c7c5025fb04..22e51d9bffb 100644
--- a/hw/display/omap_lcd_template.h
+++ b/hw/display/omap_lcd_template.h
@@ -139,9 +139,6 @@ static void draw_line12_32(void *opaque, uint8_t *d, const
uint8_t *s,
static void draw_line16_32(void *opaque, uint8_t *d, const uint8_t *s,
int width, int deststep)
{
-#if defined(HOST_WORDS_BIGENDIAN) == defined(TARGET_WORDS_BIGENDIAN)
- memcpy(d, s, width * 2);
-#else
uint16_t v;
uint8_t r, g, b;
@@ -154,5 +151,4 @@ static void draw_line16_32(void *opaque, uint8_t *d, const
uint8_t *s,
s += 2;
d += 4;
} while (-- width != 0);
-#endif
}
--
2.20.1
- [PULL 18/49] hw/display/tc6393xb: Expand out macros in template header, (continued)
- [PULL 18/49] hw/display/tc6393xb: Expand out macros in template header, Peter Maydell, 2021/03/05
- [PULL 13/49] target/arm: Use TCF0 and TFSRE0 for unprivileged tag checks, Peter Maydell, 2021/03/05
- [PULL 15/49] target/arm/cpu: Update coding style to make checkpatch.pl happy, Peter Maydell, 2021/03/05
- [PULL 14/49] target/arm: Restrict v8M IDAU to TCG, Peter Maydell, 2021/03/05
- [PULL 16/49] hw/arm/musicpal: Remove dead code for non-32-bit-RGB surfaces, Peter Maydell, 2021/03/05
- [PULL 20/49] hw/display/omap_lcdc: Expand out macros in template header, Peter Maydell, 2021/03/05
- [PULL 19/49] hw/display/tc6393xb: Inline tc6393xb_draw_graphic32() at its callsite, Peter Maydell, 2021/03/05
- [PULL 22/49] hw/display/omap_lcdc: Fix coding style issues in template header, Peter Maydell, 2021/03/05
- [PULL 29/49] hw/arm/mps2-tz: Make the OSCCLK settings be configurable per-board, Peter Maydell, 2021/03/05
- [PULL 23/49] hw/display/omap_lcdc: Inline template header into C file, Peter Maydell, 2021/03/05
- [PULL 21/49] hw/display/omap_lcdc: Drop broken bigendian ifdef,
Peter Maydell <=
- [PULL 24/49] hw/display/omap_lcdc: Delete unnecessary macro, Peter Maydell, 2021/03/05
- [PULL 28/49] hw/arm/mps2-tz: Correct the OSCCLK settings for mps2-an505 and mps2-an511, Peter Maydell, 2021/03/05
- [PULL 32/49] hw/arm/mps2-tz: Make FPGAIO switch and LED config per-board, Peter Maydell, 2021/03/05
- [PULL 31/49] hw/misc/mps2-fpgaio: Support SWITCH register, Peter Maydell, 2021/03/05
- [PULL 26/49] hw/arm/mps2-tz: Make SYSCLK frequency board-specific, Peter Maydell, 2021/03/05
- [PULL 37/49] hw/arm/mps2-tz: Allow PPCPortInfo structures to specify device interrupts, Peter Maydell, 2021/03/05
- [PULL 30/49] hw/misc/mps2-fpgaio: Make number of LEDs configurable by board, Peter Maydell, 2021/03/05
- [PULL 27/49] hw/misc/mps2-scc: Support configurable number of OSCCLK values, Peter Maydell, 2021/03/05
- [PULL 34/49] hw/arm/mps2-tz: Make number of IRQs board-specific, Peter Maydell, 2021/03/05
- [PULL 35/49] hw/misc/mps2-scc: Implement CFG_REG5 and CFG_REG6 for MPS3 AN524, Peter Maydell, 2021/03/05