From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5D34C3C7E1E for ; Fri, 10 Apr 2026 09:36:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775813800; cv=none; b=Aemx6aNw+dfBWRzuFfYjkeXepXb25kx1doVK13k8d8zXpBTC1mQ32k6zswFmSmYrGJ17ybn1GerH/XM0ktpYEEN7uh9zaDLHdEV1JUPps1QmstbrWM/dYMbNGMyXJplY3TrmqLWSBjJrXpJZJJi+BZp4aFgt5zRxu6brn+ZkWIM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775813800; c=relaxed/simple; bh=dd8y38ThkJ3rHjE0FsBBQGfO3q+HfWhmqfp6mEiqwCM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=K0ixXzTqkhoFZKGrJkVF+k2WEVZMFpbbprwHANk57+e+eTEubTTfIYRcgZaxseB5MJ2clyiHUNMv62S+H7e02EniC63rYx5JC2cXwp13f1GJVG4p4n9TyNfx/TdhGKOtmEeAuzQUrqbh8GVv5qh5MKXlPy4hJLDIoutyRJDeHws= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=DpmeUKRG; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=WZWs6or8; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="DpmeUKRG"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="WZWs6or8" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63A5GihD2698383 for ; Fri, 10 Apr 2026 09:36:38 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= MmC1jrH6R/pEttUTO6gaSkswPeGvo+UHEDKw4bXdq9A=; b=DpmeUKRGn85CoMxN Ze7ZMwGlgeuszclH9xbNbT4+Qs+r9pcpCUF3Z4ySr1v1LS96Fuorat5QOpaLQB/l BG6R+y0YVGuyirRamQ32EzX1v5TQkbhfVjbpN74VFRTpPfv3GSrgquVsvaZ5ExTy Z56+wOzVkskbhS5qUV/GP6D4/jo7f2jdO5hDZND9kSKDvwLa1gsgiixRbWtJVl2J ESdyn6/+h2LmIt9ywlwszOZkzAJZkk5D0Tk1yzf28lK487J0/xTTnlf634ITI4qR R7an6D3oS7J8U6Uc0fy2HWGcj9yhhUXY+OXpqrP2sKswgzu45eimRcvB6ywZidUv zmJisw== Received: from mail-qv1-f72.google.com (mail-qv1-f72.google.com [209.85.219.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4degt9tjr4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 10 Apr 2026 09:36:38 +0000 (GMT) Received: by mail-qv1-f72.google.com with SMTP id 6a1803df08f44-89f670976acso53284766d6.0 for ; Fri, 10 Apr 2026 02:36:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775813798; x=1776418598; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=MmC1jrH6R/pEttUTO6gaSkswPeGvo+UHEDKw4bXdq9A=; b=WZWs6or8CC0cof/2n+CuauT02RgET0aIS8XxnecjTr00r21UOXCdR/KI6x286poldi MgalXsNV50P9ZPWx3VBvnMsY4Pi7mi9cqbHCk/VnssQaxs8xkZnftHGOfyEHYa91Lzki ppq2irQSpxseVzjYGDv4zZxp48yHAB5995nkZFY5XiWyjp1W4EfGEBvQjm/Jjd6FMzCF eEYbtAdiKTcUnR3fvpXkGUxSXIX04/ITTu+FnMH6vbVdvbI2XEeSNoZvZQFiUotUgwhF 3zUxKAs7jPMVT9ZGJaDSfBNf/ou4eOSLovdM99Hh32Ws7f0cetS5n+0J0MiiCnns4JKs 6sEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775813798; x=1776418598; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=MmC1jrH6R/pEttUTO6gaSkswPeGvo+UHEDKw4bXdq9A=; b=h7vQZ/n6N9oSBN+X/p5WyoLlqWmqQcfdCAZzsj58NK1TLaau4Kt67E7CVlWY/xFbxq OHqLQABUdOxZxJMe6aH7v62vg7aepPej3iyCWc2IdwoJRwYSxf+/RjRxhfxw0Uqfh2cv caARxtRo9Sb39um6IWrpsgunAbLLmmh9nn+icwQ8/oTQdky2bX0CsKAW5/KDK1hRQ6OL B7V+d8sQHpk4D7Qj5mGdX72P9y/8ApudDGnKm3IDtNMEyLmo7quaHNzlp6yj/yA6x6iJ 5n9zEZKscfc9CLO2O4SYzNFAWTfTV31B+FmOvTIpO6tz6WAvAw3P+08dj0mEx/habk/k adLA== X-Forwarded-Encrypted: i=1; AJvYcCWtF/m4nK5T1UqFjJKkUs7y2qV1nSkG8oPLZqeVAXfUCo785oMRuubHaD49k63vVr7zJKg68b6n+LTNfUU=@vger.kernel.org X-Gm-Message-State: AOJu0Yxlz9Ow/z6LFV9Sm4v0kjH2Op3m3nEg70WeZvZCpZS1PKEbETai /CJHvpHErxSTpYcp0XnF5koaDBqnalqAtyB7ctgvrHDTGNW12tKlt55CfJ42Eo6sURkXm046XWI Lwo6ykVaX+ti4Qxd1JXbXxbNSZ0pCCp6x0J5hWYXppYLZUalbKrB81CJWhRI3+SUxyIo= X-Gm-Gg: AeBDievEtf8Yzfqe/jLxLHTF9sD+fV9Gdcdioz+RooDX2roVvV9aa5qnCF7JsaFCafo jA/tvF1eUTjS2HF7j4n5E7+CQ7aXZn3sBoh+GgFSewd2YUwuRnoDO6K0BfIm9HBFKnZlMuVtC5S cLpZHInzIUQYgjQEBsyVIsN/Z9efBTyIJVpN4KqtqTxRoxZJO8gIM+tfUQuKEk3T7gDE+G4KEre CGZrWOVE5pWI4s4QsHD6pCU1NOg25CKV17xRyKvP20k8e9rbHRh/VO/aXBC4EKBo04to+6K7Ka8 iyG361y8HG7sAyNLc3ZJNr+vZmN/pAJzWztrqsjQ0EJfnokM0AS2gdD24hGq6QLYuaIMCIOdE5e MzB7c9tMvfoRenUwoT9q06jCdJkTpy+rkn2bKoCs1adDYWmexCJtYV4g5p96hmSFtvq5Ut8LDIr h7nh9yaNQ= X-Received: by 2002:ad4:5f8e:0:b0:89c:e4c3:dc2d with SMTP id 6a1803df08f44-8ac861632e3mr35335286d6.2.1775813797697; Fri, 10 Apr 2026 02:36:37 -0700 (PDT) X-Received: by 2002:ad4:5f8e:0:b0:89c:e4c3:dc2d with SMTP id 6a1803df08f44-8ac861632e3mr35334956d6.2.1775813797186; Fri, 10 Apr 2026 02:36:37 -0700 (PDT) Received: from yongmou2.ap.qualcomm.com (Global_NAT1_IAD_FW.qualcomm.com. [129.46.232.65]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-8ac84cb135fsm19223386d6.38.2026.04.10.02.36.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Apr 2026 02:36:36 -0700 (PDT) From: Yongxing Mou Date: Fri, 10 Apr 2026 17:34:08 +0800 Subject: [PATCH v4 33/39] drm/msm/dp: initialize dp_mst module for each DP MST controller Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260410-msm-dp-mst-v4-33-b20518dea8de@oss.qualcomm.com> References: <20260410-msm-dp-mst-v4-0-b20518dea8de@oss.qualcomm.com> In-Reply-To: <20260410-msm-dp-mst-v4-0-b20518dea8de@oss.qualcomm.com> To: Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Sean Paul , Marijn Suijten , David Airlie , Simona Vetter , Jessica Zhang Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org, Yongxing Mou , Abhinav Kumar X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1775813628; l=7877; i=yongxing.mou@oss.qualcomm.com; s=20250910; h=from:subject:message-id; bh=3YFcKvp4gwFyNQoOPReMX/pBKXIsYYad0fVFQsjwdrw=; b=xzEHEx9LRP4bApsuxgDPtfUxqCk950DPbkP8A4bTihZLWfXceaygJ2EfZGU8QtOIETfQC08cq KJUvJXOcnn6DRKMlZCH21IZSwJgVLsfDmSCFx4sb4bWgfJBvrZfL9fl X-Developer-Key: i=yongxing.mou@oss.qualcomm.com; a=ed25519; pk=rAy5J1eP+V7OXqH5FJ7ngMCtUrnHhut30ZTldOj52UM= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDEwMDA4OSBTYWx0ZWRfX0P/5AvrXLfIW TvJ6HA4J7Jf7rCqyEKJFw29eRGTYDD6E0wVrFC9INrWALRVbmVjdYtiAltE3hAY/Mwy9w+T24ma NB6+COZuDtyExS3PBh1IFGZk1obCIFCt+VCOMRnMkm61NOJ2VV84hFSMguvCG37JJa5qd60Amz1 4fuDLVYcrwWVbMwy3Yh8MkhgJ7iVOOhwojL+CeP1Y4tz1p0hmF+bgnjtIldvmMUhcSqAP2OExdT jc4Ns4G3aJxlDHK4uyYSUWWLJBa9ffNIm3owXHmIDyhN1tBs5FdBgw1x+wXdkKWJVIsIIuBZMzY wyJonqiikFm5pcB+rRIAyxffov4TFOSGqwhOOmJ7ONgmhHIKc2Nvx9j1kruxHFpi5xQL7vHut+K oq3lcQF5459GkkvNqKTLeEBnzoe65+hH4mwIrwAcPvAZy1/rVyckbffU9oPexi+YeIAv77FizyD vwk0qw0aZGf06qBdZxA== X-Proofpoint-ORIG-GUID: BYy6yUyfNHrzjuutURoUQF2GLrbn1shl X-Proofpoint-GUID: BYy6yUyfNHrzjuutURoUQF2GLrbn1shl X-Authority-Analysis: v=2.4 cv=BJyDalQG c=1 sm=1 tr=0 ts=69d8c4a6 cx=c_pps a=7E5Bxpl4vBhpaufnMqZlrw==:117 a=C3Dk8TwHQYyIj7nOf9RCJw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=Tb4r1nT5KeEeR2f--GEA:9 a=QEXdDO2ut3YA:10 a=pJ04lnu7RYOZP9TFuWaZ:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-10_03,2026-04-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 suspectscore=0 malwarescore=0 bulkscore=0 adultscore=0 priorityscore=1501 impostorscore=0 clxscore=1015 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604100089 From: Abhinav Kumar For each MST capable DP controller, initialize a dp_mst module to manage its DP MST operations. The DP MST module for each controller is the central entity to manage its topology related operations as well as interfacing with the rest of the DP driver. Signed-off-by: Abhinav Kumar Signed-off-by: Yongxing Mou --- drivers/gpu/drm/msm/Makefile | 3 +- drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 6 +++ drivers/gpu/drm/msm/dp/dp_display.c | 18 ++++++++ drivers/gpu/drm/msm/dp/dp_display.h | 2 + drivers/gpu/drm/msm/dp/dp_mst_drm.c | 73 +++++++++++++++++++++++++++++++++ drivers/gpu/drm/msm/dp/dp_mst_drm.h | 13 ++++++ drivers/gpu/drm/msm/msm_drv.h | 6 +++ 7 files changed, 120 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/msm/Makefile b/drivers/gpu/drm/msm/Makefile index 8b94c5f1cb68..1d8426876aa1 100644 --- a/drivers/gpu/drm/msm/Makefile +++ b/drivers/gpu/drm/msm/Makefile @@ -144,7 +144,8 @@ msm-display-$(CONFIG_DRM_MSM_DP)+= dp/dp_aux.o \ dp/dp_link.o \ dp/dp_panel.o \ dp/dp_audio.o \ - dp/dp_utils.o + dp/dp_utils.o \ + dp/dp_mst_drm.o msm-display-$(CONFIG_DRM_MSM_HDMI_HDCP) += hdmi/hdmi_hdcp.o diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c index 090e7d790593..d7ce13a4586d 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c @@ -680,6 +680,12 @@ static int _dpu_kms_initialize_displayport(struct drm_device *dev, stream_cnt = msm_dp_get_mst_max_stream(priv->kms->dp[i]); if (stream_cnt > 1) { + rc = msm_dp_mst_register(priv->kms->dp[i]); + if (rc) { + DPU_ERROR("dp_mst_init failed for DP, rc = %d\n", rc); + return rc; + } + for (stream_id = 0; stream_id < stream_cnt; stream_id++) { encoder = dpu_encoder_init(dev, DRM_MODE_ENCODER_DPMST, &info); if (IS_ERR(encoder)) { diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c index 9eaf6994a350..919767945ba5 100644 --- a/drivers/gpu/drm/msm/dp/dp_display.c +++ b/drivers/gpu/drm/msm/dp/dp_display.c @@ -28,6 +28,7 @@ #include "dp_drm.h" #include "dp_audio.h" #include "dp_debug.h" +#include "dp_mst_drm.h" static bool psr_enabled = false; module_param(psr_enabled, bool, 0); @@ -360,6 +361,9 @@ static int msm_dp_display_process_hpd_high(struct msm_dp_display_private *dp) if (dp->max_stream > 1 && drm_dp_read_mst_cap(dp->aux, dp->panel->dpcd)) msm_dp_display_mst_init(dp); + if (dp->msm_dp_display.mst_active) + msm_dp_mst_display_set_mgr_state(&dp->msm_dp_display, true); + msm_dp_link_reset_phy_params_vx_px(dp->link); end: @@ -527,6 +531,11 @@ static int msm_dp_hpd_unplug_handle(struct msm_dp_display_private *dp) dp->panel->dpcd, dp->panel->downstream_ports); + if (dp->msm_dp_display.mst_active) { + msm_dp_mst_display_set_mgr_state(&dp->msm_dp_display, false); + dp->msm_dp_display.mst_active = false; + } + /* signal the disconnect event early to ensure proper teardown */ msm_dp_display_handle_plugged_change(&dp->msm_dp_display, false); @@ -1556,6 +1565,15 @@ int msm_dp_modeset_init(struct msm_dp *msm_dp_display, struct drm_device *dev, return 0; } +int msm_dp_mst_register(struct msm_dp *msm_dp_display) +{ + struct msm_dp_display_private *dp; + + dp = container_of(msm_dp_display, struct msm_dp_display_private, msm_dp_display); + + return msm_dp_mst_init(msm_dp_display, dp->max_stream, dp->aux); +} + int msm_dp_display_set_mode_helper(struct msm_dp *msm_dp_display, struct drm_atomic_state *state, struct drm_encoder *drm_encoder, diff --git a/drivers/gpu/drm/msm/dp/dp_display.h b/drivers/gpu/drm/msm/dp/dp_display.h index bda76319c459..55874daf41c4 100644 --- a/drivers/gpu/drm/msm/dp/dp_display.h +++ b/drivers/gpu/drm/msm/dp/dp_display.h @@ -24,6 +24,8 @@ struct msm_dp { bool is_edp; bool prepared; + void *msm_dp_mst; + struct msm_dp_audio *msm_dp_audio; bool psr_supported; }; diff --git a/drivers/gpu/drm/msm/dp/dp_mst_drm.c b/drivers/gpu/drm/msm/dp/dp_mst_drm.c new file mode 100644 index 000000000000..b6c7b8211025 --- /dev/null +++ b/drivers/gpu/drm/msm/dp/dp_mst_drm.c @@ -0,0 +1,73 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (c) 2025 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +#include +#include +#include +#include + +#include "dp_mst_drm.h" +#include "dp_panel.h" + +#define MAX_DPCD_TRANSACTION_BYTES 16 + +struct msm_dp_mst { + struct drm_dp_mst_topology_mgr mst_mgr; + struct msm_dp *msm_dp; + struct drm_dp_aux *dp_aux; + u32 max_streams; + /* Protects MST bridge enable/disable handling. */ + struct mutex mst_lock; +}; + +int msm_dp_mst_display_set_mgr_state(struct msm_dp *dp_display, bool state) +{ + struct msm_dp_mst *mst = dp_display->msm_dp_mst; + int rc; + + rc = drm_dp_mst_topology_mgr_set_mst(&mst->mst_mgr, state); + if (rc < 0) { + DRM_ERROR("failed to set topology mgr state to %d. rc %d\n", + state, rc); + } + + drm_dbg_dp(dp_display->drm_dev, "dp_mst_display_set_mgr_state state:%d\n", state); + return rc; +} + +int msm_dp_mst_init(struct msm_dp *dp_display, u32 max_streams, struct drm_dp_aux *drm_aux) +{ + struct drm_device *dev = dp_display->drm_dev; + int conn_base_id = 0; + int ret; + struct msm_dp_mst *msm_dp_mst; + + msm_dp_mst = devm_kzalloc(dev->dev, sizeof(*msm_dp_mst), GFP_KERNEL); + if (!msm_dp_mst) + return -ENOMEM; + + memset(&msm_dp_mst->mst_mgr, 0, sizeof(msm_dp_mst->mst_mgr)); + + conn_base_id = dp_display->connector->base.id; + msm_dp_mst->msm_dp = dp_display; + msm_dp_mst->max_streams = max_streams; + + msm_dp_mst->dp_aux = drm_aux; + + ret = drm_dp_mst_topology_mgr_init(&msm_dp_mst->mst_mgr, dev, + drm_aux, + MAX_DPCD_TRANSACTION_BYTES, + max_streams, + conn_base_id); + if (ret) { + DRM_ERROR("DP DRM MST topology manager init failed\n"); + return ret; + } + + dp_display->msm_dp_mst = msm_dp_mst; + + mutex_init(&msm_dp_mst->mst_lock); + return ret; +} diff --git a/drivers/gpu/drm/msm/dp/dp_mst_drm.h b/drivers/gpu/drm/msm/dp/dp_mst_drm.h new file mode 100644 index 000000000000..5d411529f681 --- /dev/null +++ b/drivers/gpu/drm/msm/dp/dp_mst_drm.h @@ -0,0 +1,13 @@ +/* SPDX-License-Identifier: GPL-2.0-only + * Copyright (c) 2025 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +#ifndef _DP_MST_DRM_H_ +#define _DP_MST_DRM_H_ + +#include "dp_display.h" + +int msm_dp_mst_init(struct msm_dp *dp_display, u32 max_streams, struct drm_dp_aux *drm_aux); +int msm_dp_mst_display_set_mgr_state(struct msm_dp *dp_display, bool state); + +#endif /* _DP_MST_DRM_H_ */ diff --git a/drivers/gpu/drm/msm/msm_drv.h b/drivers/gpu/drm/msm/msm_drv.h index 3061eca49cb2..5f73e0aa1c2f 100644 --- a/drivers/gpu/drm/msm/msm_drv.h +++ b/drivers/gpu/drm/msm/msm_drv.h @@ -363,6 +363,7 @@ bool msm_dp_needs_periph_flush(const struct msm_dp *dp_display, const struct drm_display_mode *mode); bool msm_dp_wide_bus_available(const struct msm_dp *dp_display); int msm_dp_get_mst_max_stream(struct msm_dp *dp_display); +int msm_dp_mst_register(struct msm_dp *dp_display); #else static inline int __init msm_dp_register(void) { @@ -384,6 +385,11 @@ static inline int msm_dp_get_mst_max_stream(struct msm_dp *dp_display) return -EINVAL; } +static inline int msm_dp_mst_register(struct msm_dp *dp_display) +{ + return -EINVAL; +} + static inline void msm_dp_snapshot(struct msm_disp_state *disp_state, struct msm_dp *dp_display) { } -- 2.43.0