1c943b494SChandan Uddaraju /* SPDX-License-Identifier: GPL-2.0-only */ 2c943b494SChandan Uddaraju /* 3c943b494SChandan Uddaraju * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved. 4c943b494SChandan Uddaraju */ 5c943b494SChandan Uddaraju 6c943b494SChandan Uddaraju #ifndef _DP_DISPLAY_H_ 7c943b494SChandan Uddaraju #define _DP_DISPLAY_H_ 8c943b494SChandan Uddaraju 9c943b494SChandan Uddaraju #include "dp_panel.h" 10a1f5bda9SAbhinav Kumar #include <sound/hdmi-codec.h> 1198659487SAbhinav Kumar #include "disp/msm_disp_snapshot.h" 12c943b494SChandan Uddaraju 13c943b494SChandan Uddaraju struct msm_dp { 14c943b494SChandan Uddaraju struct drm_device *drm_dev; 15a1f5bda9SAbhinav Kumar struct device *codec_dev; 168a3b4c17SKuogee Hsieh struct drm_bridge *bridge; 17c943b494SChandan Uddaraju struct drm_connector *connector; 189aa92468SDmitry Baryshkov struct drm_bridge *next_bridge; 19c943b494SChandan Uddaraju bool is_connected; 20158b9aa7SAbhinav Kumar bool audio_enabled; 21158b9aa7SAbhinav Kumar bool power_on; 22269e92d8SBjorn Andersson unsigned int connector_type; 23c3bf8e21SSankeerth Billakanti bool is_edp; 24cd198cadSBjorn Andersson bool internal_hpd; 25a1f5bda9SAbhinav Kumar 26a1f5bda9SAbhinav Kumar hdmi_codec_plugged_cb plugged_cb; 27a1f5bda9SAbhinav Kumar 28757a2f36SKuogee Hsieh bool wide_bus_en; 29757a2f36SKuogee Hsieh 30c943b494SChandan Uddaraju u32 max_dp_lanes; 31d13e36d7SAbhinav Kumar struct dp_audio *dp_audio; 32*cd779808SVinod Polimera bool psr_supported; 33c943b494SChandan Uddaraju }; 34c943b494SChandan Uddaraju 35a1f5bda9SAbhinav Kumar int dp_display_set_plugged_cb(struct msm_dp *dp_display, 36a1f5bda9SAbhinav Kumar hdmi_codec_plugged_cb fn, struct device *codec_dev); 37a52bfaf6SDmitry Baryshkov int dp_display_get_modes(struct msm_dp *dp_display); 38c943b494SChandan Uddaraju int dp_display_request_irq(struct msm_dp *dp_display); 39c943b494SChandan Uddaraju bool dp_display_check_video_test(struct msm_dp *dp_display); 40c943b494SChandan Uddaraju int dp_display_get_test_bpp(struct msm_dp *dp_display); 41f2f46b87SKuogee Hsieh void dp_display_signal_audio_start(struct msm_dp *dp_display); 42158b9aa7SAbhinav Kumar void dp_display_signal_audio_complete(struct msm_dp *dp_display); 43*cd779808SVinod Polimera void dp_display_set_psr(struct msm_dp *dp, bool enter); 44c943b494SChandan Uddaraju 45c943b494SChandan Uddaraju #endif /* _DP_DISPLAY_H_ */ 46