brintos

brintos / linux-shallow public Read only

0
0
Text · 922 B · 8fb6fd8 Raw
51 lines · c
1// SPDX-License-Identifier: MIT2/*3 * Copyright © 2023 Intel Corporation4 */5 6#include <drm/drm_modeset_lock.h>7 8#include "intel_display_types.h"9#include "intel_modeset_lock.h"10 11void _intel_modeset_lock_begin(struct drm_modeset_acquire_ctx *ctx,12			       struct intel_atomic_state *state,13			       unsigned int flags, int *ret)14{15	drm_modeset_acquire_init(ctx, flags);16 17	if (state)18		state->base.acquire_ctx = ctx;19 20	*ret = -EDEADLK;21}22 23bool _intel_modeset_lock_loop(int *ret)24{25	if (*ret == -EDEADLK) {26		*ret = 0;27		return true;28	}29 30	return false;31}32 33void _intel_modeset_lock_end(struct drm_modeset_acquire_ctx *ctx,34			     struct intel_atomic_state *state,35			     int *ret)36{37	if (*ret == -EDEADLK) {38		if (state)39			drm_atomic_state_clear(&state->base);40 41		*ret = drm_modeset_backoff(ctx);42		if (*ret == 0) {43			*ret = -EDEADLK;44			return;45		}46	}47 48	drm_modeset_drop_locks(ctx);49	drm_modeset_acquire_fini(ctx);50}51