Loading...
Note: File does not exist in v3.1.
1/* SPDX-License-Identifier: MIT */
2/*
3 * Copyright © 2023 Intel Corporation
4 */
5
6#ifndef __INTEL_DP_TUNNEL_H__
7#define __INTEL_DP_TUNNEL_H__
8
9#include <linux/errno.h>
10#include <linux/types.h>
11
12struct drm_connector_state;
13struct drm_modeset_acquire_ctx;
14struct intel_atomic_state;
15struct intel_connector;
16struct intel_crtc;
17struct intel_crtc_state;
18struct intel_display;
19struct intel_dp;
20struct intel_encoder;
21struct intel_link_bw_limits;
22
23#if IS_ENABLED(CONFIG_DRM_I915_DP_TUNNEL) && defined(I915)
24
25int intel_dp_tunnel_detect(struct intel_dp *intel_dp, struct drm_modeset_acquire_ctx *ctx);
26void intel_dp_tunnel_disconnect(struct intel_dp *intel_dp);
27void intel_dp_tunnel_destroy(struct intel_dp *intel_dp);
28void intel_dp_tunnel_resume(struct intel_dp *intel_dp,
29 const struct intel_crtc_state *crtc_state,
30 bool dpcd_updated);
31void intel_dp_tunnel_suspend(struct intel_dp *intel_dp);
32
33bool intel_dp_tunnel_bw_alloc_is_enabled(struct intel_dp *intel_dp);
34
35void
36intel_dp_tunnel_atomic_cleanup_inherited_state(struct intel_atomic_state *state);
37
38int intel_dp_tunnel_atomic_compute_stream_bw(struct intel_atomic_state *state,
39 struct intel_dp *intel_dp,
40 const struct intel_connector *connector,
41 struct intel_crtc_state *crtc_state);
42void intel_dp_tunnel_atomic_clear_stream_bw(struct intel_atomic_state *state,
43 struct intel_crtc_state *crtc_state);
44
45int intel_dp_tunnel_atomic_add_state_for_crtc(struct intel_atomic_state *state,
46 struct intel_crtc *crtc);
47int intel_dp_tunnel_atomic_check_link(struct intel_atomic_state *state,
48 struct intel_link_bw_limits *limits);
49int intel_dp_tunnel_atomic_check_state(struct intel_atomic_state *state,
50 struct intel_dp *intel_dp,
51 struct intel_connector *connector);
52
53void intel_dp_tunnel_atomic_alloc_bw(struct intel_atomic_state *state);
54
55int intel_dp_tunnel_mgr_init(struct intel_display *display);
56void intel_dp_tunnel_mgr_cleanup(struct intel_display *display);
57
58#else
59
60static inline int
61intel_dp_tunnel_detect(struct intel_dp *intel_dp, struct drm_modeset_acquire_ctx *ctx)
62{
63 return -EOPNOTSUPP;
64}
65
66static inline void intel_dp_tunnel_disconnect(struct intel_dp *intel_dp) {}
67static inline void intel_dp_tunnel_destroy(struct intel_dp *intel_dp) {}
68static inline void intel_dp_tunnel_resume(struct intel_dp *intel_dp,
69 const struct intel_crtc_state *crtc_state,
70 bool dpcd_updated) {}
71static inline void intel_dp_tunnel_suspend(struct intel_dp *intel_dp) {}
72
73static inline bool intel_dp_tunnel_bw_alloc_is_enabled(struct intel_dp *intel_dp)
74{
75 return false;
76}
77
78static inline void
79intel_dp_tunnel_atomic_cleanup_inherited_state(struct intel_atomic_state *state) {}
80
81static inline int
82intel_dp_tunnel_atomic_compute_stream_bw(struct intel_atomic_state *state,
83 struct intel_dp *intel_dp,
84 const struct intel_connector *connector,
85 struct intel_crtc_state *crtc_state)
86{
87 return 0;
88}
89
90static inline void
91intel_dp_tunnel_atomic_clear_stream_bw(struct intel_atomic_state *state,
92 struct intel_crtc_state *crtc_state) {}
93
94static inline int
95intel_dp_tunnel_atomic_add_state_for_crtc(struct intel_atomic_state *state,
96 struct intel_crtc *crtc)
97{
98 return 0;
99}
100
101static inline int
102intel_dp_tunnel_atomic_check_link(struct intel_atomic_state *state,
103 struct intel_link_bw_limits *limits)
104{
105 return 0;
106}
107
108static inline int
109intel_dp_tunnel_atomic_check_state(struct intel_atomic_state *state,
110 struct intel_dp *intel_dp,
111 struct intel_connector *connector)
112{
113 return 0;
114}
115
116static inline int
117intel_dp_tunnel_atomic_alloc_bw(struct intel_atomic_state *state)
118{
119 return 0;
120}
121
122static inline int
123intel_dp_tunnel_mgr_init(struct intel_display *display)
124{
125 return 0;
126}
127
128static inline void intel_dp_tunnel_mgr_cleanup(struct intel_display *display) {}
129
130#endif /* CONFIG_DRM_I915_DP_TUNNEL */
131
132#endif /* __INTEL_DP_TUNNEL_H__ */