xref: /linux/drivers/gpu/drm/i915/display/intel_dmc.h (revision e78f70bad29c5ae1e1076698b690b15794e9b81e)
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 
11 enum pipe;
12 struct drm_printer;
13 struct intel_display;
14 struct intel_dmc_snapshot;
15 
16 void intel_dmc_init(struct intel_display *display);
17 void intel_dmc_load_program(struct intel_display *display);
18 void intel_dmc_disable_program(struct intel_display *display);
19 void intel_dmc_enable_pipe(struct intel_display *display, enum pipe pipe);
20 void intel_dmc_disable_pipe(struct intel_display *display, enum pipe pipe);
21 void intel_dmc_block_pkgc(struct intel_display *display, enum pipe pipe,
22 			  bool block);
23 void intel_dmc_start_pkgc_exit_at_start_of_undelayed_vblank(struct intel_display *display,
24 							    enum pipe pipe, bool enable);
25 void intel_dmc_fini(struct intel_display *display);
26 void intel_dmc_suspend(struct intel_display *display);
27 void intel_dmc_resume(struct intel_display *display);
28 bool intel_dmc_has_payload(struct intel_display *display);
29 void intel_dmc_debugfs_register(struct intel_display *display);
30 
31 struct intel_dmc_snapshot *intel_dmc_snapshot_capture(struct intel_display *display);
32 void intel_dmc_snapshot_print(const struct intel_dmc_snapshot *snapshot, struct drm_printer *p);
33 void intel_dmc_update_dc6_allowed_count(struct intel_display *display, bool start_tracking);
34 
35 void assert_dmc_loaded(struct intel_display *display);
36 
37 #endif /* __INTEL_DMC_H__ */
38