1 From 9c6751bf2b2c817c3f52a638566b99125a0ba0f1 Mon Sep 17 00:00:00 2001
2 From: BALATON Zoltan <balaton@eik.bme.hu>
3 Date: Wed, 22 Aug 2012 17:19:42 +0200
4 Subject: [PATCH] console: Clean up bytes per pixel calculation
6 Division with round up is the correct way to compute this even if the
7 only case where division with round down gives incorrect result is
8 probably 15 bpp. This case was explicitely patched up in one of these
9 functions but was unhandled in the other. (I'm not sure about setting
10 16 bpp for the 15bpp case either but I left that there for now.)
12 Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
13 Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
14 (cherry picked from commit feadf1a4de0d7468ffb671a2b9f681925469fa58)
16 Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
19 1 file changed, 2 insertions(+), 3 deletions(-)
21 diff --git a/console.c b/console.c
22 index 3b5cabb..8b5e21d 100644
25 @@ -1611,7 +1611,7 @@ PixelFormat qemu_different_endianness_pixelformat(int bpp)
26 memset(&pf, 0x00, sizeof(PixelFormat));
28 pf.bits_per_pixel = bpp;
29 - pf.bytes_per_pixel = bpp / 8;
30 + pf.bytes_per_pixel = DIV_ROUND_UP(bpp, 8);
31 pf.depth = bpp == 32 ? 24 : bpp;
34 @@ -1660,13 +1660,12 @@ PixelFormat qemu_default_pixelformat(int bpp)
35 memset(&pf, 0x00, sizeof(PixelFormat));
37 pf.bits_per_pixel = bpp;
38 - pf.bytes_per_pixel = bpp / 8;
39 + pf.bytes_per_pixel = DIV_ROUND_UP(bpp, 8);
40 pf.depth = bpp == 32 ? 24 : bpp;
44 pf.bits_per_pixel = 16;
45 - pf.bytes_per_pixel = 2;
46 pf.rmask = 0x00007c00;
47 pf.gmask = 0x000003E0;
48 pf.bmask = 0x0000001F;