116e87459SChris Wilson /* SPDX-License-Identifier: MIT */ 216e87459SChris Wilson /* 316e87459SChris Wilson * Copyright © 2014-2018 Intel Corporation 416e87459SChris Wilson */ 516e87459SChris Wilson 616e87459SChris Wilson #ifndef INTEL_GT_BUFFER_POOL_H 716e87459SChris Wilson #define INTEL_GT_BUFFER_POOL_H 816e87459SChris Wilson 916e87459SChris Wilson #include <linux/types.h> 1016e87459SChris Wilson 1116e87459SChris Wilson #include "i915_active.h" 1216e87459SChris Wilson #include "intel_gt_buffer_pool_types.h" 1316e87459SChris Wilson 1416e87459SChris Wilson struct intel_gt; 1516e87459SChris Wilson struct i915_request; 1616e87459SChris Wilson 1716e87459SChris Wilson struct intel_gt_buffer_pool_node * 188f47c8c3SMatthew Auld intel_gt_get_buffer_pool(struct intel_gt *gt, size_t size, 198f47c8c3SMatthew Auld enum i915_map_type type); 2016e87459SChris Wilson 21*c9398775SMaarten Lankhorst void intel_gt_buffer_pool_mark_used(struct intel_gt_buffer_pool_node *node); 22*c9398775SMaarten Lankhorst 2316e87459SChris Wilson static inline int intel_gt_buffer_pool_mark_active(struct intel_gt_buffer_pool_node * node,struct i915_request * rq)2416e87459SChris Wilsonintel_gt_buffer_pool_mark_active(struct intel_gt_buffer_pool_node *node, 2516e87459SChris Wilson struct i915_request *rq) 2616e87459SChris Wilson { 27*c9398775SMaarten Lankhorst /* did we call mark_used? */ 28*c9398775SMaarten Lankhorst GEM_WARN_ON(!node->pinned); 29*c9398775SMaarten Lankhorst 3016e87459SChris Wilson return i915_active_add_request(&node->active, rq); 3116e87459SChris Wilson } 3216e87459SChris Wilson 3316e87459SChris Wilson static inline void intel_gt_buffer_pool_put(struct intel_gt_buffer_pool_node * node)3416e87459SChris Wilsonintel_gt_buffer_pool_put(struct intel_gt_buffer_pool_node *node) 3516e87459SChris Wilson { 3616e87459SChris Wilson i915_active_release(&node->active); 3716e87459SChris Wilson } 3816e87459SChris Wilson 3916e87459SChris Wilson void intel_gt_init_buffer_pool(struct intel_gt *gt); 4016e87459SChris Wilson void intel_gt_flush_buffer_pool(struct intel_gt *gt); 4116e87459SChris Wilson void intel_gt_fini_buffer_pool(struct intel_gt *gt); 4216e87459SChris Wilson 4316e87459SChris Wilson #endif /* INTEL_GT_BUFFER_POOL_H */ 44