]>
git.ipfire.org Git - thirdparty/kernel/stable.git/blob - drivers/gpu/drm/i915/display/intel_dp_tunnel.h
1 /* SPDX-License-Identifier: MIT */
3 * Copyright © 2023 Intel Corporation
6 #ifndef __INTEL_DP_TUNNEL_H__
7 #define __INTEL_DP_TUNNEL_H__
9 #include <linux/errno.h>
10 #include <linux/types.h>
12 struct drm_i915_private
;
13 struct drm_connector_state
;
14 struct drm_modeset_acquire_ctx
;
16 struct intel_atomic_state
;
17 struct intel_connector
;
19 struct intel_crtc_state
;
22 struct intel_link_bw_limits
;
24 #if defined(CONFIG_DRM_I915_DP_TUNNEL) && defined(I915)
26 int intel_dp_tunnel_detect(struct intel_dp
*intel_dp
, struct drm_modeset_acquire_ctx
*ctx
);
27 void intel_dp_tunnel_disconnect(struct intel_dp
*intel_dp
);
28 void intel_dp_tunnel_destroy(struct intel_dp
*intel_dp
);
29 void intel_dp_tunnel_resume(struct intel_dp
*intel_dp
,
30 const struct intel_crtc_state
*crtc_state
,
32 void intel_dp_tunnel_suspend(struct intel_dp
*intel_dp
);
34 bool intel_dp_tunnel_bw_alloc_is_enabled(struct intel_dp
*intel_dp
);
37 intel_dp_tunnel_atomic_cleanup_inherited_state(struct intel_atomic_state
*state
);
39 int intel_dp_tunnel_atomic_compute_stream_bw(struct intel_atomic_state
*state
,
40 struct intel_dp
*intel_dp
,
41 const struct intel_connector
*connector
,
42 struct intel_crtc_state
*crtc_state
);
43 void intel_dp_tunnel_atomic_clear_stream_bw(struct intel_atomic_state
*state
,
44 struct intel_crtc_state
*crtc_state
);
46 int intel_dp_tunnel_atomic_add_state_for_crtc(struct intel_atomic_state
*state
,
47 struct intel_crtc
*crtc
);
48 int intel_dp_tunnel_atomic_check_link(struct intel_atomic_state
*state
,
49 struct intel_link_bw_limits
*limits
);
50 int intel_dp_tunnel_atomic_check_state(struct intel_atomic_state
*state
,
51 struct intel_dp
*intel_dp
,
52 struct intel_connector
*connector
);
54 void intel_dp_tunnel_atomic_alloc_bw(struct intel_atomic_state
*state
);
56 int intel_dp_tunnel_mgr_init(struct drm_i915_private
*i915
);
57 void intel_dp_tunnel_mgr_cleanup(struct drm_i915_private
*i915
);
62 intel_dp_tunnel_detect(struct intel_dp
*intel_dp
, struct drm_modeset_acquire_ctx
*ctx
)
67 static inline void intel_dp_tunnel_disconnect(struct intel_dp
*intel_dp
) {}
68 static inline void intel_dp_tunnel_destroy(struct intel_dp
*intel_dp
) {}
69 static inline void intel_dp_tunnel_resume(struct intel_dp
*intel_dp
,
70 const struct intel_crtc_state
*crtc_state
,
72 static inline void intel_dp_tunnel_suspend(struct intel_dp
*intel_dp
) {}
74 static inline bool intel_dp_tunnel_bw_alloc_is_enabled(struct intel_dp
*intel_dp
)
80 intel_dp_tunnel_atomic_cleanup_inherited_state(struct intel_atomic_state
*state
) {}
83 intel_dp_tunnel_atomic_compute_stream_bw(struct intel_atomic_state
*state
,
84 struct intel_dp
*intel_dp
,
85 const struct intel_connector
*connector
,
86 struct intel_crtc_state
*crtc_state
)
92 intel_dp_tunnel_atomic_clear_stream_bw(struct intel_atomic_state
*state
,
93 struct intel_crtc_state
*crtc_state
) {}
96 intel_dp_tunnel_atomic_add_state_for_crtc(struct intel_atomic_state
*state
,
97 struct intel_crtc
*crtc
)
103 intel_dp_tunnel_atomic_check_link(struct intel_atomic_state
*state
,
104 struct intel_link_bw_limits
*limits
)
110 intel_dp_tunnel_atomic_check_state(struct intel_atomic_state
*state
,
111 struct intel_dp
*intel_dp
,
112 struct intel_connector
*connector
)
118 intel_dp_tunnel_atomic_alloc_bw(struct intel_atomic_state
*state
)
124 intel_dp_tunnel_mgr_init(struct drm_i915_private
*i915
)
129 static inline void intel_dp_tunnel_mgr_cleanup(struct drm_i915_private
*i915
) {}
131 #endif /* CONFIG_DRM_I915_DP_TUNNEL */
133 #endif /* __INTEL_DP_TUNNEL_H__ */