xref: /qemu/include/hw/display/edid.h (revision fce39fa7)
172d277a7SGerd Hoffmann #ifndef EDID_H
272d277a7SGerd Hoffmann #define EDID_H
372d277a7SGerd Hoffmann 
472d277a7SGerd Hoffmann typedef struct qemu_edid_info {
5edbc4b24SGerd Hoffmann     const char *vendor; /* http://www.uefi.org/pnp_id_list */
672d277a7SGerd Hoffmann     const char *name;
772d277a7SGerd Hoffmann     const char *serial;
8fd36eadeSMarc-André Lureau     uint16_t    width_mm;
9fd36eadeSMarc-André Lureau     uint16_t    height_mm;
1072d277a7SGerd Hoffmann     uint32_t    prefx;
1172d277a7SGerd Hoffmann     uint32_t    prefy;
1272d277a7SGerd Hoffmann     uint32_t    maxx;
1372d277a7SGerd Hoffmann     uint32_t    maxy;
14*fce39fa7SAkihiko Odaki     uint32_t    refresh_rate;
1572d277a7SGerd Hoffmann } qemu_edid_info;
1672d277a7SGerd Hoffmann 
1772d277a7SGerd Hoffmann void qemu_edid_generate(uint8_t *edid, size_t size,
1872d277a7SGerd Hoffmann                         qemu_edid_info *info);
19e7992fc5SGerd Hoffmann size_t qemu_edid_size(uint8_t *edid);
2097917e9eSGerd Hoffmann void qemu_edid_region_io(MemoryRegion *region, Object *owner,
2197917e9eSGerd Hoffmann                          uint8_t *edid, size_t size);
2272d277a7SGerd Hoffmann 
23fd36eadeSMarc-André Lureau uint32_t qemu_edid_dpi_to_mm(uint32_t dpi, uint32_t res);
24fd36eadeSMarc-André Lureau 
2506510b89SGerd Hoffmann #define DEFINE_EDID_PROPERTIES(_state, _edid_info)                         \
2606510b89SGerd Hoffmann     DEFINE_PROP_UINT32("xres", _state, _edid_info.prefx, 0),               \
279b330e48SGerd Hoffmann     DEFINE_PROP_UINT32("yres", _state, _edid_info.prefy, 0),               \
289b330e48SGerd Hoffmann     DEFINE_PROP_UINT32("xmax", _state, _edid_info.maxx, 0),                \
29*fce39fa7SAkihiko Odaki     DEFINE_PROP_UINT32("ymax", _state, _edid_info.maxy, 0),                \
30*fce39fa7SAkihiko Odaki     DEFINE_PROP_UINT32("refresh_rate", _state, _edid_info.refresh_rate, 0)
3106510b89SGerd Hoffmann 
3272d277a7SGerd Hoffmann #endif /* EDID_H */
33