mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 03:01:39 -04:00
udlfb: don't switch if we are switching to the same videomode
The udlfb driver reprograms the hardware everytime the user switches the console, that makes quite unusable when working on the console. This patch makes the driver remember the videomode we are in and avoid reprogramming the hardware if we switch to the same videomode. We mask the "activate" field and the "FB_VMODE_SMOOTH_XPAN" flag when comparing the videomode, because they cause spurious switches when switching to and from the Xserver. Signed-off-by: Mikulas Patocka <[email protected]> Cc: [email protected] Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
This commit is contained in:
parent
4e705e17ce
commit
564f180737
2 changed files with 17 additions and 2 deletions
|
|
@ -1041,10 +1041,24 @@ static int dlfb_ops_set_par(struct fb_info *info)
|
|||
int result;
|
||||
u16 *pix_framebuffer;
|
||||
int i;
|
||||
struct fb_var_screeninfo fvs;
|
||||
|
||||
/* clear the activate field because it causes spurious miscompares */
|
||||
fvs = info->var;
|
||||
fvs.activate = 0;
|
||||
fvs.vmode &= ~FB_VMODE_SMOOTH_XPAN;
|
||||
|
||||
if (!memcmp(&dlfb->current_mode, &fvs, sizeof(struct fb_var_screeninfo)))
|
||||
return 0;
|
||||
|
||||
result = dlfb_set_video_mode(dlfb, &info->var);
|
||||
|
||||
if ((result == 0) && (dlfb->fb_count == 0)) {
|
||||
if (result)
|
||||
return result;
|
||||
|
||||
dlfb->current_mode = fvs;
|
||||
|
||||
if (dlfb->fb_count == 0) {
|
||||
|
||||
/* paint greenscreen */
|
||||
|
||||
|
|
@ -1056,7 +1070,7 @@ static int dlfb_ops_set_par(struct fb_info *info)
|
|||
info->screen_base);
|
||||
}
|
||||
|
||||
return result;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* To fonzi the jukebox (e.g. make blanking changes take effect) */
|
||||
|
|
|
|||
Loading…
Reference in a new issue