[PATCH] drm/fb_helper: move deferred fb checking into restore mode (v2)

Daniel Vetter daniel at ffwll.ch
Mon Dec 8 00:45:05 PST 2014


On Mon, Dec 08, 2014 at 01:38:59PM +1000, Dave Airlie wrote:
> From: Dave Airlie <airlied at redhat.com>
> 
> On MST systems the monitors don't appear when we set the fb up,
> but plymouth opens the drm device and holds it open while they
> come up, when plymouth finishes and lastclose gets called we
> don't do the delayed fb probe, so the monitor never appears on the
> console.
> 
> Fix this by moving the delayed checking into the mode restore.
> 
> v2: Daniel suggested that ->delayed_hotplug is set under
> the mode_config mutex, so we should check it under that as
> well, while we are in the area.
> 
> Signed-off-by: Dave Airlie <airlied at redhat.com>

Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch>

> ---
>  drivers/gpu/drm/drm_fb_helper.c | 13 +++++++++----
>  1 file changed, 9 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
> index 37955b0..52ce26d 100644
> --- a/drivers/gpu/drm/drm_fb_helper.c
> +++ b/drivers/gpu/drm/drm_fb_helper.c
> @@ -347,9 +347,18 @@ bool drm_fb_helper_restore_fbdev_mode_unlocked(struct drm_fb_helper *fb_helper)
>  {
>  	struct drm_device *dev = fb_helper->dev;
>  	bool ret;
> +	bool do_delayed = false;
> +
>  	drm_modeset_lock_all(dev);
>  	ret = restore_fbdev_mode(fb_helper);
> +
> +	do_delayed = fb_helper->delayed_hotplug;
> +	if (do_delayed)
> +		fb_helper->delayed_hotplug = false;
>  	drm_modeset_unlock_all(dev);
> +
> +	if (do_delayed)
> +		drm_fb_helper_hotplug_event(fb_helper);
>  	return ret;
>  }
>  EXPORT_SYMBOL(drm_fb_helper_restore_fbdev_mode_unlocked);
> @@ -888,10 +897,6 @@ int drm_fb_helper_set_par(struct fb_info *info)
>  
>  	drm_fb_helper_restore_fbdev_mode_unlocked(fb_helper);
>  
> -	if (fb_helper->delayed_hotplug) {
> -		fb_helper->delayed_hotplug = false;
> -		drm_fb_helper_hotplug_event(fb_helper);
> -	}
>  	return 0;
>  }
>  EXPORT_SYMBOL(drm_fb_helper_set_par);
> -- 
> 2.1.0
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch


More information about the dri-devel mailing list