From: Abhinav Kumar <quic_abhin...@quicinc.com>

Introduce the mst_streams for each DP controller to specify the number
of supported MST streams. On most platforms, the supported MST streams
number is 2 or 4. For platforms that do not support MST, define
DEFAULT_STREAM_COUNT as 1. Also exist platform that DP0 supports 4
streams while DP1 support 2 streams.

Signed-off-by: Abhinav Kumar <quic_abhin...@quicinc.com>
Signed-off-by: Yongxing Mou <quic_yong...@quicinc.com>
---
 drivers/gpu/drm/msm/dp/dp_display.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/gpu/drm/msm/dp/dp_display.c 
b/drivers/gpu/drm/msm/dp/dp_display.c
index 
7ed4034c89605596c874a6bf9a5a19586d6c13fb..4e0213cae4aafb468681db27b3c3fef28d44b2c0
 100644
--- a/drivers/gpu/drm/msm/dp/dp_display.c
+++ b/drivers/gpu/drm/msm/dp/dp_display.c
@@ -34,6 +34,7 @@ module_param(psr_enabled, bool, 0);
 MODULE_PARM_DESC(psr_enabled, "enable PSR for eDP and DP displays");
 
 #define HPD_STRING_SIZE 30
+#define DEFAULT_STREAM_COUNT 1
 
 enum {
        ISR_DISCONNECTED,
@@ -83,6 +84,7 @@ struct msm_dp_display_private {
        bool core_initialized;
        bool phy_initialized;
        bool audio_supported;
+       bool mst_supported;
 
        struct drm_device *drm_dev;
 
@@ -110,12 +112,14 @@ struct msm_dp_display_private {
        bool wide_bus_supported;
 
        struct msm_dp_audio *audio;
+       int max_stream;
 };
 
 struct msm_dp_desc {
        phys_addr_t io_start;
        unsigned int id;
        bool wide_bus_supported;
+       int mst_streams;
 };
 
 static const struct msm_dp_desc msm_dp_desc_sa8775p[] = {
@@ -1330,6 +1334,14 @@ static int msm_dp_display_probe(struct platform_device 
*pdev)
        dp->msm_dp_display.is_edp =
                (dp->msm_dp_display.connector_type == DRM_MODE_CONNECTOR_eDP);
 
+       dp->max_stream = DEFAULT_STREAM_COUNT;
+       dp->mst_supported = FALSE;
+
+       if (desc->mst_streams > DEFAULT_STREAM_COUNT) {
+               dp->max_stream = desc->mst_streams;
+               dp->mst_supported = TRUE;
+       }
+
        rc = msm_dp_init_sub_modules(dp);
        if (rc) {
                DRM_ERROR("init sub module failed\n");

-- 
2.34.1

Reply via email to