[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