1b908be54SMatthew Auld /* SPDX-License-Identifier: MIT */
2b908be54SMatthew Auld /*
3b908be54SMatthew Auld  * Copyright © 2019 Intel Corporation
4b908be54SMatthew Auld  */
5b908be54SMatthew Auld 
6b908be54SMatthew Auld #ifndef __I915_GEM_LMEM_H
7b908be54SMatthew Auld #define __I915_GEM_LMEM_H
8b908be54SMatthew Auld 
9b908be54SMatthew Auld #include <linux/types.h>
10b908be54SMatthew Auld 
11b908be54SMatthew Auld struct drm_i915_private;
12b908be54SMatthew Auld struct drm_i915_gem_object;
13b908be54SMatthew Auld struct intel_memory_region;
14b908be54SMatthew Auld 
154bc91dbdSAnusha Srivatsa void __iomem *
164bc91dbdSAnusha Srivatsa i915_gem_object_lmem_io_map(struct drm_i915_gem_object *obj,
174bc91dbdSAnusha Srivatsa 			    unsigned long n,
184bc91dbdSAnusha Srivatsa 			    unsigned long size);
194bc91dbdSAnusha Srivatsa 
20b908be54SMatthew Auld bool i915_gem_object_is_lmem(struct drm_i915_gem_object *obj);
21b908be54SMatthew Auld 
220ff37575SThomas Hellström bool __i915_gem_object_is_lmem(struct drm_i915_gem_object *obj);
230ff37575SThomas Hellström 
24b908be54SMatthew Auld struct drm_i915_gem_object *
25*7acbbc7cSDaniele Ceraolo Spurio i915_gem_object_create_lmem_from_data(struct drm_i915_private *i915,
26*7acbbc7cSDaniele Ceraolo Spurio 				      const void *data, size_t size);
27*7acbbc7cSDaniele Ceraolo Spurio 
28*7acbbc7cSDaniele Ceraolo Spurio struct drm_i915_gem_object *
29d22632c8SMatthew Auld __i915_gem_object_create_lmem_with_ps(struct drm_i915_private *i915,
30d22632c8SMatthew Auld 				      resource_size_t size,
31d22632c8SMatthew Auld 				      resource_size_t page_size,
32d22632c8SMatthew Auld 				      unsigned int flags);
33d22632c8SMatthew Auld struct drm_i915_gem_object *
34b908be54SMatthew Auld i915_gem_object_create_lmem(struct drm_i915_private *i915,
35b908be54SMatthew Auld 			    resource_size_t size,
36b908be54SMatthew Auld 			    unsigned int flags);
37b908be54SMatthew Auld 
38b908be54SMatthew Auld #endif /* !__I915_GEM_LMEM_H */
39