Arithmetic error fixed in EDID generation
diff mbox series

Message ID 20200225200914.3ec2c07b@x230.localdomain
State New
Headers show
Series
  • Arithmetic error fixed in EDID generation
Related show

Commit Message

Anton V. Boyarshinov Feb. 25, 2020, 8:09 p.m. UTC
To compute screen size in centimeters we should calculate:
pixels/dpi*2.54
but not
pixels*dpi/2540

Using wrong formula we actually get 65 DPI and very small fonts.

Signed-off-by: Anton V. Boyarshinov <boyarsh@altlinux.org>
---
 hw/display/edid-generate.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Patch
diff mbox series

diff --git a/hw/display/edid-generate.c b/hw/display/edid-generate.c
index 75c945a948..537e063662 100644
--- a/hw/display/edid-generate.c
+++ b/hw/display/edid-generate.c
@@ -360,8 +360,8 @@  void qemu_edid_generate(uint8_t *edid, size_t size,
     edid[20] = 0xa5;
 
     /* screen size: undefined */
-    edid[21] = info->prefx * info->dpi / 2540;
-    edid[22] = info->prefy * info->dpi / 2540;
+    edid[21] = (uint8_t) ((float) info->prefx / info->dpi * 2.54);
+    edid[22] = (uint8_t) ((float) info->prefy / info->dpi * 2.54);
 
     /* display gamma: 2.2 */
     edid[23] = 220 - 100;