]> Git Repo - linux.git/blob - drivers/gpu/drm/i915/display/intel_modeset_lock.c
net: wan: Add framer framework support
[linux.git] / drivers / gpu / drm / i915 / display / intel_modeset_lock.c
1 // SPDX-License-Identifier: MIT
2 /*
3  * Copyright © 2023 Intel Corporation
4  */
5
6 #include <drm/drm_modeset_lock.h>
7
8 #include "intel_display_types.h"
9 #include "intel_modeset_lock.h"
10
11 void _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
23 bool _intel_modeset_lock_loop(int *ret)
24 {
25         if (*ret == -EDEADLK) {
26                 *ret = 0;
27                 return true;
28         }
29
30         return false;
31 }
32
33 void _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 }
This page took 0.035029 seconds and 4 git commands to generate.