1814c8757SDave Airlie /* SPDX-License-Identifier: MIT */
2814c8757SDave Airlie /*
3814c8757SDave Airlie  * Copyright © 2021 Intel Corporation
4814c8757SDave Airlie  */
5814c8757SDave Airlie 
6814c8757SDave Airlie #ifndef __INTEL_FB_PIN_H__
7814c8757SDave Airlie #define __INTEL_FB_PIN_H__
8814c8757SDave Airlie 
9814c8757SDave Airlie #include <linux/types.h>
10814c8757SDave Airlie 
11814c8757SDave Airlie struct drm_framebuffer;
12814c8757SDave Airlie struct i915_vma;
13814c8757SDave Airlie struct intel_plane_state;
14*3bb6a442SNiranjana Vishwanathapura struct i915_gtt_view;
15814c8757SDave Airlie 
16814c8757SDave Airlie struct i915_vma *
17814c8757SDave Airlie intel_pin_and_fence_fb_obj(struct drm_framebuffer *fb,
18814c8757SDave Airlie 			   bool phys_cursor,
19*3bb6a442SNiranjana Vishwanathapura 			   const struct i915_gtt_view *view,
20814c8757SDave Airlie 			   bool uses_fence,
21814c8757SDave Airlie 			   unsigned long *out_flags);
22814c8757SDave Airlie 
23814c8757SDave Airlie void intel_unpin_fb_vma(struct i915_vma *vma, unsigned long flags);
24814c8757SDave Airlie 
25814c8757SDave Airlie int intel_plane_pin_fb(struct intel_plane_state *plane_state);
26814c8757SDave Airlie void intel_plane_unpin_fb(struct intel_plane_state *old_plane_state);
27814c8757SDave Airlie 
28814c8757SDave Airlie #endif
29