FILE
intel_global_state.h
File preview with syntax highlighting.
linux-6.19.14/drivers/gpu/drm/i915/display/intel_global_state.h
1/* SPDX-License-Identifier: MIT */ 2/* 3 * Copyright © 2020 Intel Corporation 4 */ 5 6#ifndef __INTEL_GLOBAL_STATE_H__ 7#define __INTEL_GLOBAL_STATE_H__ 8 9#include <linux/kref.h> 10#include <linux/list.h> 11 12struct intel_atomic_state; 13struct intel_display; 14struct intel_global_commit; 15struct intel_global_obj; 16struct intel_global_state; 17 18struct intel_global_state_funcs { 19 struct intel_global_state *(*atomic_duplicate_state)(struct intel_global_obj *obj); 20 void (*atomic_destroy_state)(struct intel_global_obj *obj, 21 struct intel_global_state *state); 22}; 23 24struct intel_global_obj { 25 struct list_head head; 26 struct intel_global_state *state; 27 const struct intel_global_state_funcs *funcs; 28}; 29 30struct intel_global_state { 31 struct intel_global_obj *obj; 32 struct intel_atomic_state *state; 33 struct intel_global_commit *commit; 34 struct kref ref; 35 bool changed, serialized; 36}; 37 38void intel_atomic_global_obj_init(struct intel_display *display, 39 struct intel_global_obj *obj, 40 struct intel_global_state *state, 41 const struct intel_global_state_funcs *funcs); 42void intel_atomic_global_obj_cleanup(struct intel_display *display); 43 44struct intel_global_state * 45intel_atomic_get_global_obj_state(struct intel_atomic_state *state, 46 struct intel_global_obj *obj); 47struct intel_global_state * 48intel_atomic_get_old_global_obj_state(struct intel_atomic_state *state, 49 struct intel_global_obj *obj); 50struct intel_global_state * 51intel_atomic_get_new_global_obj_state(struct intel_atomic_state *state, 52 struct intel_global_obj *obj); 53 54void intel_atomic_swap_global_state(struct intel_atomic_state *state); 55void intel_atomic_clear_global_state(struct intel_atomic_state *state); 56int intel_atomic_lock_global_state(struct intel_global_state *obj_state); 57int intel_atomic_serialize_global_state(struct intel_global_state *obj_state); 58 59int intel_atomic_global_state_setup_commit(struct intel_atomic_state *state); 60void intel_atomic_global_state_commit_done(struct intel_atomic_state *state); 61int intel_atomic_global_state_wait_for_dependencies(struct intel_atomic_state *state); 62 63bool intel_atomic_global_state_is_serialized(struct intel_atomic_state *state); 64 65#endif
~/
Read-only file preview.