diff options
Diffstat (limited to 'drivers/video/fm2fb.c')
-rw-r--r-- | drivers/video/fm2fb.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/video/fm2fb.c b/drivers/video/fm2fb.c index 70ff55b14596..6c91c61cdb63 100644 --- a/drivers/video/fm2fb.c +++ b/drivers/video/fm2fb.c | |||
@@ -195,13 +195,15 @@ static int fm2fb_blank(int blank, struct fb_info *info) | |||
195 | static int fm2fb_setcolreg(u_int regno, u_int red, u_int green, u_int blue, | 195 | static int fm2fb_setcolreg(u_int regno, u_int red, u_int green, u_int blue, |
196 | u_int transp, struct fb_info *info) | 196 | u_int transp, struct fb_info *info) |
197 | { | 197 | { |
198 | if (regno > info->cmap.len) | 198 | if (regno < 16) { |
199 | return 1; | 199 | red >>= 8; |
200 | red >>= 8; | 200 | green >>= 8; |
201 | green >>= 8; | 201 | blue >>= 8; |
202 | blue >>= 8; | 202 | |
203 | ((u32*)(info->pseudo_palette))[regno] = (red << 16) | | ||
204 | (green << 8) | blue; | ||
205 | } | ||
203 | 206 | ||
204 | ((u32*)(info->pseudo_palette))[regno] = (red << 16) | (green << 8) | blue; | ||
205 | return 0; | 207 | return 0; |
206 | } | 208 | } |
207 | 209 | ||
@@ -237,7 +239,7 @@ static int __devinit fm2fb_probe(struct zorro_dev *z, | |||
237 | if (!zorro_request_device(z,"fm2fb")) | 239 | if (!zorro_request_device(z,"fm2fb")) |
238 | return -ENXIO; | 240 | return -ENXIO; |
239 | 241 | ||
240 | info = framebuffer_alloc(256 * sizeof(u32), &z->dev); | 242 | info = framebuffer_alloc(16 * sizeof(u32), &z->dev); |
241 | if (!info) { | 243 | if (!info) { |
242 | zorro_release_device(z); | 244 | zorro_release_device(z); |
243 | return -ENOMEM; | 245 | return -ENOMEM; |