qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Laurent Vivier <laurent@vivier.eu>
To: qemu-devel@nongnu.org
Cc: "Mark Cave-Ayland" <mark.cave-ayland@ilande.co.uk>,
	"Laurent Vivier" <laurent@vivier.eu>,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>
Subject: [PULL 08/13] macfb: add qdev property to specify display type
Date: Fri,  8 Oct 2021 13:45:13 +0200	[thread overview]
Message-ID: <20211008114518.757615-9-laurent@vivier.eu> (raw)
In-Reply-To: <20211008114518.757615-1-laurent@vivier.eu>

From: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>

Since the available resolutions and colour depths are determined by the attached
display type, add a qdev property to allow the display type to be specified.

The main resolutions of interest are high resolution 1152x870 with 8-bit colour
and SVGA resolution up to 800x600 with 24-bit colour so update the q800 machine
to allow high resolution mode if specified and otherwise fall back to SVGA.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20211007221253.29024-9-mark.cave-ayland@ilande.co.uk>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
 include/hw/display/macfb.h | 1 +
 hw/display/macfb.c         | 7 ++++++-
 hw/m68k/q800.c             | 5 +++++
 3 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/include/hw/display/macfb.h b/include/hw/display/macfb.h
index febf4ce0e843..e95a97ebdcda 100644
--- a/include/hw/display/macfb.h
+++ b/include/hw/display/macfb.h
@@ -46,6 +46,7 @@ typedef struct MacfbState {
     uint8_t color_palette[256 * 3];
     uint32_t width, height; /* in pixels */
     uint8_t depth;
+    uint8_t type;
 
     uint32_t sense;
 } MacfbState;
diff --git a/hw/display/macfb.c b/hw/display/macfb.c
index 6e485d7aef90..f98bcdec2dc6 100644
--- a/hw/display/macfb.c
+++ b/hw/display/macfb.c
@@ -316,7 +316,8 @@ static uint32_t macfb_sense_read(MacfbState *s)
     MacFbSense *macfb_sense;
     uint8_t sense;
 
-    macfb_sense = &macfb_sense_table[MACFB_DISPLAY_VGA];
+    assert(s->type < ARRAY_SIZE(macfb_sense_table));
+    macfb_sense = &macfb_sense_table[s->type];
     if (macfb_sense->sense == 0x7) {
         /* Extended sense */
         sense = 0;
@@ -544,6 +545,8 @@ static Property macfb_sysbus_properties[] = {
     DEFINE_PROP_UINT32("width", MacfbSysBusState, macfb.width, 640),
     DEFINE_PROP_UINT32("height", MacfbSysBusState, macfb.height, 480),
     DEFINE_PROP_UINT8("depth", MacfbSysBusState, macfb.depth, 8),
+    DEFINE_PROP_UINT8("display", MacfbSysBusState, macfb.type,
+                      MACFB_DISPLAY_VGA),
     DEFINE_PROP_END_OF_LIST(),
 };
 
@@ -551,6 +554,8 @@ static Property macfb_nubus_properties[] = {
     DEFINE_PROP_UINT32("width", MacfbNubusState, macfb.width, 640),
     DEFINE_PROP_UINT32("height", MacfbNubusState, macfb.height, 480),
     DEFINE_PROP_UINT8("depth", MacfbNubusState, macfb.depth, 8),
+    DEFINE_PROP_UINT8("display", MacfbNubusState, macfb.type,
+                      MACFB_DISPLAY_VGA),
     DEFINE_PROP_END_OF_LIST(),
 };
 
diff --git a/hw/m68k/q800.c b/hw/m68k/q800.c
index 09b336602482..5223b880bc2d 100644
--- a/hw/m68k/q800.c
+++ b/hw/m68k/q800.c
@@ -421,6 +421,11 @@ static void q800_init(MachineState *machine)
     qdev_prop_set_uint32(dev, "width", graphic_width);
     qdev_prop_set_uint32(dev, "height", graphic_height);
     qdev_prop_set_uint8(dev, "depth", graphic_depth);
+    if (graphic_width == 1152 && graphic_height == 870 && graphic_depth == 8) {
+        qdev_prop_set_uint8(dev, "display", MACFB_DISPLAY_APPLE_21_COLOR);
+    } else {
+        qdev_prop_set_uint8(dev, "display", MACFB_DISPLAY_VGA);
+    }
     qdev_realize_and_unref(dev, BUS(nubus), &error_fatal);
 
     cs = CPU(cpu);
-- 
2.31.1



  parent reply	other threads:[~2021-10-08 11:54 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-08 11:45 [PULL 00/13] M68k next patches Laurent Vivier
2021-10-08 11:45 ` [PULL 01/13] macfb: handle errors that occur during realize Laurent Vivier
2021-10-08 11:45 ` [PULL 02/13] macfb: update macfb.c to use the Error API best practices Laurent Vivier
2021-10-08 11:45 ` [PULL 03/13] macfb: fix invalid object reference in macfb_common_realize() Laurent Vivier
2021-10-08 11:45 ` [PULL 04/13] macfb: fix overflow of color_palette array Laurent Vivier
2021-10-08 11:45 ` [PULL 05/13] macfb: use memory_region_init_ram() in macfb_common_realize() for the framebuffer Laurent Vivier
2021-10-08 11:45 ` [PULL 06/13] macfb: add trace events for reading and writing the control registers Laurent Vivier
2021-10-08 11:45 ` [PULL 07/13] macfb: implement mode sense to allow display type to be detected Laurent Vivier
2021-10-08 11:45 ` Laurent Vivier [this message]
2021-10-08 11:45 ` [PULL 09/13] macfb: add common monitor modes supported by the MacOS toolbox ROM Laurent Vivier
2021-11-05 15:56   ` Peter Maydell
2021-11-05 16:43     ` Laurent Vivier
2021-10-08 11:45 ` [PULL 10/13] macfb: fix up 1-bit pixel encoding Laurent Vivier
2021-10-08 11:45 ` [PULL 11/13] macfb: fix 24-bit RGB " Laurent Vivier
2021-10-08 11:45 ` [PULL 12/13] macfb: add vertical blank interrupt Laurent Vivier
2021-10-08 11:45 ` [PULL 13/13] q800: wire macfb IRQ to separate video interrupt on VIA2 Laurent Vivier
2021-10-08 13:29 ` [PULL 00/13] M68k next patches Richard Henderson

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=20211008114518.757615-9-laurent@vivier.eu \
    --to=laurent@vivier.eu \
    --cc=f4bug@amsat.org \
    --cc=mark.cave-ayland@ilande.co.uk \
    --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).