1be80bc36SJani Nikula /* SPDX-License-Identifier: MIT */ 2be80bc36SJani Nikula /* 3be80bc36SJani Nikula * Copyright © 2019 Intel Corporation 4be80bc36SJani Nikula */ 5be80bc36SJani Nikula 6be80bc36SJani Nikula #ifndef __I915_GEM_SHRINKER_H__ 7be80bc36SJani Nikula #define __I915_GEM_SHRINKER_H__ 8be80bc36SJani Nikula 9be80bc36SJani Nikula #include <linux/bits.h> 10be80bc36SJani Nikula 11be80bc36SJani Nikula struct drm_i915_private; 12*cf41a8f1SMaarten Lankhorst struct i915_gem_ww_ctx; 13be80bc36SJani Nikula struct mutex; 14be80bc36SJani Nikula 15be80bc36SJani Nikula /* i915_gem_shrinker.c */ 16*cf41a8f1SMaarten Lankhorst unsigned long i915_gem_shrink(struct i915_gem_ww_ctx *ww, 17*cf41a8f1SMaarten Lankhorst struct drm_i915_private *i915, 18be80bc36SJani Nikula unsigned long target, 19be80bc36SJani Nikula unsigned long *nr_scanned, 20be80bc36SJani Nikula unsigned flags); 21be80bc36SJani Nikula #define I915_SHRINK_UNBOUND BIT(0) 22be80bc36SJani Nikula #define I915_SHRINK_BOUND BIT(1) 23be80bc36SJani Nikula #define I915_SHRINK_ACTIVE BIT(2) 24be80bc36SJani Nikula #define I915_SHRINK_VMAPS BIT(3) 25be80bc36SJani Nikula #define I915_SHRINK_WRITEBACK BIT(4) 26be80bc36SJani Nikula 27be80bc36SJani Nikula unsigned long i915_gem_shrink_all(struct drm_i915_private *i915); 28be80bc36SJani Nikula void i915_gem_driver_register__shrinker(struct drm_i915_private *i915); 29be80bc36SJani Nikula void i915_gem_driver_unregister__shrinker(struct drm_i915_private *i915); 30be80bc36SJani Nikula void i915_gem_shrinker_taints_mutex(struct drm_i915_private *i915, 31be80bc36SJani Nikula struct mutex *mutex); 32be80bc36SJani Nikula 33be80bc36SJani Nikula #endif /* __I915_GEM_SHRINKER_H__ */ 34