]> err.no Git - linux-2.6/blobdiff - drivers/video/console/fbcon.c
[PATCH] fbcon: Initialize new driver when old driver is released
[linux-2.6] / drivers / video / console / fbcon.c
index e111a88612f79b21e18f900400a9700db0af0d71..5ff51cd0a2a98c23484a17719ecc1ebe2f19d32a 100644 (file)
@@ -630,6 +630,15 @@ static int con2fb_release_oldinfo(struct vc_data *vc, struct fb_info *oldinfo,
                kfree(oldinfo->fbcon_par);
                oldinfo->fbcon_par = NULL;
                module_put(oldinfo->fbops->owner);
+               /*
+                 If oldinfo and newinfo are driving the same hardware,
+                 the fb_release() method of oldinfo may attempt to
+                 restore the hardware state.  This will leave the
+                 newinfo in an undefined state. Thus, a call to
+                 fb_set_par() may be needed for the newinfo.
+               */
+               if (newinfo->fbops->fb_set_par)
+                       newinfo->fbops->fb_set_par(newinfo);
        }
 
        return err;