From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 A5CDD3F7A9E for ; Tue, 9 Jun 2026 09:47:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780998471; cv=none; b=Bl01wJSLnIG84Y0lhbLVuOr+n7iQKl7ff8PdxeC3IazF3wA1qWTAbh/clgnta8Cluv/xZEPUxSI/kKev6Ijm0VECM7M4b38TAEc9IX0SA1aJyCQ3vn7ZHrEfLBrLEYopMLZazzFesrGJkMwfVPJV8m/La6u+r/f8bJxg4ukqNXw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780998471; c=relaxed/simple; bh=da4DiLmkH54vMKs4+UHrFXYyvX9aCG9OfWIw37ym+Ew=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ibOSBGxrS7JZx3a727oUGbK5GKKC9Za9Tc1b/iFZ82xmiD4cXAc9LroHOdKF6z1asQEczeZffXnYnHX5FkhUGkzDol3wiDoa2BAUq1UgJxt++QiikJLGO7QKygU6HSmXLxOH6XOlB67nxsrec3dVudPEMH2FaG9TIDT0lXTJGgY= 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=jwbWXG4Q; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=DFcqSNg8; arc=none smtp.client-ip=205.220.168.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="jwbWXG4Q"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="DFcqSNg8" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6597rMbh1584100 for ; Tue, 9 Jun 2026 09:47:50 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= 4GLG60vKqqPhXSK9u7LFSK5eRlVCZiWpAvGD6R5I4zI=; b=jwbWXG4QsCbakz1T QRLIlyesxqjVyud+B6kdO3KTVGd2Mq7yA5+UGl2mW/8DWMSXeA+s0fbD7oMBIET5 +BIPMv8iMosABtSfnTGVIkEsmSpMXUpj1/sPN2uQ/zlsK1D1Ht64x2Sn74ri6aqy +S2aluypkX3MUWGc851kcx62+wdrmiCZBEY6n2i2pbvI3vYqmpDQDl4qid6T8hmT E5WklZp7rrat3Wa+h1Wotow9I2Fx4YEO64WwtDmD6rjKkQMnxrmtK3Emj1Jhm/zi frMJMRofXiQbas17ZcMtNUG88c1JBR1tA3hEE/ZZ3rmUJch1WqtcczJPWuvMX/Us McnjLw== Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4epdeeruua-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 09 Jun 2026 09:47:49 +0000 (GMT) Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-914c8954923so372531085a.1 for ; Tue, 09 Jun 2026 02:47:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780998469; x=1781603269; 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=4GLG60vKqqPhXSK9u7LFSK5eRlVCZiWpAvGD6R5I4zI=; b=DFcqSNg8xOmhXLeJ6Pvt1eBDOURDa+2pxS2Zhsgeqs0jBpOWdD3OdDBMmP4WWz/xOh 2FGcT8O9BQo1ezvo7u/NHh8pzdVFejHaYItLsGsuilu3F28TuvbFkqCobmupTMh0+o8X K42YVbWthGyDuLjTcXV+AHBM9AVjKPDAlYchTf90URo6P4A1zqHgGxD3QvC9Yv8+5M3V QB4lMgx3D/War9x/0VfDskuyp/CVFPOnh0n2Yrkyp4M8yWvXQhCTF991PL1F00Crknyd PJt66kXkN2aoF1wnp/1TsxnfnI/TaYtROZ+6XvRJID71Zhuq4VlWfzFHToKPX9yovCDb qTOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780998469; x=1781603269; 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=4GLG60vKqqPhXSK9u7LFSK5eRlVCZiWpAvGD6R5I4zI=; b=tWEQJqLawxNjjN4IdUSFfinol+K+i8nt1rzdvYMLv/4X3AmEN9BDsPv9JYXydxRThf hgJ8mfROflc/1ftN6tZ8EV6LTFTMqqpjCo6Czg0A3YwPS7or2gciMnjCBpWfIXdrZQHZ /z6jgmMn31VMMWt3Yr1gKUYYd7x3bJTw7/m5DKJdL/boZkcS185P0FuAJn4PzjKk+Svz sMIhDoqbQ5CEkYSC5ezfoe0vtXI/P1mKiZGL0+96JXxdO8lN6h3ACGP64ClltTv7R6ce l3ttIZ3sKAQBcNL1Pn2QiV1xcDLr55TKuPY371PcH0lSvaFUAgv4LmsMeNsSn0xaejm3 alVg== X-Forwarded-Encrypted: i=1; AFNElJ+m29L/f8Pcv+6WShZdE76uvPkvOjQjKcDT/NV0GzhfCFspzNnl0bQ84J80vWSxB4yi0gxghpVbACEaCKs=@vger.kernel.org X-Gm-Message-State: AOJu0YxUzFvYCM98l/g64HP7hom1MnrFt7mIwFVJ0JiaD+fnP0m/Cv19 k4SILXzK+ILrRq1F3Le0XEB/+cyEnyhti2NMreH6z5woe9Ixvj5RBBpcGUWxLt+9JzzrHsiEM5Y ihBHrwnSQ39xNTcxnkGFRFa7JwFZ2CwaaCaGpszRyzwgSm6NZlKk2/xTjsy2Zdm9ACEs= X-Gm-Gg: Acq92OFSeFrvNd1w+3jMAuuvkd1mQdJHPshNefkF6g7MQXYc3vUflZ2cgL7FNJnmIDF hOFdcRPGyuM1b6b5JzKCq5hMnOoaJqlwktTrZgwTqzxnpiCpnCKGKtiSQ3guZeZ426rYrbhsv3r GwLHdAnn3Rj7GyDlbMcl9xd6Z1COA+xUpdSCqZa8tGvGIlKrShCi9PXGxTGtVVgRWA2e6v7yqEk jiLWXSDgeT6suFn1+Tj5La3UM4601UvOAh1cIq5Gza1NiHRni62qBi9SGwqJ/d4AjiaGLrSzFrt FsZED9SfnvpUow5Oo9rgoMP3327pdzGLLhyt1ueyfeDgfXiH1arl8Z6volMxyp4noVQY9aPCLIX i5fp2s6jCaGQqzo31aPw6/TT8PG+KUHDpSjalBgimHhgS0YCQM4l1uVcjZNeWTbLMjYWVVyF4mF 1+/codHE6ARGT8RbnV2A== X-Received: by 2002:a05:620a:3186:b0:915:81ba:4071 with SMTP id af79cd13be357-915a9e098f5mr3148078685a.58.1780998469053; Tue, 09 Jun 2026 02:47:49 -0700 (PDT) X-Received: by 2002:a05:620a:3186:b0:915:81ba:4071 with SMTP id af79cd13be357-915a9e098f5mr3148074385a.58.1780998468486; Tue, 09 Jun 2026 02:47:48 -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 af79cd13be357-9158a00afafsm2047489485a.2.2026.06.09.02.47.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Jun 2026 02:47:48 -0700 (PDT) From: Yongxing Mou Date: Tue, 09 Jun 2026 17:46:36 +0800 Subject: [PATCH v7 14/15] drm/msm/dp: separate dp_display_prepare() into its own API 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: <20260609-dp_mstclean-v7-14-ea04113e8233@oss.qualcomm.com> References: <20260609-dp_mstclean-v7-0-ea04113e8233@oss.qualcomm.com> In-Reply-To: <20260609-dp_mstclean-v7-0-ea04113e8233@oss.qualcomm.com> To: Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , David Airlie , Simona Vetter 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 , Dmitry Baryshkov X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1780998393; l=3743; i=yongxing.mou@oss.qualcomm.com; s=20250910; h=from:subject:message-id; bh=PejPis5lPUmTa0t10X2rGcGnHfGkWszn1oUEuwhLLv0=; b=WijUeIalYja5wc6YJaju+YjwJ6B6aB82NXj1CgEZFrCY8AbHyt+izfR8DIFRPfig0Bqoys3x4 y7AHTm4eyHgBXEL7+fh93uvaWTePL7GNPjc4Kv4y/u3RSoTm67i1j9W X-Developer-Key: i=yongxing.mou@oss.qualcomm.com; a=ed25519; pk=rAy5J1eP+V7OXqH5FJ7ngMCtUrnHhut30ZTldOj52UM= X-Authority-Analysis: v=2.4 cv=H+DrBeYi c=1 sm=1 tr=0 ts=6a27e146 cx=c_pps a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=C3Dk8TwHQYyIj7nOf9RCJw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=rHTcTV9uYuKpyGuOXCsA:9 a=QEXdDO2ut3YA:10 a=PEH46H7Ffwr30OY-TuGO:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjA5MDA5MCBTYWx0ZWRfX6UylGRmxpnqt lDm4RRfNfY08pLA//pvF5flUpyIYYhdos0X4MT6M5L7QLT5t+WLvErKmfK7BvRkJwnM/3Kiu9ow QPmNN2Rx4fDNibFqzI0mUSB8mLU9Xqf17ieJh18rai88E7yBoImm/NcAmaF+I2TFuNQhe9tGGXN DAwOiXNbMMyPBQVvfxMY/H1nqtcfomzCYqpDffjHPQfOD6YM9UCIeqzu0HVtsBKHi/4w80eHgK5 wUzNLig1x7r9pRCQxmn7urB4HsEuussugjcrJmDaCmS5gK+6IEZfwIY0y7naGPEzORO5Y4ZkjnN 6STGZTg0wpTCFxnbEEI73m0oGZr9rmNeMfkDAzz5oqm5ThXKwrSZTkOzF76wdGf2VG2x9YR1fm0 3+TXaYDHBGaeHWT//YIsPd4G3M4DhKSQIi0mIaG6dx8yQ13EY5xp0N+y0GnyOH+jxXjnwTiYw3E HpLaEV680Hyd0PWHc/g== X-Proofpoint-ORIG-GUID: A9IQpNnN_nCecOyorLS7kU4b5OpjiILT X-Proofpoint-GUID: A9IQpNnN_nCecOyorLS7kU4b5OpjiILT X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-09_02,2026-06-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 bulkscore=0 clxscore=1015 adultscore=0 malwarescore=0 spamscore=0 lowpriorityscore=0 priorityscore=1501 impostorscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2606090090 From: Abhinav Kumar For MST, the link setup should only be done once when multiple sinks are enabled, while stream setup may run multiple times for each sink. Split the link-related preparation out of msm_dp_display_atomic_enable() so it can be called separately before the per-stream enable path. Signed-off-by: Abhinav Kumar Signed-off-by: Yongxing Mou Reviewed-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/dp/dp_display.c | 16 +++++++++++----- drivers/gpu/drm/msm/dp/dp_display.h | 5 +++-- drivers/gpu/drm/msm/dp/dp_drm.c | 6 ++++-- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c index 2d5ef087648c..cd1f2899b733 100644 --- a/drivers/gpu/drm/msm/dp/dp_display.c +++ b/drivers/gpu/drm/msm/dp/dp_display.c @@ -1403,8 +1403,8 @@ int msm_dp_modeset_init(struct msm_dp *msm_dp_display, struct drm_device *dev, return 0; } -void msm_dp_display_atomic_enable(struct msm_dp *msm_dp_display, - struct drm_atomic_commit *state) +void msm_dp_display_atomic_prepare(struct msm_dp *msm_dp_display, + struct drm_atomic_commit *state) { struct drm_crtc *crtc; struct drm_crtc_state *crtc_state; @@ -1426,10 +1426,16 @@ void msm_dp_display_atomic_enable(struct msm_dp *msm_dp_display, } rc = msm_dp_display_prepare_link(dp); - if (rc) { + if (rc) DRM_ERROR("DP display prepare failed, rc=%d\n", rc); - return; - } +} + +void msm_dp_display_atomic_enable(struct msm_dp *msm_dp_display) +{ + struct msm_dp_display_private *dp; + int rc = 0; + + dp = container_of(msm_dp_display, struct msm_dp_display_private, msm_dp_display); rc = msm_dp_display_enable(dp); if (rc) diff --git a/drivers/gpu/drm/msm/dp/dp_display.h b/drivers/gpu/drm/msm/dp/dp_display.h index 5116f7bbbd02..43ed79093e24 100644 --- a/drivers/gpu/drm/msm/dp/dp_display.h +++ b/drivers/gpu/drm/msm/dp/dp_display.h @@ -35,8 +35,9 @@ void msm_dp_display_set_psr(struct msm_dp *dp, bool enter); void msm_dp_display_debugfs_init(struct msm_dp *msm_dp_display, struct dentry *dentry, bool is_edp); void msm_dp_display_atomic_post_disable(struct msm_dp *dp_display); void msm_dp_display_atomic_disable(struct msm_dp *dp_display); -void msm_dp_display_atomic_enable(struct msm_dp *dp_display, - struct drm_atomic_commit *state); +void msm_dp_display_atomic_prepare(struct msm_dp *dp_display, + struct drm_atomic_commit *state); +void msm_dp_display_atomic_enable(struct msm_dp *dp_display); enum drm_mode_status msm_dp_display_mode_valid(struct msm_dp *dp, const struct drm_display_info *info, const struct drm_display_mode *mode); diff --git a/drivers/gpu/drm/msm/dp/dp_drm.c b/drivers/gpu/drm/msm/dp/dp_drm.c index 6b8923d9dff4..4bf1a5b7c3f9 100644 --- a/drivers/gpu/drm/msm/dp/dp_drm.c +++ b/drivers/gpu/drm/msm/dp/dp_drm.c @@ -55,7 +55,8 @@ static void msm_dp_bridge_atomic_enable(struct drm_bridge *drm_bridge, struct msm_dp_bridge *dp_bridge = to_dp_bridge(drm_bridge); struct msm_dp *dp = dp_bridge->msm_dp_display; - msm_dp_display_atomic_enable(dp, state); + msm_dp_display_atomic_prepare(dp, state); + msm_dp_display_atomic_enable(dp); } static void msm_dp_bridge_atomic_disable(struct drm_bridge *drm_bridge, @@ -152,7 +153,8 @@ static void msm_edp_bridge_atomic_enable(struct drm_bridge *drm_bridge, return; } - msm_dp_display_atomic_enable(dp, state); + msm_dp_display_atomic_prepare(dp, state); + msm_dp_display_atomic_enable(dp); } static void msm_edp_bridge_atomic_disable(struct drm_bridge *drm_bridge, -- 2.43.0