| 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_device; |
| 12 | struct drm_i915_gem_object; |
| 13 | struct drm_i915_private; |
| 14 | struct intel_stolen_node; |
| 15 | |
| 16 | int i915_gem_stolen_insert_node(struct intel_stolen_node *node, u64 size, |
| 17 | unsigned alignment); |
| 18 | int i915_gem_stolen_insert_node_in_range(struct intel_stolen_node *node, u64 size, |
| 19 | unsigned alignment, u64 start, |
| 20 | u64 end); |
| 21 | void i915_gem_stolen_remove_node(struct intel_stolen_node *node); |
| 22 | struct intel_memory_region * |
| 23 | i915_gem_stolen_smem_setup(struct drm_i915_private *i915, u16 type, |
| 24 | u16 instance); |
| 25 | struct intel_memory_region * |
| 26 | i915_gem_stolen_lmem_setup(struct drm_i915_private *i915, u16 type, |
| 27 | u16 instance); |
| 28 | |
| 29 | struct drm_i915_gem_object * |
| 30 | i915_gem_object_create_stolen(struct drm_i915_private *i915, |
| 31 | resource_size_t size); |
| 32 | |
| 33 | bool i915_gem_object_is_stolen(const struct drm_i915_gem_object *obj); |
| 34 | |
| 35 | #define I915_GEM_STOLEN_BIAS SZ_128K |
| 36 | |
| 37 | bool i915_gem_stolen_initialized(struct drm_device *drm); |
| 38 | u64 i915_gem_stolen_area_address(struct drm_device *drm); |
| 39 | u64 i915_gem_stolen_area_size(struct drm_device *drm); |
| 40 | |
| 41 | u64 i915_gem_stolen_node_address(const struct intel_stolen_node *node); |
| 42 | |
| 43 | bool i915_gem_stolen_node_allocated(const struct intel_stolen_node *node); |
| 44 | u64 i915_gem_stolen_node_offset(const struct intel_stolen_node *node); |
| 45 | u64 i915_gem_stolen_node_size(const struct intel_stolen_node *node); |
| 46 | |
| 47 | struct intel_stolen_node *i915_gem_stolen_node_alloc(struct drm_device *drm); |
| 48 | void i915_gem_stolen_node_free(const struct intel_stolen_node *node); |
| 49 | |
| 50 | #endif /* __I915_GEM_STOLEN_H__ */ |
| 51 | |