1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-only */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved. 4*4882a593Smuzhiyun */ 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun #ifndef _DP_DISPLAY_H_ 7*4882a593Smuzhiyun #define _DP_DISPLAY_H_ 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun #include "dp_panel.h" 10*4882a593Smuzhiyun #include <sound/hdmi-codec.h> 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun struct msm_dp { 13*4882a593Smuzhiyun struct drm_device *drm_dev; 14*4882a593Smuzhiyun struct device *codec_dev; 15*4882a593Smuzhiyun struct drm_connector *connector; 16*4882a593Smuzhiyun struct drm_encoder *encoder; 17*4882a593Smuzhiyun bool is_connected; 18*4882a593Smuzhiyun bool audio_enabled; 19*4882a593Smuzhiyun bool power_on; 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun hdmi_codec_plugged_cb plugged_cb; 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun u32 max_pclk_khz; 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun u32 max_dp_lanes; 26*4882a593Smuzhiyun struct dp_audio *dp_audio; 27*4882a593Smuzhiyun }; 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun int dp_display_set_plugged_cb(struct msm_dp *dp_display, 30*4882a593Smuzhiyun hdmi_codec_plugged_cb fn, struct device *codec_dev); 31*4882a593Smuzhiyun int dp_display_validate_mode(struct msm_dp *dp_display, u32 mode_pclk_khz); 32*4882a593Smuzhiyun int dp_display_get_modes(struct msm_dp *dp_display, 33*4882a593Smuzhiyun struct dp_display_mode *dp_mode); 34*4882a593Smuzhiyun int dp_display_request_irq(struct msm_dp *dp_display); 35*4882a593Smuzhiyun bool dp_display_check_video_test(struct msm_dp *dp_display); 36*4882a593Smuzhiyun int dp_display_get_test_bpp(struct msm_dp *dp_display); 37*4882a593Smuzhiyun void dp_display_signal_audio_start(struct msm_dp *dp_display); 38*4882a593Smuzhiyun void dp_display_signal_audio_complete(struct msm_dp *dp_display); 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun #endif /* _DP_DISPLAY_H_ */ 41