On Thu, Jan 24, 2013 at 10:20 AM, Daniel Vetter <daniel.vetter@xxxxxxxx> wrote: > 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. hmm, how is this not leading to a register_framebuffer() on every hotplug event? BR, -R > > Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx> > --- > drivers/gpu/drm/drm_fb_helper.c | 29 +++++++++++++++-------------- > 1 file changed, 15 insertions(+), 14 deletions(-) > > diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c > index 90c1117..edbfcde 100644 > --- a/drivers/gpu/drm/drm_fb_helper.c > +++ b/drivers/gpu/drm/drm_fb_helper.c > @@ -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; > } > -- > 1.7.10.4 > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/dri-devel _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel