1 /* SPDX-License-Identifier: MIT */
3 * Copyright © 2019 Intel Corporation
6 #ifndef __INTEL_DMC_H__
7 #define __INTEL_DMC_H__
9 #include "i915_reg_defs.h"
10 #include "intel_wakeref.h"
11 #include <linux/workqueue.h>
13 struct drm_i915_error_state_buf;
14 struct drm_i915_private;
26 struct work_struct work;
29 u32 max_fw_size; /* bytes */
33 i915_reg_t mmioaddr[20];
37 u32 dmc_fw_size; /*dwords */
40 } dmc_info[DMC_FW_MAX];
45 intel_wakeref_t wakeref;
48 void intel_dmc_ucode_init(struct drm_i915_private *i915);
49 void intel_dmc_load_program(struct drm_i915_private *i915);
50 void intel_dmc_disable_program(struct drm_i915_private *i915);
51 void intel_dmc_ucode_fini(struct drm_i915_private *i915);
52 void intel_dmc_ucode_suspend(struct drm_i915_private *i915);
53 void intel_dmc_ucode_resume(struct drm_i915_private *i915);
54 bool intel_dmc_has_payload(struct drm_i915_private *i915);
55 void intel_dmc_debugfs_register(struct drm_i915_private *i915);
56 void intel_dmc_print_error_state(struct drm_i915_error_state_buf *m,
57 struct drm_i915_private *i915);
59 void assert_dmc_loaded(struct drm_i915_private *i915);
61 #endif /* __INTEL_DMC_H__ */