qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Laurent Vivier <laurent@vivier.eu>
To: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>, qemu-devel@nongnu.org
Subject: Re: [PATCH 07/12] macfb: add qdev property to specify display type
Date: Mon, 4 Oct 2021 11:24:57 +0200	[thread overview]
Message-ID: <a0cc2ea6-306d-34b9-09e9-b6acb6e9876b@vivier.eu> (raw)
In-Reply-To: <20211002110007.30825-8-mark.cave-ayland@ilande.co.uk>

Le 02/10/2021 à 13:00, Mark Cave-Ayland a écrit :
> 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 32-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>
> ---
>  hw/display/macfb.c         | 6 +++++-
>  hw/m68k/q800.c             | 5 +++++
>  include/hw/display/macfb.h | 1 +
>  3 files changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/hw/display/macfb.c b/hw/display/macfb.c
> index 5c95aa4a11..023d1f0cd1 100644
> --- a/hw/display/macfb.c
> +++ b/hw/display/macfb.c
> @@ -316,7 +316,7 @@ static uint32_t macfb_sense_read(MacfbState *s)
>      MacFbSense *macfb_sense;
>      uint8_t sense;
>  
> -    macfb_sense = &macfb_sense_table[MACFB_DISPLAY_VGA];
> +    macfb_sense = &macfb_sense_table[s->type];
>      if (macfb_sense->sense == 0x7) {
>          /* Extended sense */
>          sense = 0;
> @@ -545,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(),
>  };
>  
> @@ -552,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 09b3366024..5223b880bc 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);
> diff --git a/include/hw/display/macfb.h b/include/hw/display/macfb.h
> index febf4ce0e8..e95a97ebdc 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;
> 

I think the display modes should be documentend somewhere to be directly usable by the user and get
ride of the graphic_XXX variables (and -g).

Perhaps it could also be merged with the previous one.

Thanks,
Laurent


  parent reply	other threads:[~2021-10-04  9:39 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-02 10:59 [PATCH 00/12] macfb: fixes for booting MacOS Mark Cave-Ayland
2021-10-02 10:59 ` [PATCH 01/12] macfb: handle errors that occur during realize Mark Cave-Ayland
2021-10-02 11:36   ` BALATON Zoltan
2021-10-04 18:38     ` Mark Cave-Ayland
2021-10-02 13:47   ` Philippe Mathieu-Daudé
2021-10-04 18:39     ` Mark Cave-Ayland
2021-10-04  8:47   ` Laurent Vivier
2021-10-02 10:59 ` [PATCH 02/12] macfb: fix invalid object reference in macfb_common_realize() Mark Cave-Ayland
2021-10-02 11:38   ` BALATON Zoltan
2021-10-02 13:51   ` Philippe Mathieu-Daudé
2021-10-04  8:49   ` Laurent Vivier
2021-10-02 10:59 ` [PATCH 03/12] macfb: fix overflow of color_palette array Mark Cave-Ayland
2021-10-04  8:53   ` Laurent Vivier
2021-10-04 18:48     ` Mark Cave-Ayland
2021-10-02 10:59 ` [PATCH 04/12] macfb: use memory_region_init_ram() in macfb_common_realize() for the framebuffer Mark Cave-Ayland
2021-10-02 11:42   ` BALATON Zoltan
2021-10-02 13:59   ` Philippe Mathieu-Daudé
2021-10-04  8:53   ` Laurent Vivier
2021-10-02 11:00 ` [PATCH 05/12] macfb: add trace events for reading and writing the control registers Mark Cave-Ayland
2021-10-02 14:00   ` Philippe Mathieu-Daudé
2021-10-04  8:57   ` Laurent Vivier
2021-10-02 11:00 ` [PATCH 06/12] macfb: implement mode sense to allow display type to be detected Mark Cave-Ayland
2021-10-04  9:20   ` Laurent Vivier
2021-10-04 10:32     ` BALATON Zoltan
2021-10-04 10:50       ` Laurent Vivier
2021-10-02 11:00 ` [PATCH 07/12] macfb: add qdev property to specify display type Mark Cave-Ayland
2021-10-02 14:04   ` Philippe Mathieu-Daudé
2021-10-04 18:46     ` Mark Cave-Ayland
2021-10-04  9:24   ` Laurent Vivier [this message]
2021-10-04 14:38     ` Laurent Vivier
2021-10-02 11:00 ` [PATCH 08/12] macfb: add common monitor modes supported by the MacOS toolbox ROM Mark Cave-Ayland
2021-10-04 14:39   ` Laurent Vivier
2021-10-02 11:00 ` [PATCH 09/12] macfb: fix up 1-bit pixel encoding Mark Cave-Ayland
2021-10-04 14:40   ` Laurent Vivier
2021-10-02 11:00 ` [PATCH 10/12] macfb: fix 24-bit RGB " Mark Cave-Ayland
2021-10-04 14:41   ` Laurent Vivier
2021-10-02 11:00 ` [PATCH 11/12] macfb: add vertical blank interrupt Mark Cave-Ayland
2021-10-04 16:32   ` Laurent Vivier
2021-10-04 18:52     ` Mark Cave-Ayland
2021-10-02 11:00 ` [PATCH 12/12] q800: wire macfb IRQ to separate video interrupt on VIA2 Mark Cave-Ayland
2021-10-02 14:06   ` Philippe Mathieu-Daudé
2021-10-04  9:28   ` Laurent Vivier

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=a0cc2ea6-306d-34b9-09e9-b6acb6e9876b@vivier.eu \
    --to=laurent@vivier.eu \
    --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).