On Wed, Dec 12, 2018 at 08:54:37AM +0000, Mark Cave-Ayland wrote: > On 12/12/2018 08:32, Gerd Hoffmann wrote: > > > On Fri, Dec 07, 2018 at 04:08:05PM +0000, Mark Cave-Ayland wrote: > >> This is in preparation for some upcoming QEMU NDRV driver changes that pass > >> display information from the host to the guest. > > > >> - pci_vga_init(pci_bus); > >> + dev = qdev_create(BUS(pci_bus), "VGA"); > >> + qdev_prop_set_int32(dev, "addr", -1); > >> + qdev_prop_set_bit(dev, "edid", true); > >> + qdev_init_nofail(dev); > > > > Hmm. IMO you should not overwrite the device defaults here. > > > > edid is off by default only because it is new and I'm conservative. > > I want a release (or two) with it being available for user testing. > > If no issues pop up flip it to default on. > > Oh, okay. I already have some unreleased guest code that makes use of this, > so my > questions would be: how can EDID be enabled from the command line for > in-built VGA > devices,
"-global VGA.edid=on" should do. > and how do I detect whether EDID support is present from the guest? Check whenever the header is present. The edid blob has a fixed 8 byte header (00 FF FF FF FF FF FF 00). The linux kernel driver is lazy and checks the first two bytes only. > Otherwise a guest driver that assumes it is always present and tries > to read from that area of memory will crash. Oh, reading should work no matter what. You just don't find valid edid data there if it is turned off. cheers, Gerd