linux-mips
[Top] [All Lists]

Re: [PATCH] SiMotion VoyagerGX framebuffer: blue stripped background

To: Linux MIPS <linux-mips@linux-mips.org>
Subject: Re: [PATCH] SiMotion VoyagerGX framebuffer: blue stripped background
From: Sergei Shtylylov <sshtylyov@ru.mvista.com>
Date: Fri, 09 Dec 2005 23:29:32 +0300
Cc: Manish Lachwani <mlachwani@mvista.com>, Konstantin Baidarov <kbaidarov@ru.mvista.com>
In-reply-to: <4399C8AB.4080403@ru.mvista.com>
Organization: MostaVista Software Inc.
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <4399C8AB.4080403@ru.mvista.com>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mozilla/5.0 (X11; U; Linux i686; rv:1.7.2) Gecko/20040803
Hello.

Sergei Shtylylov wrote:

   This driver was using an incorrect typecast when setting pseudopalette,
hence were the blue strips on the black char background. As this driver
happens to be maintaned by Linux/MIPS, here's the patch (I've also noticed a
typo in the head comment, hence comes another hunk)...

    Have noticed that regno check in smi_setcolreg() is too relaxed as
pseudo-palette has only 16 entries. So, had to update the patch.

WBR, Sergei

Signed-off-by: Konstantin Baydarov <kbaidarov@ru.mvista.com>
Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>

diff --git a/drivers/video/smivgxfb.c b/drivers/video/smivgxfb.c
index d5755c5..944ff4a 100644
--- a/drivers/video/smivgxfb.c
+++ b/drivers/video/smivgxfb.c
@@ -1,5 +1,5 @@
 /***************************************************************************
- *  Silicon Motion VoyaagerGX framebuffer driver
+ *  Silicon Motion VoyagerGX framebuffer driver
  *
  *     ported to 2.6 by Embedded Alley Solutions, Inc
  *     Copyright (C) 2005 Embedded Alley Solutions, Inc
@@ -159,10 +159,10 @@ smi_setcolreg(unsigned regno, unsigned r
        unsigned blue, unsigned transp,
        struct fb_info *info)
 {
-       if (regno > 255)
+       if (regno > 15)
                return 1;
 
-       ((u16 *)(info->pseudo_palette))[regno] =
+       ((u32 *)(info->pseudo_palette))[regno] =
                    ((red & 0xf800) >> 0) |
                    ((green & 0xfc00) >> 5) |
                    ((blue & 0xf800) >> 11);
@@ -318,9 +318,9 @@ static int __devinit vgx_pci_probe(struc
        if (!info.pseudo_palette) {
                return -ENOMEM;
        }
-       memset(info.pseudo_palette, 0, sizeof(u32) *16);
+       memset(info.pseudo_palette, 0, sizeof(u32) * 16);
 
-       fb_alloc_cmap(&info.cmap,256,0);
+       fb_alloc_cmap(&info.cmap, 256, 0);
 
        smi_setmode();
 

<Prev in Thread] Current Thread [Next in Thread>