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 4F0DE3F0A85 for ; Tue, 9 Jun 2026 09:47:00 +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=1780998421; cv=none; b=Va/Oa7UnTC++D9kUM2+tTgatj8HsXbJIDHPs+omiDL8L1pes5tVLuHsCAyF1lBZlq3SThNub9EAewXJP31Simja7eNe9GyOHO3K2/LLEzC8NVbCi/KVOn5oM+omZwZB+VcaB/ih0WuwbRMi7WbMERhnCYwL5JJfwn0feBBdTMOg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780998421; c=relaxed/simple; bh=iMxmvh12Ai7OvQmfN+ngrN462Gqpte4TcdsH7pCGquA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=FqgQuy1BqfXDKxk0m7VNanVYJ+1rrZbRXwozspdi+XjIt+p8znMyhT8wjw1UZk8CN5IdJMKDJ0zE4uiB6K0u0HEnHaqGxSfejnV113XlduMCQhBxlw+wctryqAoMxU/2EC/7GR78iVQDHf9YtubW4Jywdp262YxHkJifiBNU4hw= 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=bS8dsvnG; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=IihvD/TQ; 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="bS8dsvnG"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="IihvD/TQ" 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 6597ruLr2001674 for ; Tue, 9 Jun 2026 09:46:59 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= CP5bG4WCek6MUN3KRDCTosp+Uu7SRi1xM31/3kH0myc=; b=bS8dsvnGYp8BTe+Y hIbR9TZ3sauMMQDPvIwEYiYYGw+1D0M2q6jHZnkFdhSC1hPMytsRU+mHtGNVVFpG 9hzuwYysa8kfpMwcrwATCg14S0xKrW7QKaRZJv21JwEr+kjY0TY0XTkTiv2IKnu+ k/l1Og4Qg3IDeTFlPOXWLDJoC+sLPV6DOCWq2OGhbICF0Q6rZyVOIth+rVYvhVL5 ZfWgmCOQnVx2IjP3GQKUD3knqTPfJBG5JjmqIVVEE5ZusxWdXkF51N35esd5eJNh yQhjA4/PsugeeweSQQkBCS8rQi0zJCM8ubu0G7d/5XcN3S87wd77LqSjUyXgdVOd +aKkPQ== Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4epe25rp7a-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 09 Jun 2026 09:46:59 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-91579011fd1so809322185a.1 for ; Tue, 09 Jun 2026 02:46:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780998418; x=1781603218; 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=CP5bG4WCek6MUN3KRDCTosp+Uu7SRi1xM31/3kH0myc=; b=IihvD/TQMew/XBLx22NKv0ymfXxG82r2Y7mry6ooe/bBJk6fYg5R2cQNB8S9IQQGsv DgsSVMe285gRxZ84nNn8JJRNUn087+ojp0554031bcvOnxXPyLiNV3x08TxlOOPrUAPj 6QbZuuwoMqK2VAVzLVMRHksdKj+ew5ua8mHsA9nsAc8kzxOyYz42utrASG9jO6IFvUtX 3qnnokgxKCtkPfXjAcGb1LLGs+VY5nRH2hCRMadiwb5Qp/d3/4ZpQlGz3DhIYPjpNN48 iX56qqulLDetQAnMkt5fTwk3oxifD/O9jLz+R7s2vkdU9u4cXmUi+uSG1ADrbqSTmQgG EOqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780998418; x=1781603218; 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=CP5bG4WCek6MUN3KRDCTosp+Uu7SRi1xM31/3kH0myc=; b=qZu5i8+vE5a3HQNhwcncLKZmG2ylXKkB5eLcUf3DvNyaXRWanNOjwoD0Ap9QHCjs8w oPF4c4S08qOsXzf1k0SLbk4H9/vH6wFwRxifvJVhxoWsMyBUO0pQrTb4+wBzg1SG8SUt Fv393MnNAI+cw/1uDAkSohCuEe8JWVYwTUEOhl9cj6EPUZtgqkIJ99PlrqaQCkzMXbzk PacqJjGXLoIXjuzE36KFk39fGjnCQzuzS5SzEYy3OdOGLQK+b76pPpm4btNSrUVdIQlF DrACudvXSSG7unPkKwXyUJ42Zvyw+ZDPvCoyn2c4efHZb4lD47WyPPlLWR74fIt1e2xU gSIA== X-Forwarded-Encrypted: i=1; AFNElJ+4F2vQNp1lcjC1VLlji4gmLMekEaUuvBiWh8P+NOUr9RrF+BhOUINIsi32MTFcdHsmzN2qtI89HdBx73o=@vger.kernel.org X-Gm-Message-State: AOJu0YySv4YS4hquBJXDNFivhCO4ugGw+fHQYxFNPzEOdlSWv3CLOPY2 B2NcflClxfF+MGJt4+dqSgC9vqRvON5lMmQrSOcoXxqaheFirZBekFMBxVH9EkCGrwdFxHvpVy5 5muzccB8ihNH0ya20NrXXSQjr8a4Ae4Vb5JQhvLiDGtHvipkeFQMcLMtWygNAzH8e5gk= X-Gm-Gg: Acq92OHkcJM+7uuBGgmaP0+awZxTbkIfyDhoS+ZY/g45rASOxLKsj8O6H9lijJWU5Tf +adXNksZFCadLxXRg0wCwIE6ec/w4hkCyvCfovYky5LI4P+sYlJjSO+4UdhkNdYgWR3cc0HcagV v4dq0smlLTHdNTFcYxgEGq4AztUa6n2THVz4lVYNgy9VJsVS1urEp+0FFhDD+imjmhQKh8MBYmU P8zdRpLnzRAPTIJG13X90eAjertcPWoXCzMSQErY+Zhk+qu3xB8ewjqfdC0CCSAwSbcBbwvkpLB yM6M79V4OyZSxcoL1JXAKJSCPQFiVMjVYtEvbUAFOMQ2BMFH+ZTpZj8CLsBwdjRsTarx9mIXE11 7hNxLOz/FFWLEY1VkoTsnUow+9sAyi4BeS+ryUZPHVT8kBkKdbiWbi2l2MXjPUHn/YjhcWINi/3 /54d1pWebciy7Hz1qDJA== X-Received: by 2002:a05:620a:4508:b0:915:d10e:8c4f with SMTP id af79cd13be357-915d10e8f57mr1444067185a.53.1780998418569; Tue, 09 Jun 2026 02:46:58 -0700 (PDT) X-Received: by 2002:a05:620a:4508:b0:915:d10e:8c4f with SMTP id af79cd13be357-915d10e8f57mr1444063585a.53.1780998418082; Tue, 09 Jun 2026 02:46:58 -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.46.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Jun 2026 02:46:57 -0700 (PDT) From: Yongxing Mou Date: Tue, 09 Jun 2026 17:46:26 +0800 Subject: [PATCH v7 04/15] drm/msm/dp: split msm_dp_ctrl_config_ctrl() into link parts and stream parts 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-4-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 , Dmitry Baryshkov X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1780998392; l=3833; i=yongxing.mou@oss.qualcomm.com; s=20250910; h=from:subject:message-id; bh=iMxmvh12Ai7OvQmfN+ngrN462Gqpte4TcdsH7pCGquA=; b=P4YjPxAtov+3XhLaRO1sHEGTtCxAfU1L5ZurDw0/+zRJss+yCB2WdkxIHiQTrc0fW7J919oJ9 v/1yQ8riTLxDek0sJx68eogrhNhBOkA6a8Uph4142mXJ1iOIy7E6TeC X-Developer-Key: i=yongxing.mou@oss.qualcomm.com; a=ed25519; pk=rAy5J1eP+V7OXqH5FJ7ngMCtUrnHhut30ZTldOj52UM= X-Proofpoint-ORIG-GUID: _e63zfvahF8_xiGWKm62ngf7S7-gJ9aF X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjA5MDA5MCBTYWx0ZWRfXykA7IydTcs55 FWMmEFmAwVVzJkdA/ybE5J8YRJWWwYd1QI+fWlBmsOb3sfRJPjRQ9Fa5vGaWo2CgE06Ba9szn3A T4a15i62RPTztJ0KBC/k0d38ZokdPBXyMdpKYoCcQIgiT636PaCCaeQgsv5ZmIKU8Fb/wFqIYYN +dyCz2XWzYJeSWSc+EGs5JzabVJrMooAH4Xq3x6uor68B73nl3HTs/YJse8Fxg7yn32ueuvImY3 NXex//xFI2j23LEu5cV9PUT87l9kqTU36rNAsKQAF8KtIya9WQFv3qLTy6MvR//dieopxYY3xtu fhunk35HwenNtc+Ur59P/WFBNV6/i4nhb1pgIST68GhYEGrBqgl1isJskW/C0Zt/g1DylKEe8cs 6IryEdlmHZybgzotjlT/B4r/7fuaclQAC5cNt25206G+fpdV16II0B8+nYPy49UlO2JIQ7v5TnD H4MZV5oZ92nAsChY0hQ== X-Proofpoint-GUID: _e63zfvahF8_xiGWKm62ngf7S7-gJ9aF X-Authority-Analysis: v=2.4 cv=LoqiDHdc c=1 sm=1 tr=0 ts=6a27e113 cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=C3Dk8TwHQYyIj7nOf9RCJw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=N4WGanfLxQUAwF0MUGsA:9 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O:22 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 lowpriorityscore=0 spamscore=0 bulkscore=0 phishscore=0 impostorscore=0 adultscore=0 suspectscore=0 malwarescore=0 clxscore=1015 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2606090090 The DP_CONFIGURATION_CTRL register contains both link-level and stream-specific fields. Currently, msm_dp_ctrl_config_ctrl() configures all of them together. Separate the configuration into link parts and stream parts to support MST. Signed-off-by: Yongxing Mou Reviewed-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/dp/dp_ctrl.c | 46 +++++++++++++++++++++++++++------------- 1 file changed, 31 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/msm/dp/dp_ctrl.c b/drivers/gpu/drm/msm/dp/dp_ctrl.c index 86ef8c89ad44..ed2ba47881fd 100644 --- a/drivers/gpu/drm/msm/dp/dp_ctrl.c +++ b/drivers/gpu/drm/msm/dp/dp_ctrl.c @@ -388,26 +388,44 @@ void msm_dp_ctrl_push_idle(struct msm_dp_ctrl *msm_dp_ctrl) drm_dbg_dp(ctrl->drm_dev, "mainlink off\n"); } -static void msm_dp_ctrl_config_ctrl(struct msm_dp_ctrl_private *ctrl) +static void msm_dp_ctrl_config_ctrl_streams(struct msm_dp_ctrl_private *ctrl, + struct msm_dp_panel *msm_dp_panel) { u32 config = 0, tbd; + + /* + * RMW: Called from atomic_enable(). Serialized by the DRM atomic framework. + */ + config = msm_dp_read_link(ctrl, REG_DP_CONFIGURATION_CTRL); + + if (msm_dp_panel->msm_dp_mode.out_fmt_is_yuv_420) + config |= DP_CONFIGURATION_CTRL_RGB_YUV; /* YUV420 */ + + tbd = msm_dp_link_get_test_bits_depth(ctrl->link, + msm_dp_panel->msm_dp_mode.bpp); + + config |= tbd << DP_CONFIGURATION_CTRL_BPC_SHIFT; + + if (msm_dp_panel->psr_cap.version) + config |= DP_CONFIGURATION_CTRL_SEND_VSC; + + drm_dbg_dp(ctrl->drm_dev, "stream DP_CONFIGURATION_CTRL=0x%x\n", config); + + msm_dp_write_link(ctrl, REG_DP_CONFIGURATION_CTRL, config); +} + +static void msm_dp_ctrl_config_ctrl_link(struct msm_dp_ctrl_private *ctrl) +{ + u32 config = 0; const u8 *dpcd = ctrl->panel->dpcd; /* Default-> LSCLK DIV: 1/4 LCLK */ config |= (2 << DP_CONFIGURATION_CTRL_LSCLK_DIV_SHIFT); - if (ctrl->panel->msm_dp_mode.out_fmt_is_yuv_420) - config |= DP_CONFIGURATION_CTRL_RGB_YUV; /* YUV420 */ - /* Scrambler reset enable */ if (drm_dp_alternate_scrambler_reset_cap(dpcd)) config |= DP_CONFIGURATION_CTRL_ASSR; - tbd = msm_dp_link_get_test_bits_depth(ctrl->link, - ctrl->panel->msm_dp_mode.bpp); - - config |= tbd << DP_CONFIGURATION_CTRL_BPC_SHIFT; - /* Num of Lanes */ config |= ((ctrl->link->link_params.num_lanes - 1) << DP_CONFIGURATION_CTRL_NUM_OF_LANES_SHIFT); @@ -421,10 +439,7 @@ static void msm_dp_ctrl_config_ctrl(struct msm_dp_ctrl_private *ctrl) config |= DP_CONFIGURATION_CTRL_STATIC_DYNAMIC_CN; config |= DP_CONFIGURATION_CTRL_SYNC_ASYNC_CLK; - if (ctrl->panel->psr_cap.version) - config |= DP_CONFIGURATION_CTRL_SEND_VSC; - - drm_dbg_dp(ctrl->drm_dev, "DP_CONFIGURATION_CTRL=0x%x\n", config); + drm_dbg_dp(ctrl->drm_dev, "link DP_CONFIGURATION_CTRL=0x%x\n", config); msm_dp_write_link(ctrl, REG_DP_CONFIGURATION_CTRL, config); } @@ -450,7 +465,8 @@ static void msm_dp_ctrl_configure_source_params(struct msm_dp_ctrl_private *ctrl msm_dp_ctrl_lane_mapping(ctrl); msm_dp_setup_peripheral_flush(ctrl); - msm_dp_ctrl_config_ctrl(ctrl); + msm_dp_ctrl_config_ctrl_link(ctrl); + msm_dp_ctrl_config_ctrl_streams(ctrl, ctrl->panel); test_bits_depth = msm_dp_link_get_test_bits_depth(ctrl->link, ctrl->panel->msm_dp_mode.bpp); colorimetry_cfg = msm_dp_link_get_colorimetry_config(ctrl->link); @@ -1628,7 +1644,7 @@ static int msm_dp_ctrl_link_train(struct msm_dp_ctrl_private *ctrl, u8 assr; struct msm_dp_link_info link_info = {0}; - msm_dp_ctrl_config_ctrl(ctrl); + msm_dp_ctrl_config_ctrl_link(ctrl); link_info.num_lanes = ctrl->link->link_params.num_lanes; link_info.rate = ctrl->link->link_params.rate; -- 2.43.0