drm/fb-helper: streamline drm_fb_helper_single_fb_probe
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Mon, 21 Jan 2013 22:38:37 +0000 (23:38 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 13 Feb 2013 23:07:57 +0000 (00:07 +0100)
No need to check whether we've allocated a new fb since we're not
always doing that. Also, we always need to register the fbdev and add
it to the panic notifier.

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

index 535c2cadf4d1c3329e91b45b4cd2d7a5fa9bc182..e0d4b04c0eb5e9fa8062e94abbf599e47ecb3f5e 100644 (file)
@@ -752,10 +752,14 @@ int drm_fb_helper_pan_display(struct fb_var_screeninfo *var,
 }
 EXPORT_SYMBOL(drm_fb_helper_pan_display);
 
+/*
+ * Allocates the backing storage through the ->fb_probe callback and then
+ * registers the fbdev and sets up the panic notifier.
+ */
 static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper,
                                         int preferred_bpp)
 {
-       int new_fb = 0;
+       int ret = 0;
        int crtc_count = 0;
        int i;
        struct fb_info *info;
@@ -833,9 +837,9 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper,
        }
 
        /* push down into drivers */
-       new_fb = (*fb_helper->funcs->fb_probe)(fb_helper, &sizes);
-       if (new_fb < 0)
-               return new_fb;
+       ret = (*fb_helper->funcs->fb_probe)(fb_helper, &sizes);
+       if (ret < 0)
+               return ret;
 
        info = fb_helper->fbdev;
 
@@ -851,15 +855,12 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper,
                        fb_helper->crtc_info[i].mode_set.fb = fb_helper->fb;
 
 
-       if (new_fb) {
-               info->var.pixclock = 0;
-               if (register_framebuffer(info) < 0)
-                       return -EINVAL;
-
-               dev_info(fb_helper->dev->dev, "fb%d: %s frame buffer device\n",
-                               info->node, info->fix.id);
+       info->var.pixclock = 0;
+       if (register_framebuffer(info) < 0)
+               return -EINVAL;
 
-       }
+       dev_info(fb_helper->dev->dev, "fb%d: %s frame buffer device\n",
+                       info->node, info->fix.id);
 
        /* Switch back to kernel console on panic */
        /* multi card linked list maybe */
@@ -869,8 +870,8 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper,
                                               &paniced);
                register_sysrq_key('v', &sysrq_drm_fb_helper_restore_op);
        }
-       if (new_fb)
-               list_add(&fb_helper->kernel_fb_list, &kernel_fb_helper_list);
+
+       list_add(&fb_helper->kernel_fb_list, &kernel_fb_helper_list);
 
        return 0;
 }