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 enum pipedmc_event_id; 13 struct drm_printer; 14 struct intel_crtc; 15 struct intel_crtc_state; 16 struct intel_display; 17 struct intel_dmc_snapshot; 18 19 void intel_dmc_init(struct intel_display *display); 20 void intel_dmc_load_program(struct intel_display *display); 21 void intel_dmc_wait_fw_load(struct intel_display *display); 22 void intel_dmc_disable_program(struct intel_display *display); 23 void intel_dmc_enable_pipe(const struct intel_crtc_state *crtc_state); 24 void intel_dmc_disable_pipe(const struct intel_crtc_state *crtc_state); 25 void intel_dmc_block_pkgc(struct intel_display *display, enum pipe pipe, 26 bool block); 27 void intel_dmc_start_pkgc_exit_at_start_of_undelayed_vblank(struct intel_display *display, 28 enum pipe pipe, bool enable); 29 void intel_dmc_fini(struct intel_display *display); 30 void intel_dmc_suspend(struct intel_display *display); 31 void intel_dmc_resume(struct intel_display *display); 32 bool intel_dmc_has_payload(struct intel_display *display); 33 void intel_dmc_debugfs_register(struct intel_display *display); 34 35 struct intel_dmc_snapshot *intel_dmc_snapshot_capture(struct intel_display *display); 36 void intel_dmc_snapshot_print(const struct intel_dmc_snapshot *snapshot, struct drm_printer *p); 37 void intel_dmc_update_dc6_allowed_count(struct intel_display *display, bool start_tracking); 38 39 void assert_main_dmc_loaded(struct intel_display *display); 40 41 void intel_pipedmc_irq_handler(struct intel_display *display, enum pipe pipe); 42 43 u32 intel_pipedmc_start_mmioaddr(struct intel_crtc *crtc); 44 void intel_pipedmc_enable_event(struct intel_crtc *crtc, 45 enum pipedmc_event_id event); 46 void intel_pipedmc_disable_event(struct intel_crtc *crtc, 47 enum pipedmc_event_id event); 48 49 void intel_pipedmc_irq_handler(struct intel_display *display, enum pipe pipe); 50 51 #endif /* __INTEL_DMC_H__ */ 52