2009-03-30 22:05:43

by Michal Januszewski

[permalink] [raw]
Subject: [PATCH] vga16fb: fix color component length for pseudocolor modes

vga16fb incorrectly sets the length of the color fields to 6 or 2 bits
for PSEUDOCOLOR modes, for which either 8 or 4 bits are used per pixel.
Fix this by setting the length to 8 or 4, respectively.

Signed-off-by: Michal Januszewski <[email protected]>
---
diff --git a/drivers/video/vga16fb.c b/drivers/video/vga16fb.c
index 5b29389..50033b9 100644
--- a/drivers/video/vga16fb.c
+++ b/drivers/video/vga16fb.c
@@ -506,7 +506,7 @@ static int vga16fb_check_var(struct fb_var_screeninfo *var,
var->red.offset = var->green.offset = var->blue.offset =
var->transp.offset = 0;
var->red.length = var->green.length = var->blue.length =
- (par->isVGA) ? 6 : 2;
+ (par->isVGA) ? 8 : 4;
var->transp.length = 0;
var->activate = FB_ACTIVATE_NOW;
var->height = -1;


2009-04-01 17:57:37

by Krzysztof Helt

[permalink] [raw]
Subject: Re: [Linux-fbdev-devel] [PATCH] vga16fb: fix color component length for pseudocolor modes

On Tue, 31 Mar 2009 00:05:24 +0200
Michal Januszewski <[email protected]> wrote:

> vga16fb incorrectly sets the length of the color fields to 6 or 2 bits
> for PSEUDOCOLOR modes, for which either 8 or 4 bits are used per pixel.
> Fix this by setting the length to 8 or 4, respectively.
>
> Signed-off-by: Michal Januszewski <[email protected]>
> ---
> diff --git a/drivers/video/vga16fb.c b/drivers/video/vga16fb.c
> index 5b29389..50033b9 100644
> --- a/drivers/video/vga16fb.c
> +++ b/drivers/video/vga16fb.c
> @@ -506,7 +506,7 @@ static int vga16fb_check_var(struct fb_var_screeninfo *var,
> var->red.offset = var->green.offset = var->blue.offset =
> var->transp.offset = 0;
> var->red.length = var->green.length = var->blue.length =
> - (par->isVGA) ? 6 : 2;
> + (par->isVGA) ? 8 : 4;
> var->transp.length = 0;
> var->activate = FB_ACTIVATE_NOW;
> var->height = -1;
>

There is the second place to change in the vga16fb_probe().

Regards,
Krzysztof


----------------------------------------------------------------------
Internetowe dowcipy na 1 kwietnia! Sprawdz! ;)
http://link.interia.pl/f20f4

2009-04-02 12:26:43

by Michal Januszewski

[permalink] [raw]
Subject: [PATCH] vga16fb: fix color component length for pseudocolor modes

vga16fb incorrectly sets the length of the color fields to 6 or 2 bits
for PSEUDOCOLOR modes, for which either 8 or 4 bits are used per pixel.
Fix this by setting the length to 8 or 4, respectively.

Signed-off-by: Michal Januszewski <[email protected]>
---
diff --git a/drivers/video/vga16fb.c b/drivers/video/vga16fb.c
index 5b29389..8f1eb7f 100644
--- a/drivers/video/vga16fb.c
+++ b/drivers/video/vga16fb.c
@@ -506,7 +506,7 @@ static int vga16fb_check_var(struct fb_var_screeninfo *var,
var->red.offset = var->green.offset = var->blue.offset =
var->transp.offset = 0;
var->red.length = var->green.length = var->blue.length =
- (par->isVGA) ? 6 : 2;
+ (par->isVGA) ? 8 : 4;
var->transp.length = 0;
var->activate = FB_ACTIVATE_NOW;
var->height = -1;
@@ -1324,7 +1324,7 @@ static int __init vga16fb_probe(struct platform_device *dev)
par->palette_blanked = 0;
par->vesa_blanked = 0;

- i = par->isVGA? 6 : 2;
+ i = par->isVGA? 8 : 4;

vga16fb_defined.red.length = i;
vga16fb_defined.green.length = i;

2009-04-04 11:02:19

by Krzysztof Helt

[permalink] [raw]
Subject: Re: [PATCH] vga16fb: fix color component length for pseudocolor modes

On Thu, 2 Apr 2009 14:26:13 +0200
Michal Januszewski <[email protected]> wrote:

> vga16fb incorrectly sets the length of the color fields to 6 or 2 bits
> for PSEUDOCOLOR modes, for which either 8 or 4 bits are used per pixel.
> Fix this by setting the length to 8 or 4, respectively.
>
> Signed-off-by: Michal Januszewski <[email protected]>
> ---

Acked-by: Krzysztof Helt <[email protected]>


> diff --git a/drivers/video/vga16fb.c b/drivers/video/vga16fb.c
> index 5b29389..8f1eb7f 100644
> --- a/drivers/video/vga16fb.c
> +++ b/drivers/video/vga16fb.c
> @@ -506,7 +506,7 @@ static int vga16fb_check_var(struct fb_var_screeninfo *var,
> var->red.offset = var->green.offset = var->blue.offset =
> var->transp.offset = 0;
> var->red.length = var->green.length = var->blue.length =
> - (par->isVGA) ? 6 : 2;
> + (par->isVGA) ? 8 : 4;
> var->transp.length = 0;
> var->activate = FB_ACTIVATE_NOW;
> var->height = -1;
> @@ -1324,7 +1324,7 @@ static int __init vga16fb_probe(struct platform_device *dev)
> par->palette_blanked = 0;
> par->vesa_blanked = 0;
>
> - i = par->isVGA? 6 : 2;
> + i = par->isVGA? 8 : 4;
>
> vga16fb_defined.red.length = i;
> vga16fb_defined.green.length = i;
>

----------------------------------------------------------------------
Kredyt z doplata, nawet 200 000 zl. Sprawdz!
http://link.interia.pl/f20fc