xref: /openbmc/linux/drivers/gpu/drm/msm/dp/dp_display.h (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
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