[PATCH] drm/helper: lock all around force mode restore

Daniel Vetter daniel at ffwll.ch
Fri Mar 21 00:07:21 PDT 2014


On Fri, Mar 21, 2014 at 10:46:59AM +1000, Dave Airlie wrote:
> From: Dave Airlie <airlied at redhat.com>
> 
> Since Daniel documented things with a sledge hammer, we got lots of
> nice backtraces in suspend/resume operations, I've check the callers
> of this and they all seems safe to me,
> 
> This fixes one set of warns I reported.
> 
> Signed-off-by: Dave Airlie <airlied at redhat.com>

Some drivers have some other modeset gunk around the call to this helper
(like cursor frobbing or dpms frobbing) which probably should be moved
either to their crtc enable hook or into the core crtc helpers. So I don't
think pushing the locking out intro drivers is that useful

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

> ---
>  drivers/gpu/drm/drm_crtc_helper.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c
> index 5d2b7a5..c0f2d62 100644
> --- a/drivers/gpu/drm/drm_crtc_helper.c
> +++ b/drivers/gpu/drm/drm_crtc_helper.c
> @@ -983,6 +983,7 @@ void drm_helper_resume_force_mode(struct drm_device *dev)
>  	int encoder_dpms;
>  	bool ret;
>  
> +	drm_modeset_lock_all(dev);
>  	list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
>  
>  		if (!crtc->enabled)
> @@ -1017,6 +1018,7 @@ void drm_helper_resume_force_mode(struct drm_device *dev)
>  
>  	/* disable the unused connectors while restoring the modesetting */
>  	__drm_helper_disable_unused_functions(dev);
> +	drm_modeset_unlock_all(dev);
>  }
>  EXPORT_SYMBOL(drm_helper_resume_force_mode);
>  
> -- 
> 1.8.3.1
> 
> _______________________________________________
> 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