According to the VESA spec (and Wikipedia), some fields in the EDID should be interpreted as little-endian. This library treats all data as big-endian.
https://glenwing.github.io/docs/VESA-EEDID-A2.pdf
https://en.wikipedia.org/wiki/Extended_Display_Identification_Data#EDID_1.4_data_format
This includes the "Manufacturer product code" aka "product_id", and
"ID Serial Number" aka "serial".
The following code can be used to swap endianness.
def swap(num: int, length_bytes: int) -> int:
return int.from_bytes(num.to_bytes(length_bytes, "little"), "big")
swap(edid.product_id, 2)
swap(edid.serial, 4)