1 /* SPDX-License-Identifier: MIT */ 2 /* 3 * Copyright © 2019 Intel Corporation 4 */ 5 6 #ifndef __I915_GEM_STOLEN_H__ 7 #define __I915_GEM_STOLEN_H__ 8 9 #include <linux/types.h> 10 11 struct drm_i915_private; 12 struct drm_mm_node; 13 struct drm_i915_gem_object; 14 15 int i915_gem_stolen_insert_node(struct drm_i915_private *dev_priv, 16 struct drm_mm_node *node, u64 size, 17 unsigned alignment); 18 int i915_gem_stolen_insert_node_in_range(struct drm_i915_private *dev_priv, 19 struct drm_mm_node *node, u64 size, 20 unsigned alignment, u64 start, 21 u64 end); 22 void i915_gem_stolen_remove_node(struct drm_i915_private *dev_priv, 23 struct drm_mm_node *node); 24 struct intel_memory_region * 25 i915_gem_stolen_smem_setup(struct drm_i915_private *i915, u16 type, 26 u16 instance); 27 struct intel_memory_region * 28 i915_gem_stolen_lmem_setup(struct drm_i915_private *i915, u16 type, 29 u16 instance); 30 31 struct drm_i915_gem_object * 32 i915_gem_object_create_stolen(struct drm_i915_private *dev_priv, 33 resource_size_t size); 34 struct drm_i915_gem_object * 35 i915_gem_object_create_stolen_for_preallocated(struct drm_i915_private *dev_priv, 36 resource_size_t stolen_offset, 37 resource_size_t size); 38 39 bool i915_gem_object_is_stolen(const struct drm_i915_gem_object *obj); 40 41 #define I915_GEM_STOLEN_BIAS SZ_128K 42 43 #endif /* __I915_GEM_STOLEN_H__ */ 44