Re: [PATCH v3 2/2] video: da8xx-fb: Fix casting of info->pseudo_palette

From: Tomi Valkeinen
Date: Fri Apr 04 2014 - 06:50:23 EST


On 01/04/14 15:39, jon@xxxxxxxxxx wrote:
> From: Jon Ringle <jringle@xxxxxxxxxxxxx>
>
> The casting to (u16 *) on info->pseudo_palette is wrong and causes the
> display to show a blue (garbage) vertical line on every other pixel column
>
> Signed-off-by: Jon Ringle <jringle@xxxxxxxxxxxxx>
> ---
> drivers/video/da8xx-fb.c | 10 +---------
> 1 file changed, 1 insertion(+), 9 deletions(-)
>
> diff --git a/drivers/video/da8xx-fb.c b/drivers/video/da8xx-fb.c
> index 233f65f..c17f901 100644
> --- a/drivers/video/da8xx-fb.c
> +++ b/drivers/video/da8xx-fb.c
> @@ -678,15 +678,7 @@ static int fb_setcolreg(unsigned regno, unsigned red, unsigned green,
> (green << info->var.green.offset) |
> (blue << info->var.blue.offset);
>
> - switch (info->var.bits_per_pixel) {
> - case 16:
> - ((u16 *) (info->pseudo_palette))[regno] = v;
> - break;
> - case 24:
> - case 32:
> - ((u32 *) (info->pseudo_palette))[regno] = v;
> - break;
> - }
> + ((u32 *) (info->pseudo_palette))[regno] = v;
> if (palette[0] != 0x4000) {
> update_hw = 1;
> palette[0] = 0x4000;
>

Thanks.

I wonder why the pseudo_palette in fb.h is 'void *' in the first place.
It seems to be cast to 'u32 *' everywhere...

Tomi


Attachment: signature.asc
Description: OpenPGP digital signature