drm/fb-helper: directly call set_par from the hotplug handler
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Mon, 21 Jan 2013 22:12:36 +0000 (23:12 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 13 Feb 2013 23:07:56 +0000 (00:07 +0100)
The idea behind calling down into the driver's ->fb_probe function on each
hotplug seems to be able to reallocate the backing storage (if e.g. a screen
with higher resolution gets added). But that requires quite a bit of work in the
fb helper itself, since currently we limit new screens to the currently
allocated fb. An no kms driver supports fbdev fb resizing.

So don't bother and start to simplify the code by calling drm_fb_helper_set_par
directly from the fbdev hotplug function, since that's the only thing left in
drm_fb_helper_single_fb_probe which does not concern itself with fb allocation
and initial setup. Follow-on patches will streamline the initial setup
code.

Reviewed-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/drm_fb_helper.c

index 809ef99f910e65ffcd20151ee1a8eb1b6c6d67c0..535c2cadf4d1c3329e91b45b4cd2d7a5fa9bc182 100644 (file)
@@ -859,8 +859,6 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper,
                dev_info(fb_helper->dev->dev, "fb%d: %s frame buffer device\n",
                                info->node, info->fix.id);
 
-       } else {
-               drm_fb_helper_set_par(info);
        }
 
        /* Switch back to kernel console on panic */
@@ -1436,7 +1434,9 @@ int drm_fb_helper_hotplug_event(struct drm_fb_helper *fb_helper)
        drm_setup_crtcs(fb_helper);
        drm_modeset_unlock_all(dev);
 
-       return drm_fb_helper_single_fb_probe(fb_helper, bpp_sel);
+       drm_fb_helper_set_par(fb_helper->fbdev);
+
+       return 0;
 }
 EXPORT_SYMBOL(drm_fb_helper_hotplug_event);