Linux Audio

Check our new training course

Loading...
v5.14.15
 1/* SPDX-License-Identifier: MIT */
 2/*
 3 * Copyright © 2019 Intel Corporation
 4 */
 5
 6#ifndef __INTEL_DMC_H__
 7#define __INTEL_DMC_H__
 8
 9#include "i915_reg.h"
10#include "intel_wakeref.h"
11#include <linux/workqueue.h>
12
 
13struct drm_i915_private;
 
14
15#define DMC_VERSION(major, minor)	((major) << 16 | (minor))
16#define DMC_VERSION_MAJOR(version)	((version) >> 16)
17#define DMC_VERSION_MINOR(version)	((version) & 0xffff)
18
19struct intel_dmc {
20	struct work_struct work;
21	const char *fw_path;
22	u32 required_version;
23	u32 max_fw_size; /* bytes */
24	u32 *dmc_payload;
25	u32 dmc_fw_size; /* dwords */
26	u32 version;
27	u32 mmio_count;
28	i915_reg_t mmioaddr[20];
29	u32 mmiodata[20];
30	u32 dc_state;
31	u32 target_dc_state;
32	u32 allowed_dc_mask;
33	intel_wakeref_t wakeref;
34};
35
36void intel_dmc_ucode_init(struct drm_i915_private *i915);
37void intel_dmc_load_program(struct drm_i915_private *i915);
38void intel_dmc_ucode_fini(struct drm_i915_private *i915);
39void intel_dmc_ucode_suspend(struct drm_i915_private *i915);
40void intel_dmc_ucode_resume(struct drm_i915_private *i915);
 
 
 
41bool intel_dmc_has_payload(struct drm_i915_private *i915);
 
 
 
 
 
42
43#endif /* __INTEL_DMC_H__ */
v6.8
 1/* SPDX-License-Identifier: MIT */
 2/*
 3 * Copyright © 2019 Intel Corporation
 4 */
 5
 6#ifndef __INTEL_DMC_H__
 7#define __INTEL_DMC_H__
 8
 9#include <linux/types.h>
 
 
10
11struct drm_i915_error_state_buf;
12struct drm_i915_private;
13enum pipe;
14
15void intel_dmc_init(struct drm_i915_private *i915);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16void intel_dmc_load_program(struct drm_i915_private *i915);
17void intel_dmc_disable_program(struct drm_i915_private *i915);
18void intel_dmc_enable_pipe(struct drm_i915_private *i915, enum pipe pipe);
19void intel_dmc_disable_pipe(struct drm_i915_private *i915, enum pipe pipe);
20void intel_dmc_fini(struct drm_i915_private *i915);
21void intel_dmc_suspend(struct drm_i915_private *i915);
22void intel_dmc_resume(struct drm_i915_private *i915);
23bool intel_dmc_has_payload(struct drm_i915_private *i915);
24void intel_dmc_debugfs_register(struct drm_i915_private *i915);
25void intel_dmc_print_error_state(struct drm_i915_error_state_buf *m,
26				 struct drm_i915_private *i915);
27
28void assert_dmc_loaded(struct drm_i915_private *i915);
29
30#endif /* __INTEL_DMC_H__ */