Linux Audio

Check our new training course

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__ */