Change requested in launchpad bug #1288352
[packages/centos6/qemu.git] / 0182-console-Clean-up-bytes-per-pixel-calculation.patch
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
5
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.)
11
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)
15
16 Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
17 ---
18  console.c | 5 ++---
19  1 file changed, 2 insertions(+), 3 deletions(-)
20
21 diff --git a/console.c b/console.c
22 index 3b5cabb..8b5e21d 100644
23 --- a/console.c
24 +++ b/console.c
25 @@ -1611,7 +1611,7 @@ PixelFormat qemu_different_endianness_pixelformat(int bpp)
26      memset(&pf, 0x00, sizeof(PixelFormat));
27  
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;
32  
33      switch (bpp) {
34 @@ -1660,13 +1660,12 @@ PixelFormat qemu_default_pixelformat(int bpp)
35      memset(&pf, 0x00, sizeof(PixelFormat));
36  
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;
41  
42      switch (bpp) {
43          case 15:
44              pf.bits_per_pixel = 16;
45 -            pf.bytes_per_pixel = 2;
46              pf.rmask = 0x00007c00;
47              pf.gmask = 0x000003E0;
48              pf.bmask = 0x0000001F;
49 -- 
50 1.7.12.1
51