File Index
Files and directories
Sign in
FILE

intel_dp_tunnel.h

File preview with syntax highlighting.

linux-6.19.14/drivers/gpu/drm/i915/display/intel_dp_tunnel.h C
  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	(IS_ENABLED(CONFIG_DRM_XE_DP_TUNNEL) && !defined(I915))
 25
 26int intel_dp_tunnel_detect(struct intel_dp *intel_dp, struct drm_modeset_acquire_ctx *ctx);
 27void intel_dp_tunnel_disconnect(struct intel_dp *intel_dp);
 28void intel_dp_tunnel_destroy(struct intel_dp *intel_dp);
 29void intel_dp_tunnel_resume(struct intel_dp *intel_dp,
 30			    const struct intel_crtc_state *crtc_state,
 31			    bool dpcd_updated);
 32void intel_dp_tunnel_suspend(struct intel_dp *intel_dp);
 33
 34bool intel_dp_tunnel_bw_alloc_is_enabled(struct intel_dp *intel_dp);
 35
 36void
 37intel_dp_tunnel_atomic_cleanup_inherited_state(struct intel_atomic_state *state);
 38
 39int 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);
 43int intel_dp_tunnel_atomic_clear_stream_bw(struct intel_atomic_state *state,
 44					   struct intel_crtc_state *crtc_state);
 45
 46int intel_dp_tunnel_atomic_add_state_for_crtc(struct intel_atomic_state *state,
 47					      struct intel_crtc *crtc);
 48int intel_dp_tunnel_atomic_check_link(struct intel_atomic_state *state,
 49				      struct intel_link_bw_limits *limits);
 50int intel_dp_tunnel_atomic_check_state(struct intel_atomic_state *state,
 51				       struct intel_dp *intel_dp,
 52				       struct intel_connector *connector);
 53
 54void intel_dp_tunnel_atomic_alloc_bw(struct intel_atomic_state *state);
 55
 56int intel_dp_tunnel_mgr_init(struct intel_display *display);
 57void intel_dp_tunnel_mgr_cleanup(struct intel_display *display);
 58
 59#else
 60
 61static inline int
 62intel_dp_tunnel_detect(struct intel_dp *intel_dp, struct drm_modeset_acquire_ctx *ctx)
 63{
 64	return -EOPNOTSUPP;
 65}
 66
 67static inline void intel_dp_tunnel_disconnect(struct intel_dp *intel_dp) {}
 68static inline void intel_dp_tunnel_destroy(struct intel_dp *intel_dp) {}
 69static inline void intel_dp_tunnel_resume(struct intel_dp *intel_dp,
 70					  const struct intel_crtc_state *crtc_state,
 71					  bool dpcd_updated) {}
 72static inline void intel_dp_tunnel_suspend(struct intel_dp *intel_dp) {}
 73
 74static inline bool intel_dp_tunnel_bw_alloc_is_enabled(struct intel_dp *intel_dp)
 75{
 76	return false;
 77}
 78
 79static inline void
 80intel_dp_tunnel_atomic_cleanup_inherited_state(struct intel_atomic_state *state) {}
 81
 82static inline int
 83intel_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)
 87{
 88	return 0;
 89}
 90
 91static inline int
 92intel_dp_tunnel_atomic_clear_stream_bw(struct intel_atomic_state *state,
 93				       struct intel_crtc_state *crtc_state)
 94{
 95	return 0;
 96}
 97
 98static inline int
 99intel_dp_tunnel_atomic_add_state_for_crtc(struct intel_atomic_state *state,
100					  struct intel_crtc *crtc)
101{
102	return 0;
103}
104
105static inline int
106intel_dp_tunnel_atomic_check_link(struct intel_atomic_state *state,
107				  struct intel_link_bw_limits *limits)
108{
109	return 0;
110}
111
112static inline int
113intel_dp_tunnel_atomic_check_state(struct intel_atomic_state *state,
114				   struct intel_dp *intel_dp,
115				   struct intel_connector *connector)
116{
117	return 0;
118}
119
120static inline int
121intel_dp_tunnel_atomic_alloc_bw(struct intel_atomic_state *state)
122{
123	return 0;
124}
125
126static inline int
127intel_dp_tunnel_mgr_init(struct intel_display *display)
128{
129	return 0;
130}
131
132static inline void intel_dp_tunnel_mgr_cleanup(struct intel_display *display) {}
133
134#endif /* CONFIG_DRM_I915_DP_TUNNEL || CONFIG_DRM_XE_DP_TUNNEL */
135
136#endif /* __INTEL_DP_TUNNEL_H__ */
~/ Read-only file preview.