1 /* SPDX-License-Identifier: MIT */ 2 /* 3 * Copyright © 2023 Intel Corporation 4 */ 5 6 #ifndef __INTEL_PMDEMAND_H__ 7 #define __INTEL_PMDEMAND_H__ 8 9 #include <linux/types.h> 10 11 enum pipe; 12 struct intel_atomic_state; 13 struct intel_crtc_state; 14 struct intel_display; 15 struct intel_encoder; 16 struct intel_global_state; 17 struct intel_plane_state; 18 struct intel_pmdemand_state; 19 20 struct intel_pmdemand_state *to_intel_pmdemand_state(struct intel_global_state *obj_state); 21 22 void intel_pmdemand_init_early(struct intel_display *display); 23 int intel_pmdemand_init(struct intel_display *display); 24 void intel_pmdemand_init_pmdemand_params(struct intel_display *display, 25 struct intel_pmdemand_state *pmdemand_state); 26 void intel_pmdemand_update_port_clock(struct intel_display *display, 27 struct intel_pmdemand_state *pmdemand_state, 28 enum pipe pipe, int port_clock); 29 void intel_pmdemand_update_phys_mask(struct intel_display *display, 30 struct intel_encoder *encoder, 31 struct intel_pmdemand_state *pmdemand_state, 32 bool clear_bit); 33 void intel_pmdemand_program_dbuf(struct intel_display *display, 34 u8 dbuf_slices); 35 void intel_pmdemand_pre_plane_update(struct intel_atomic_state *state); 36 void intel_pmdemand_post_plane_update(struct intel_atomic_state *state); 37 int intel_pmdemand_atomic_check(struct intel_atomic_state *state); 38 39 #endif /* __INTEL_PMDEMAND_H__ */ 40