display/edid: add qemu_edid_size()
Helper function to figure the size of a edid blob, by checking how many extensions are present. Both the base edid blob and the extensions are 128 bytes in size. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Message-id: 20180925075646.25114-3-kraxel@redhat.com
This commit is contained in:
parent
72d277a70e
commit
e7992fc5a0
@ -423,3 +423,17 @@ void qemu_edid_generate(uint8_t *edid, size_t size,
|
|||||||
edid_checksum(dta);
|
edid_checksum(dta);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
size_t qemu_edid_size(uint8_t *edid)
|
||||||
|
{
|
||||||
|
uint32_t exts;
|
||||||
|
|
||||||
|
if (edid[0] != 0x00 ||
|
||||||
|
edid[1] != 0xff) {
|
||||||
|
/* doesn't look like a valid edid block */
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
exts = edid[126];
|
||||||
|
return 128 * (exts + 1);
|
||||||
|
}
|
||||||
|
@ -14,5 +14,6 @@ typedef struct qemu_edid_info {
|
|||||||
|
|
||||||
void qemu_edid_generate(uint8_t *edid, size_t size,
|
void qemu_edid_generate(uint8_t *edid, size_t size,
|
||||||
qemu_edid_info *info);
|
qemu_edid_info *info);
|
||||||
|
size_t qemu_edid_size(uint8_t *edid);
|
||||||
|
|
||||||
#endif /* EDID_H */
|
#endif /* EDID_H */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user