Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: MIT */
0002 /*
0003  * Copyright © 2019 Intel Corporation
0004  */
0005 
0006 #ifndef __I915_GEM_STOLEN_H__
0007 #define __I915_GEM_STOLEN_H__
0008 
0009 #include <linux/types.h>
0010 
0011 struct drm_i915_private;
0012 struct drm_mm_node;
0013 struct drm_i915_gem_object;
0014 
0015 int i915_gem_stolen_insert_node(struct drm_i915_private *dev_priv,
0016                 struct drm_mm_node *node, u64 size,
0017                 unsigned alignment);
0018 int i915_gem_stolen_insert_node_in_range(struct drm_i915_private *dev_priv,
0019                      struct drm_mm_node *node, u64 size,
0020                      unsigned alignment, u64 start,
0021                      u64 end);
0022 void i915_gem_stolen_remove_node(struct drm_i915_private *dev_priv,
0023                  struct drm_mm_node *node);
0024 struct intel_memory_region *
0025 i915_gem_stolen_smem_setup(struct drm_i915_private *i915, u16 type,
0026                u16 instance);
0027 struct intel_memory_region *
0028 i915_gem_stolen_lmem_setup(struct drm_i915_private *i915, u16 type,
0029                u16 instance);
0030 
0031 struct drm_i915_gem_object *
0032 i915_gem_object_create_stolen(struct drm_i915_private *dev_priv,
0033                   resource_size_t size);
0034 
0035 bool i915_gem_object_is_stolen(const struct drm_i915_gem_object *obj);
0036 
0037 #define I915_GEM_STOLEN_BIAS SZ_128K
0038 
0039 #endif /* __I915_GEM_STOLEN_H__ */