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);
|
||||
}
|
||||
}
|
||||
|
||||
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,
|
||||
qemu_edid_info *info);
|
||||
size_t qemu_edid_size(uint8_t *edid);
|
||||
|
||||
#endif /* EDID_H */
|
||||
|
Loading…
Reference in New Issue
Block a user