| /* SPDX-License-Identifier: GPL-2.0-only */ |
| /* |
| * Copyright (C) 2025 Icenowy Zheng <uwu@icenowy.me> |
| */ |
| |
| #ifndef _VS_BRIDGE_H_ |
| #define _VS_BRIDGE_H_ |
| |
| #include <linux/types.h> |
| |
| #include <drm/drm_bridge.h> |
| #include <drm/drm_connector.h> |
| #include <drm/drm_encoder.h> |
| |
| struct vs_crtc; |
| |
| enum vs_bridge_output_interface { |
| VSDC_OUTPUT_INTERFACE_DPI = 0, |
| VSDC_OUTPUT_INTERFACE_DP = 1 |
| }; |
| |
| struct vs_bridge { |
| struct drm_bridge base; |
| struct drm_encoder *enc; |
| struct drm_connector *conn; |
| |
| struct vs_crtc *crtc; |
| struct drm_bridge *next_bridge; |
| enum vs_bridge_output_interface intf; |
| }; |
| |
| static inline struct vs_bridge *drm_bridge_to_vs_bridge(struct drm_bridge *bridge) |
| { |
| return container_of(bridge, struct vs_bridge, base); |
| } |
| |
| struct vs_bridge *vs_bridge_init(struct drm_device *drm_dev, |
| struct vs_crtc *crtc); |
| #endif /* _VS_BRIDGE_H_ */ |