[PATCH] intelfb/fbdev: Save info->flags in a local variable
authorAntonino A. Daplas <adaplas@gmail.com>
Mon, 15 Aug 2005 13:29:11 +0000 (21:29 +0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Mon, 15 Aug 2005 16:59:39 +0000 (09:59 -0700)
commit3edea4833a1efcd43e1dff082bc8001fdfe74b34
tree9c1fcbc1bf513123f9612153c40582d2ff464d07
parent6bd49341f2806168c877e12cefca77b93437bac2
[PATCH] intelfb/fbdev: Save info->flags in a local variable

Reported by: Pavel Kysilka (Bugzilla Bug 5059)

The intelfb driver does not keep resolution set with fbset after
switching to anot console and back.

Steps to reproduce:

  initial options: tty1,tty2 - 1024x768-60
  1) tty1 - fbset after booting (1024x768-60)
  2) tty1 - fbset 800x600-100
  tty1: 800x600-100
  3) swith to tty2, swith to tty1
  tty1: 1024x768-60 (the same resolution as default from kernel booting)

This bug is caused by intelfb unintentionally destroying info->flags in
set_par(). Therefore the flag, FBINFO_MISC_USEREVENT used to notify
fbcon of a mode change was cleared causing the above problem. This bug
though is not intelfb specific, as other drivers may also be affected.

The fix is to save info->flags in a local variable before calling any
of the driver hooks.  A more definitive fix (for post 2.6.13) is to
separate info->flags into one that is set by the driver and another that
is set by core fbdev/fbcon.

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/video/fbmem.c