diff options
| author | Antonino A. Daplas <adaplas@gmail.com> | 2005-12-13 01:17:18 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-12-13 01:31:17 -0500 |
| commit | 4e1567d3aad9bae0ecc5bb047179cd026bfb035c (patch) | |
| tree | b3e8820b236c62da6cdbcefbe2850c9cd0158489 | |
| parent | 1207069f6f8f3d1b71641fdaa6cc04fca6fff9f5 (diff) | |
[PATCH] fbcon: Avoid illegal display panning
Avoid calls to fb_pan_display when driver is suspended or not in text mode.
Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| -rw-r--r-- | drivers/video/console/fbcon.c | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c index bd4500a8992e..8068d2f7efe6 100644 --- a/drivers/video/console/fbcon.c +++ b/drivers/video/console/fbcon.c | |||
| @@ -2146,8 +2146,12 @@ static int fbcon_switch(struct vc_data *vc) | |||
| 2146 | 2146 | ||
| 2147 | scrollback_max = 0; | 2147 | scrollback_max = 0; |
| 2148 | scrollback_current = 0; | 2148 | scrollback_current = 0; |
| 2149 | ops->var.xoffset = ops->var.yoffset = p->yscroll = 0; | 2149 | |
| 2150 | ops->update_start(info); | 2150 | if (!fbcon_is_inactive(vc, info)) { |
| 2151 | ops->var.xoffset = ops->var.yoffset = p->yscroll = 0; | ||
| 2152 | ops->update_start(info); | ||
| 2153 | } | ||
| 2154 | |||
| 2151 | fbcon_set_palette(vc, color_table); | 2155 | fbcon_set_palette(vc, color_table); |
| 2152 | fbcon_clear_margins(vc, 0); | 2156 | fbcon_clear_margins(vc, 0); |
| 2153 | 2157 | ||
| @@ -2746,8 +2750,12 @@ static void fbcon_modechanged(struct fb_info *info) | |||
| 2746 | updatescrollmode(p, info, vc); | 2750 | updatescrollmode(p, info, vc); |
| 2747 | scrollback_max = 0; | 2751 | scrollback_max = 0; |
| 2748 | scrollback_current = 0; | 2752 | scrollback_current = 0; |
| 2749 | ops->var.xoffset = ops->var.yoffset = p->yscroll = 0; | 2753 | |
| 2750 | ops->update_start(info); | 2754 | if (!fbcon_is_inactive(vc, info)) { |
| 2755 | ops->var.xoffset = ops->var.yoffset = p->yscroll = 0; | ||
| 2756 | ops->update_start(info); | ||
| 2757 | } | ||
| 2758 | |||
| 2751 | fbcon_set_palette(vc, color_table); | 2759 | fbcon_set_palette(vc, color_table); |
| 2752 | update_screen(vc); | 2760 | update_screen(vc); |
| 2753 | if (softback_buf) | 2761 | if (softback_buf) |
| @@ -2784,8 +2792,13 @@ static void fbcon_set_all_vcs(struct fb_info *info) | |||
| 2784 | updatescrollmode(p, info, vc); | 2792 | updatescrollmode(p, info, vc); |
| 2785 | scrollback_max = 0; | 2793 | scrollback_max = 0; |
| 2786 | scrollback_current = 0; | 2794 | scrollback_current = 0; |
| 2787 | ops->var.xoffset = ops->var.yoffset = p->yscroll = 0; | 2795 | |
| 2788 | ops->update_start(info); | 2796 | if (!fbcon_is_inactive(vc, info)) { |
| 2797 | ops->var.xoffset = ops->var.yoffset = | ||
| 2798 | p->yscroll = 0; | ||
| 2799 | ops->update_start(info); | ||
| 2800 | } | ||
| 2801 | |||
| 2789 | fbcon_set_palette(vc, color_table); | 2802 | fbcon_set_palette(vc, color_table); |
| 2790 | update_screen(vc); | 2803 | update_screen(vc); |
| 2791 | if (softback_buf) | 2804 | if (softback_buf) |
