diff options
author | Antonino A. Daplas <adaplas@gmail.com> | 2007-07-17 07:05:45 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-17 13:23:13 -0400 |
commit | 08a498de79727d63a011f2583e9aba4d3083c3a0 (patch) | |
tree | 4b45181fe347c6e7ee3efc1648e182bc65969b41 /drivers/video/matrox/matroxfb_accel.c | |
parent | 000d5335c6e7f5dbcd849b62b4be7ae005aa6974 (diff) |
matroxfb: color setting fixes
- the pseudo_palette is only 16 elements long.
- do not write to the pseudo_palette if regno (array index) is more than 15
- remove code that writes to the 17th entry of the pseudo_palette
Signed-off-by: Antonino Daplas <adaplas@gmail.com>
Acked-by: Petr Vandrovec <vandrove@vc.cvut.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/video/matrox/matroxfb_accel.c')
-rw-r--r-- | drivers/video/matrox/matroxfb_accel.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/drivers/video/matrox/matroxfb_accel.c b/drivers/video/matrox/matroxfb_accel.c index c57aaadf410c..209fe697ecc7 100644 --- a/drivers/video/matrox/matroxfb_accel.c +++ b/drivers/video/matrox/matroxfb_accel.c | |||
@@ -145,13 +145,10 @@ void matrox_cfbX_init(WPMINFO2) { | |||
145 | ACCESS_FBINFO(fbops).fb_imageblit = matroxfb_imageblit; | 145 | ACCESS_FBINFO(fbops).fb_imageblit = matroxfb_imageblit; |
146 | } | 146 | } |
147 | break; | 147 | break; |
148 | case 16: if (ACCESS_FBINFO(fbcon).var.green.length == 5) { | 148 | case 16: if (ACCESS_FBINFO(fbcon).var.green.length == 5) |
149 | maccess = 0xC0000001; | 149 | maccess = 0xC0000001; |
150 | ACCESS_FBINFO(cmap[16]) = 0x7FFF7FFF; | 150 | else |
151 | } else { | ||
152 | maccess = 0x40000001; | 151 | maccess = 0x40000001; |
153 | ACCESS_FBINFO(cmap[16]) = 0xFFFFFFFF; | ||
154 | } | ||
155 | mopmode = M_OPMODE_16BPP; | 152 | mopmode = M_OPMODE_16BPP; |
156 | if (accel) { | 153 | if (accel) { |
157 | ACCESS_FBINFO(fbops).fb_copyarea = matroxfb_copyarea; | 154 | ACCESS_FBINFO(fbops).fb_copyarea = matroxfb_copyarea; |
@@ -161,7 +158,6 @@ void matrox_cfbX_init(WPMINFO2) { | |||
161 | break; | 158 | break; |
162 | case 24: maccess = 0x00000003; | 159 | case 24: maccess = 0x00000003; |
163 | mopmode = M_OPMODE_24BPP; | 160 | mopmode = M_OPMODE_24BPP; |
164 | ACCESS_FBINFO(cmap[16]) = 0xFFFFFFFF; | ||
165 | if (accel) { | 161 | if (accel) { |
166 | ACCESS_FBINFO(fbops).fb_copyarea = matroxfb_copyarea; | 162 | ACCESS_FBINFO(fbops).fb_copyarea = matroxfb_copyarea; |
167 | ACCESS_FBINFO(fbops).fb_fillrect = matroxfb_fillrect; | 163 | ACCESS_FBINFO(fbops).fb_fillrect = matroxfb_fillrect; |
@@ -170,7 +166,6 @@ void matrox_cfbX_init(WPMINFO2) { | |||
170 | break; | 166 | break; |
171 | case 32: maccess = 0x00000002; | 167 | case 32: maccess = 0x00000002; |
172 | mopmode = M_OPMODE_32BPP; | 168 | mopmode = M_OPMODE_32BPP; |
173 | ACCESS_FBINFO(cmap[16]) = 0xFFFFFFFF; | ||
174 | if (accel) { | 169 | if (accel) { |
175 | ACCESS_FBINFO(fbops).fb_copyarea = matroxfb_copyarea; | 170 | ACCESS_FBINFO(fbops).fb_copyarea = matroxfb_copyarea; |
176 | ACCESS_FBINFO(fbops).fb_fillrect = matroxfb_fillrect; | 171 | ACCESS_FBINFO(fbops).fb_fillrect = matroxfb_fillrect; |