[RFCv3 11/14] drm: convert crtc to properties/state
Maarten Lankhorst
maarten.lankhorst at canonical.com
Thu Nov 21 06:25:40 PST 2013
op 20-11-13 21:48, Rob Clark schreef:
> +int drm_modeset_lock_crtc(struct drm_crtc *crtc, void *state)
> +{
> + // ugg, this makes atomic_helper mandatory.. not really
> + // sure yet whether I should care, or just simplify things
> + // and require that drivers use or extend atomic_helper:
> + struct drm_atomic_helper_state *a = state;
> + struct ww_acquire_ctx *ww_ctx = NULL;
> + int ret;
> +
> + if (a) {
> + if (a->flags & DRM_MODE_ATOMIC_NOLOCK)
> + return 0;
> + ww_ctx = &a->ww_ctx;
> + }
> +
> + ret = ww_mutex_lock(&crtc->mutex, ww_ctx);
> + if (a && !ret) {
> + WARN_ON(!list_empty(&crtc->lock_head));
> + list_add(&crtc->lock_head, &a->locked_crtcs);
> + }
> +
> + return ret;
> +}
> +EXPORT_SYMBOL(drm_modeset_lock_crtc);
ww_mutex_lock cannot fail if ww_ctx == NULL, so please make this inline?
static inline drm_modeset_lock_crtc(...) { if (!ctx) return ww_mutex_lock(lock, NULL); else return __drm_modeset_lock_crtc_state(...); } or inline the latter too.
More information about the dri-devel
mailing list