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 A3E69372677 for ; Tue, 7 Apr 2026 02:32:31 +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=1775529153; cv=none; b=IAKV+4K7AVnP9IqC3n8t2B3FWgjWgD22SlE4rpB67se8+ThSObCm1Eq8QnOkiPIM409IMIF8FyQq3w6+vM9/TNSw1yVVphuvjnCucF5RDUY88BHlod346QVUhVEN8XJohyc85vPZFdpW8JhOFkjknxZwwJp/wpImM1KxElUTaCk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775529153; c=relaxed/simple; bh=E3PyKcVNuF6MbMAzZrdELaC9OfAq1D2qq4Y7RKbSu4s=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=tEQSyRGOlnB8iHoM+ZlCY0mx86pCxDbvkhZRGM3LuCd9ypFMBCUWYHyeeKNvu5uPtqu1O+G/9EIymp/CefLArFeF3KDZtIk/4/BnJRy3E+n2OGa9jkdrCvbwB9k5PUTftfK5u0M0gh0ubvZpdWgj+zVF+ceGH8ajYVxwF7/hdhc= 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=FPVFLrL2; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=X9vtX90G; 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="FPVFLrL2"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="X9vtX90G" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 636LQ0Q41403547 for ; Tue, 7 Apr 2026 02:32:30 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= ZDIJ06XkWqipUKqinNpKfVikyAkuaR1akNIDkorxtNI=; b=FPVFLrL2YSRQga4u ItYbNup8NUnlLLEwxwYR06GC58vTp3fKFj7siOeeyns80euFnFYUvLJHYexv69Ol Aj3g5c4uh6i2ugOQjtFWIe7ZA9t/v+s4i1CEOfMhBI3CwgFjA5z/qBQ1R/XCDam1 s4AGCotnnX64q9NmNj8wfzc4vqEQBBImZGdpK8kUC0K9Eqx7Uk/7xPeovkaUuaKG /LwfyQtEzYen1LV3IsCoFnrl2PJyTalDNhgrkocj7y0qBhZbMbq5OwSu5bvusRuV LIWNavMFMfVfyppMvfsWuND9K9EkLZLGEOCw2ENkDXse+s2MIkDaExdfvjm22Cgk PQt9cQ== Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dcmr88n73-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 07 Apr 2026 02:32:30 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2b2523e0299so116088105ad.3 for ; Mon, 06 Apr 2026 19:32:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775529150; x=1776133950; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=ZDIJ06XkWqipUKqinNpKfVikyAkuaR1akNIDkorxtNI=; b=X9vtX90GiZSNyIE0PYaS+Dny9gyLcCPd5MmTUvU2DcOPoIyOMaVoZ1XxETKZCU9Uh7 8vEluVNgQ/YJCtzWe2OLe8Veh0qA8x3/Cto5jmx439F4v2Ha/DubBDdfwasZ3I7U4IkP PWipOTPY8YbqisuTUGIxdMO2H9/BbrqHCWy9PGU3y6JJbQXkwErngku5c0IpDtYoLjEk 3cfhWnkEtYhxPrwSM0/fwUYUTcf2J8hg/exq3jUxUJ0BnjbALcR5r1c2mfaJbLnJD5lj y5CpfV7+NAnPyHyww/1D1NtbHsr2YdBS2bvpoKfXFWm9QFl902wm57sA/moS/5o/z6Eb EgxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775529150; x=1776133950; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=ZDIJ06XkWqipUKqinNpKfVikyAkuaR1akNIDkorxtNI=; b=g88fNVlIdIa2UpQ9P3tIV1A58xa8ZlBA82+CDwPyr2zX3tN12WM4d59iG/upb6tCBA a6KH2Pzuenr248XZ9prdf7dOnkZKiEYON1OW2c+bW+t5HoIxuj1ev5fNDF2w0UY1/TQ/ MHuS3M4epw957CgRevI9NpJYjCDxVis9VUbpKCArtOjzyVwEScFmWPq4Lvhnlo8dkUSx iFrlNpQK9wUr2ucQoTbtkWfD30Hb4sWu+NA8Jopy2C7tpaWnsLW/YzqwV62XL3RbpwfT Q7XVBb/Cgivn2PSbNNXiXZPDGfg5VcS6l0MVrXCwIZMLDXU+rTSfjp4HmM4G06y4ZdOR cF4w== X-Forwarded-Encrypted: i=1; AJvYcCVL+gV38d6bh5T/l2hqfsbgMxh/esY6c1GxXZVXlHVBXxPjdO4n7dqyVG94hlAem4VKcD7vV2u2U+zkHLA=@vger.kernel.org X-Gm-Message-State: AOJu0Yy/ftR5ohnHPsvlrN8/7vpNVeJkYvNq8KyFje2lg5k0A3ImVk8N NcWe2Ebll8VGD57/VHIq0aYYUf02lmVNp1mVW3ikOMkNiHeRCmttSEWk1XMzhowJwRO3H5bR/2y XjAXaZvZCBUnNVDaiCYQnqFUw5cP5mJZ33Y4Ay4JwFTjj0MYeF7e6DEkYdCWThh+AgY0= X-Gm-Gg: AeBDieuDNZDR0XbpYmMYcc7yPH8NNNIpSmwSiH6nAPO0aJMWltsliN4jwbnHFSgxubj s8qBncMrilDtRH+i6Y7Me1AhqR6EK5JUGP04weE1ls1SKkA9VSBzoQZQdUMvu1DzTmACIFFT6Hb F0tOUfj51+6CuiCAUCBTKpgCHpBsIKZX2V3h2Z0BRHJzVg/JcB03hZ6DJJRlCukmWx3jRH+X+jY D4/rYWv9invDjM6hfTI79IwMkDSUKCL0bIsdRRPdUUe9HO16JiFhuLK9vaMlOkLIPpOYsHcIr7e uNTRp5AZodObiCgaC75dZNO8u+AsTrtFWBHZx1bWxdSn0v0HkZ5d8V+gvx9NUfOz7H5byEsLdyi OEwdf4Sla3yIsGvPwKaAUSO85R5x45Q8RORmrLlcind3whw+g9BCnPcYFX33ezSuoMz8z8D1kKP ze9iekpvf9cU7Vgj2/JQ== X-Received: by 2002:a17:902:ebc4:b0:2b2:4697:78fa with SMTP id d9443c01a7336-2b28188a80cmr152058875ad.44.1775529149603; Mon, 06 Apr 2026 19:32:29 -0700 (PDT) X-Received: by 2002:a17:902:ebc4:b0:2b2:4697:78fa with SMTP id d9443c01a7336-2b28188a80cmr152058465ad.44.1775529149029; Mon, 06 Apr 2026 19:32:29 -0700 (PDT) Received: from [10.133.33.129] (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b2749a3a1asm152554985ad.62.2026.04.06.19.32.24 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 06 Apr 2026 19:32:28 -0700 (PDT) Message-ID: <10464c59-31cf-44e5-9d7d-68b04ec2529c@oss.qualcomm.com> Date: Tue, 7 Apr 2026 10:32:22 +0800 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3 36/38] drm/msm/dpu: use msm_dp_get_mst_intf_id() to get the intf id To: Dmitry Baryshkov Cc: Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , David Airlie , Simona Vetter , linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org, Abhinav Kumar References: <20250825-msm-dp-mst-v3-0-01faacfcdedd@oss.qualcomm.com> <20250825-msm-dp-mst-v3-36-01faacfcdedd@oss.qualcomm.com> Content-Language: en-US From: Yongxing Mou In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Proofpoint-ORIG-GUID: q2BPCu22F-Kvza3qla7FAjbHvJJIFYaE X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA3MDAyMiBTYWx0ZWRfXwhSH4Yaz4+g3 NgxS0cT8bqYkJ3AHVZYAK4jQS3W+QkyNqFsi3o0xkpF0v5+vMAKBx+bG3YthPWtHrFBiKtKH4OD bfHUTSluanMbYHXxSfpnTblF/fZSAA1o98ye90IZjJBu8Y2WtetqJQf2r0U0qwb7YRrk+MO3ni+ UcRwjvXGqSg6Sg2ql5tvAUT4d6iUOuL6MSbBhf3mxjk/hw4pBTYTaVT8XUOp8y9k5RQpYRJrX4X iuJCV7cwCZdv4eHWsrpEYJPIIbge0ULzxPQ0dpU85xK2YtO51YFltebxJP2Xcy3URHSmUvJ3Rk3 sIOEAMxPk5xpJukNY1tJ0lwvD3RyqlfGMOaGceBKokQoJsAOaJ09bllSixQLDDHCSUQfrMbMmft i0ctILnh74KrvXzLMFNCVYykd+H5fdyGz7tyuSY01mp2sLy3m5hw0dR70TqCY3tpP+dfR8HVX7N iKT2kV4V1x1ZLVs3Emg== X-Proofpoint-GUID: q2BPCu22F-Kvza3qla7FAjbHvJJIFYaE X-Authority-Analysis: v=2.4 cv=A/hc+aWG c=1 sm=1 tr=0 ts=69d46cbe cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=vb8O4NVuiNdqttNDiRcA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02: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-07_01,2026-04-03_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 spamscore=0 lowpriorityscore=0 malwarescore=0 clxscore=1015 phishscore=0 priorityscore=1501 impostorscore=0 bulkscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604070022 On 8/27/2025 7:42 AM, Dmitry Baryshkov wrote: > On Mon, Aug 25, 2025 at 10:16:22PM +0800, Yongxing Mou wrote: >> From: Abhinav Kumar >> >> Use msm_dp_get_mst_intf_id() to get the interface ID for the DP MST >> controller as the intf_id is unique for each MST stream of each >> DP controller. > > I think we have one sensible exception: SC8180X, where we have several > DP controllers and one shared DP interface, but let's forget about it > for now... > Sure. >> >> Signed-off-by: Abhinav Kumar >> Signed-off-by: Yongxing Mou >> --- >> drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 51 +++++++++++++++++++++++++---- >> 1 file changed, 44 insertions(+), 7 deletions(-) >> >> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c >> index 05e5f3463e30c9a6bd5b740580720ae2bf6b3246..2eb5397d15732b224372c68d0b2b7167da9f2896 100644 >> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c >> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c >> @@ -1429,17 +1429,52 @@ static void dpu_encoder_virt_atomic_disable(struct drm_encoder *drm_enc, >> >> static struct dpu_hw_intf *dpu_encoder_get_intf(const struct dpu_mdss_cfg *catalog, >> struct dpu_rm *dpu_rm, >> - enum dpu_intf_type type, u32 controller_id) >> + enum dpu_intf_type type, int enc_type, u32 id) >> { >> - int i = 0; >> + int i = 0, cnt = 0; >> + int controller_id = id >> 16; >> + int stream_id = id & 0x0F; >> >> if (type == INTF_WB) >> return NULL; >> >> - for (i = 0; i < catalog->intf_count; i++) { >> - if (catalog->intf[i].type == type >> - && catalog->intf[i].controller_id == controller_id) { >> - return dpu_rm_get_intf(dpu_rm, catalog->intf[i].id); >> + if (enc_type == DRM_MODE_ENCODER_DPMST) { >> + /* The intf order in dpu_intf_cfg matches the mapping in the DP HPG. >> + * example: >> + * DPU_8_4_0 - DP Controller intf to stream Mapping >> + * >> + * +-------------+----------+----------+----------+----------+ >> + * | stream_id |    0     |    1     |    2     |    3     | >> + * +-------------+----------+----------+----------+----------+ >> + * | DP0         | INTF_0   | INTF_3   | INTF_6   | INTF_7   | >> + * | DP1         | INTF_4   | INTF_8   |          |          | >> + * +-------------+----------+----------+----------+----------+ >> + * >> + * DPU_9_2_0 - DP Controller intf to stream Mapping >> + * >> + * +-------------+----------+----------+ >> + * | Controller  |    0     |    1     | >> + * +-------------+----------+----------+ >> + * | DP0         | INTF_0   | INTF_3   | >> + * | DP1         | INTF_4   | INTF_8   | >> + * | DP2         | INTF_6   | INTF_7   | >> + * +-------------+----------+----------+ >> + */ >> + DPU_DEBUG("controller_id %d for stream_id = %d\n", controller_id, stream_id); >> + for (i = 0; i < catalog->intf_count; i++) { >> + if (catalog->intf[i].type == INTF_DP >> + && controller_id == catalog->intf[i].controller_id) { > > && should be on the previous line > >> + if (cnt == stream_id) > > if (cnt++ == stream_id) return; > >> + return dpu_rm_get_intf(dpu_rm, catalog->intf[i].id); >> + cnt++; >> + } >> + } > > return NULL, drop else{} > Hi,Got it.. Does this code looks fine? ...... for (i = 0; i < catalog->intf_count; i++) { if (catalog->intf[i].type == disp_info->intf_type && controller_id == catalog->intf[i].controller_id) if (cnt++ == stream_id) return dpu_rm_get_intf(dpu_rm, catalog->intf[i].id); } ... >> + } else { >> + for (i = 0; i < catalog->intf_count; i++) { >> + if (catalog->intf[i].type == type >> + && catalog->intf[i].controller_id == controller_id) { >> + return dpu_rm_get_intf(dpu_rm, catalog->intf[i].id); >> + } >> } >> } >> >> @@ -2670,7 +2705,9 @@ static int dpu_encoder_setup_display(struct dpu_encoder_virt *dpu_enc, >> >> phys_params.hw_intf = dpu_encoder_get_intf(dpu_kms->catalog, &dpu_kms->rm, >> disp_info->intf_type, >> - controller_id); >> + dpu_enc->base.encoder_type, >> + controller_id << 16 >> + | disp_info->stream_id); > > No need to, just pass whole disp_info pointer. > Got it. Thanks. >> >> if (disp_info->intf_type == INTF_WB && controller_id < WB_MAX) >> phys_params.hw_wb = dpu_rm_get_wb(&dpu_kms->rm, controller_id); >> >> -- >> 2.34.1 >> >