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