[PATCH] fbdev: update info->cmap when setting cmap from user-/kernelspace.
authorMichal Januszewski <spock@gentoo.org>
Wed, 27 Jul 2005 18:46:08 +0000 (11:46 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Wed, 27 Jul 2005 23:26:19 +0000 (16:26 -0700)
commit03e259a9cdbd0583e71468293aaa1ccadbdaeff1
treeee41f6bcfbeeeb6f3cd269622d499ee9eb6df233
parentdbd4f12859307c20a4c65a7de4cdd5f9f518dc7a
[PATCH] fbdev: update info->cmap when setting cmap from user-/kernelspace.

The fb_info struct, as defined in include/linux/fb.h, contains an element
that is supposed to hold the current color map:
  struct fb_cmap cmap;            /* Current cmap */

This cmap is currently never updated when either fb_set_cmap() or
fb_set_user_cmap() are called.  As a result, info->cmap contains the
default cmap that was set by a device driver/fbcon and a userspace
application using the FBIOGETCMAP ioctl will not always get the *currently*
used color map.

The patch fixes this by making sure the cmap is copied to info->cmap after
it is set correctly.  It moves most of the code that is responsible for
setting the cmap to fb_set_cmap() and out of fb_set_user_cmap() to avoid
code-duplication.

Signed-off-by: Michal Januszewski <spock@gentoo.org>
Cc: <linux-fbdev-devel@lists.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/video/fbcmap.c