132f9402dSAnusha Srivatsa /* SPDX-License-Identifier: MIT */
232f9402dSAnusha Srivatsa /*
332f9402dSAnusha Srivatsa  * Copyright © 2019 Intel Corporation
432f9402dSAnusha Srivatsa  */
532f9402dSAnusha Srivatsa 
632f9402dSAnusha Srivatsa #ifndef __INTEL_DMC_H__
732f9402dSAnusha Srivatsa #define __INTEL_DMC_H__
832f9402dSAnusha Srivatsa 
9*e81a3c12SJani Nikula #include <linux/types.h>
103ed131e5SAnusha Srivatsa 
115efde05fSJani Nikula struct drm_i915_error_state_buf;
1232f9402dSAnusha Srivatsa struct drm_i915_private;
133af2ff08SImre Deak enum pipe;
143af2ff08SImre Deak 
15ac7215c4SJani Nikula void intel_dmc_init(struct drm_i915_private *i915);
1632f9402dSAnusha Srivatsa void intel_dmc_load_program(struct drm_i915_private *i915);
17fa6a4cdeSImre Deak void intel_dmc_disable_program(struct drm_i915_private *i915);
183af2ff08SImre Deak void intel_dmc_enable_pipe(struct drm_i915_private *i915, enum pipe pipe);
193af2ff08SImre Deak void intel_dmc_disable_pipe(struct drm_i915_private *i915, enum pipe pipe);
20ac7215c4SJani Nikula void intel_dmc_fini(struct drm_i915_private *i915);
21ac7215c4SJani Nikula void intel_dmc_suspend(struct drm_i915_private *i915);
22ac7215c4SJani Nikula void intel_dmc_resume(struct drm_i915_private *i915);
2303256487SAnusha Srivatsa bool intel_dmc_has_payload(struct drm_i915_private *i915);
24f0147745SJani Nikula void intel_dmc_debugfs_register(struct drm_i915_private *i915);
255efde05fSJani Nikula void intel_dmc_print_error_state(struct drm_i915_error_state_buf *m,
265efde05fSJani Nikula 				 struct drm_i915_private *i915);
2732f9402dSAnusha Srivatsa 
28790daf74SJani Nikula void assert_dmc_loaded(struct drm_i915_private *i915);
29790daf74SJani Nikula 
3032f9402dSAnusha Srivatsa #endif /* __INTEL_DMC_H__ */
31