]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/video/fbmem.c
Merge branch 'fix/asoc' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
[mv-sheeva.git] / drivers / video / fbmem.c
index ad936295d8f439cb61d69d88d9b6ca736c2ba930..ac9141b8535600413b7d1c3cf495f30a5330d600 100644 (file)
@@ -967,6 +967,20 @@ fb_set_var(struct fb_info *info, struct fb_var_screeninfo *var)
            memcmp(&info->var, var, sizeof(struct fb_var_screeninfo))) {
                u32 activate = var->activate;
 
+               /* When using FOURCC mode, make sure the red, green, blue and
+                * transp fields are set to 0.
+                */
+               if ((info->fix.capabilities & FB_CAP_FOURCC) &&
+                   var->grayscale > 1) {
+                       if (var->red.offset     || var->green.offset    ||
+                           var->blue.offset    || var->transp.offset   ||
+                           var->red.length     || var->green.length    ||
+                           var->blue.length    || var->transp.length   ||
+                           var->red.msb_right  || var->green.msb_right ||
+                           var->blue.msb_right || var->transp.msb_right)
+                               return -EINVAL;
+               }
+
                if (!info->fbops->fb_check_var) {
                        *var = info->var;
                        goto done;