From: Peter Maydell <peter.maydell@linaro.org>
To: qemu-arm@nongnu.org, qemu-devel@nongnu.org
Cc: Gerd Hoffmann <kraxel@redhat.com>
Subject: [PATCH 4/9] hw/display/pxa2xx_lcd: Remove dead code for non-32-bpp surfaces
Date: Thu, 11 Feb 2021 14:15:10 +0000 [thread overview]
Message-ID: <20210211141515.8755-5-peter.maydell@linaro.org> (raw)
In-Reply-To: <20210211141515.8755-1-peter.maydell@linaro.org>
For a long time now the UI layer has guaranteed that the console
surface is always 32 bits per pixel. Remove the legacy dead code
from the pxa2xx_lcd display device which was handling the possibility
that the console surface was some other format.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
hw/display/pxa2xx_lcd.c | 79 +++++++++--------------------------------
1 file changed, 17 insertions(+), 62 deletions(-)
diff --git a/hw/display/pxa2xx_lcd.c b/hw/display/pxa2xx_lcd.c
index dfff9949627..786a777629f 100644
--- a/hw/display/pxa2xx_lcd.c
+++ b/hw/display/pxa2xx_lcd.c
@@ -45,7 +45,6 @@ struct PXA2xxLCDState {
int invalidated;
QemuConsole *con;
- drawfn *line_fn[2];
int dest_width;
int xres, yres;
int pal_for;
@@ -188,6 +187,9 @@ typedef struct QEMU_PACKED {
#define LDCMD_SOFINT (1 << 22)
#define LDCMD_PAL (1 << 26)
+#define BITS 32
+#include "pxa2xx_template.h"
+
/* Route internal interrupt lines to the global IC */
static void pxa2xx_lcdc_int_update(PXA2xxLCDState *s)
{
@@ -674,14 +676,21 @@ static void pxa2xx_palette_parse(PXA2xxLCDState *s, int ch, int bpp)
}
}
+static inline drawfn pxa2xx_drawfn(PXA2xxLCDState *s)
+{
+ if (s->transp) {
+ return pxa2xx_draw_fn_32t[s->bpp];
+ } else {
+ return pxa2xx_draw_fn_32[s->bpp];
+ }
+}
+
static void pxa2xx_lcdc_dma0_redraw_rot0(PXA2xxLCDState *s,
hwaddr addr, int *miny, int *maxy)
{
DisplaySurface *surface = qemu_console_surface(s->con);
int src_width, dest_width;
- drawfn fn = NULL;
- if (s->dest_width)
- fn = s->line_fn[s->transp][s->bpp];
+ drawfn fn = pxa2xx_drawfn(s);
if (!fn)
return;
@@ -710,9 +719,7 @@ static void pxa2xx_lcdc_dma0_redraw_rot90(PXA2xxLCDState *s,
{
DisplaySurface *surface = qemu_console_surface(s->con);
int src_width, dest_width;
- drawfn fn = NULL;
- if (s->dest_width)
- fn = s->line_fn[s->transp][s->bpp];
+ drawfn fn = pxa2xx_drawfn(s);
if (!fn)
return;
@@ -742,10 +749,7 @@ static void pxa2xx_lcdc_dma0_redraw_rot180(PXA2xxLCDState *s,
{
DisplaySurface *surface = qemu_console_surface(s->con);
int src_width, dest_width;
- drawfn fn = NULL;
- if (s->dest_width) {
- fn = s->line_fn[s->transp][s->bpp];
- }
+ drawfn fn = pxa2xx_drawfn(s);
if (!fn) {
return;
}
@@ -776,10 +780,7 @@ static void pxa2xx_lcdc_dma0_redraw_rot270(PXA2xxLCDState *s,
{
DisplaySurface *surface = qemu_console_surface(s->con);
int src_width, dest_width;
- drawfn fn = NULL;
- if (s->dest_width) {
- fn = s->line_fn[s->transp][s->bpp];
- }
+ drawfn fn = pxa2xx_drawfn(s);
if (!fn) {
return;
}
@@ -990,17 +991,6 @@ static const VMStateDescription vmstate_pxa2xx_lcdc = {
}
};
-#define BITS 8
-#include "pxa2xx_template.h"
-#define BITS 15
-#include "pxa2xx_template.h"
-#define BITS 16
-#include "pxa2xx_template.h"
-#define BITS 24
-#include "pxa2xx_template.h"
-#define BITS 32
-#include "pxa2xx_template.h"
-
static const GraphicHwOps pxa2xx_ops = {
.invalidate = pxa2xx_invalidate_display,
.gfx_update = pxa2xx_update_display,
@@ -1010,7 +1000,6 @@ PXA2xxLCDState *pxa2xx_lcdc_init(MemoryRegion *sysmem,
hwaddr base, qemu_irq irq)
{
PXA2xxLCDState *s;
- DisplaySurface *surface;
s = (PXA2xxLCDState *) g_malloc0(sizeof(PXA2xxLCDState));
s->invalidated = 1;
@@ -1024,41 +1013,7 @@ PXA2xxLCDState *pxa2xx_lcdc_init(MemoryRegion *sysmem,
memory_region_add_subregion(sysmem, base, &s->iomem);
s->con = graphic_console_init(NULL, 0, &pxa2xx_ops, s);
- surface = qemu_console_surface(s->con);
-
- switch (surface_bits_per_pixel(surface)) {
- case 0:
- s->dest_width = 0;
- break;
- case 8:
- s->line_fn[0] = pxa2xx_draw_fn_8;
- s->line_fn[1] = pxa2xx_draw_fn_8t;
- s->dest_width = 1;
- break;
- case 15:
- s->line_fn[0] = pxa2xx_draw_fn_15;
- s->line_fn[1] = pxa2xx_draw_fn_15t;
- s->dest_width = 2;
- break;
- case 16:
- s->line_fn[0] = pxa2xx_draw_fn_16;
- s->line_fn[1] = pxa2xx_draw_fn_16t;
- s->dest_width = 2;
- break;
- case 24:
- s->line_fn[0] = pxa2xx_draw_fn_24;
- s->line_fn[1] = pxa2xx_draw_fn_24t;
- s->dest_width = 3;
- break;
- case 32:
- s->line_fn[0] = pxa2xx_draw_fn_32;
- s->line_fn[1] = pxa2xx_draw_fn_32t;
- s->dest_width = 4;
- break;
- default:
- fprintf(stderr, "%s: Bad color depth\n", __func__);
- exit(1);
- }
+ s->dest_width = 4;
vmstate_register(NULL, 0, &vmstate_pxa2xx_lcdc, s);
--
2.20.1
next prev parent reply other threads:[~2021-02-11 14:22 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-11 14:15 [PATCH 0/9] hw/display/pl110, pxa2xx_lcd: Tidy up template headers Peter Maydell
2021-02-11 14:15 ` [PATCH 1/9] hw/display/pl110: Remove dead code for non-32-bpp surfaces Peter Maydell
2021-02-11 14:15 ` [PATCH 2/9] hw/display/pl110: Pull included-once parts of template header into pl110.c Peter Maydell
2021-02-11 14:15 ` [PATCH 3/9] hw/display/pl110: Remove use of BITS from pl110_template.h Peter Maydell
2021-02-11 14:15 ` Peter Maydell [this message]
2021-02-11 14:15 ` [PATCH 5/9] hw/display/pxa2xx_lcd: Remove dest_width state field Peter Maydell
2021-02-11 14:15 ` [PATCH 6/9] hw/display/pxa2xx: Remove use of BITS in pxa2xx_template.h Peter Maydell
2021-02-11 14:15 ` [PATCH 7/9] hw/display/pxa2xx: Apply brace-related coding style fixes to template header Peter Maydell
2021-02-11 14:15 ` [PATCH 8/9] hw/display/pxa2xx: Apply whitespace-only " Peter Maydell
2021-02-11 14:15 ` [PATCH 9/9] hw/display/pxa2xx: Inline " Peter Maydell
[not found] ` <14af0670-caaf-caf1-0b90-fb10c7db13b0@trusted-objects.com>
2021-02-15 15:09 ` Malfunctionning qemu-system-arm ? vincent Dupaquis
2021-03-09 14:19 ` Alistair Francis
2021-03-09 16:00 ` vincent Dupaquis
2021-03-09 14:37 ` Liviu Ionescu
2021-03-09 15:58 ` vincent Dupaquis
2021-03-09 16:07 ` Liviu Ionescu
2021-03-05 14:48 ` [PATCH 0/9] hw/display/pl110, pxa2xx_lcd: Tidy up template headers Peter Maydell
2021-03-09 10:34 ` Gerd Hoffmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210211141515.8755-5-peter.maydell@linaro.org \
--to=peter.maydell@linaro.org \
--cc=kraxel@redhat.com \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).