On Thu, May 30, 2024 at 01:22:11PM +0100, Mark Cave-Ayland wrote: > On 30/05/2024 12:40, BALATON Zoltan wrote: > > > On Thu, 30 May 2024, Gerd Hoffmann wrote: > > > stdvga is the much better option. > > > > > > Signed-off-by: Gerd Hoffmann <kra...@redhat.com> > > > --- > > > hw/display/cirrus_vga.c | 1 + > > > hw/display/cirrus_vga_isa.c | 1 + > > > hw/display/Kconfig | 1 - > > > 3 files changed, 2 insertions(+), 1 deletion(-) > > > > > > diff --git a/hw/display/cirrus_vga.c b/hw/display/cirrus_vga.c > > > index 150883a97166..81421be1f89d 100644 > > > --- a/hw/display/cirrus_vga.c > > > +++ b/hw/display/cirrus_vga.c > > > @@ -3007,6 +3007,7 @@ static void cirrus_vga_class_init(ObjectClass > > > *klass, void *data) > > > dc->vmsd = &vmstate_pci_cirrus_vga; > > > device_class_set_props(dc, pci_vga_cirrus_properties); > > > dc->hotpluggable = false; > > > + klass->deprecation_note = "use stdvga instead"; > > > } > > > > > > static const TypeInfo cirrus_vga_info = { > > > diff --git a/hw/display/cirrus_vga_isa.c b/hw/display/cirrus_vga_isa.c > > > index 84be51670ed8..3abbf4dddd90 100644 > > > --- a/hw/display/cirrus_vga_isa.c > > > +++ b/hw/display/cirrus_vga_isa.c > > > @@ -85,6 +85,7 @@ static void isa_cirrus_vga_class_init(ObjectClass > > > *klass, void *data) > > > dc->realize = isa_cirrus_vga_realizefn; > > > device_class_set_props(dc, isa_cirrus_vga_properties); > > > set_bit(DEVICE_CATEGORY_DISPLAY, dc->categories); > > > + klass->deprecation_note = "use stdvga instead"; > > > > Excepr some old OSes work better with this than stdvga so could this be > > left and not removed? Does it cause a lot of work to keep this device? I > > thought it's stable already and were not many changes for it lately. If > > something works why drop it? > > Seconded: whilst stdvga is preferred, there are a lot of older OSs that work > well in QEMU using the Cirrus emulation. I appreciate that the code could do > with a bit of work, but is there a more specific reason that it should be > deprecated?
I think there's different answers here for upstream vs downstream. Upstream QEMU's scope is to emulate pretty much arbitrary hardware that may have existed at any point in time. Emulating Cirrus is very much in scope upstream, and even if there are other better VGA devices, that doesn't make emulation of Cirrus redundant. Downstream is a different matter - if a downstream vendor wants to be opinionated and limit the scope of devices they ship to customers, it is totally valid to cull Cirrus. IOW, I think device deprecation *framework* is relevant to include upstream, but most actual usage of it will be downstream. Upstream might use *object* deprecation, if we replace an backend implementation with a different one. With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|