|  | /* SPDX-License-Identifier: MIT */ | 
|  | /* | 
|  | * Copyright © 2023 Intel Corporation | 
|  | */ | 
|  |  | 
|  | #ifndef __INTEL_LINK_BW_H__ | 
|  | #define __INTEL_LINK_BW_H__ | 
|  |  | 
|  | #include <linux/types.h> | 
|  |  | 
|  | #include "intel_display_limits.h" | 
|  |  | 
|  | struct drm_i915_private; | 
|  |  | 
|  | struct intel_atomic_state; | 
|  | struct intel_crtc_state; | 
|  |  | 
|  | struct intel_link_bw_limits { | 
|  | u8 force_fec_pipes; | 
|  | u8 bpp_limit_reached_pipes; | 
|  | /* in 1/16 bpp units */ | 
|  | int max_bpp_x16[I915_MAX_PIPES]; | 
|  | }; | 
|  |  | 
|  | void intel_link_bw_init_limits(struct intel_atomic_state *state, | 
|  | struct intel_link_bw_limits *limits); | 
|  | int intel_link_bw_reduce_bpp(struct intel_atomic_state *state, | 
|  | struct intel_link_bw_limits *limits, | 
|  | u8 pipe_mask, | 
|  | const char *reason); | 
|  | bool intel_link_bw_set_bpp_limit_for_pipe(struct intel_atomic_state *state, | 
|  | const struct intel_link_bw_limits *old_limits, | 
|  | struct intel_link_bw_limits *new_limits, | 
|  | enum pipe pipe); | 
|  | int intel_link_bw_atomic_check(struct intel_atomic_state *state, | 
|  | struct intel_link_bw_limits *new_limits); | 
|  |  | 
|  | #endif |