diff options
Diffstat (limited to 'drivers/video')
-rw-r--r-- | drivers/video/console/fbcon.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c index e111a88612f7..5ff51cd0a2a9 100644 --- a/drivers/video/console/fbcon.c +++ b/drivers/video/console/fbcon.c | |||
@@ -630,6 +630,15 @@ static int con2fb_release_oldinfo(struct vc_data *vc, struct fb_info *oldinfo, | |||
630 | kfree(oldinfo->fbcon_par); | 630 | kfree(oldinfo->fbcon_par); |
631 | oldinfo->fbcon_par = NULL; | 631 | oldinfo->fbcon_par = NULL; |
632 | module_put(oldinfo->fbops->owner); | 632 | module_put(oldinfo->fbops->owner); |
633 | /* | ||
634 | If oldinfo and newinfo are driving the same hardware, | ||
635 | the fb_release() method of oldinfo may attempt to | ||
636 | restore the hardware state. This will leave the | ||
637 | newinfo in an undefined state. Thus, a call to | ||
638 | fb_set_par() may be needed for the newinfo. | ||
639 | */ | ||
640 | if (newinfo->fbops->fb_set_par) | ||
641 | newinfo->fbops->fb_set_par(newinfo); | ||
633 | } | 642 | } |
634 | 643 | ||
635 | return err; | 644 | return err; |