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 546C014D719 for ; Mon, 30 Mar 2026 07:51:44 +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=1774857105; cv=none; b=J9YlGdtTdpIhtvXtFtw75TViSzywQWiFOsa2Mt5wA5bSQqgX+t6zbT3PJwhyPEoNOOj+qtUVQjvYt8c/ja4Vk/Obs+TMre+H94PJ4SDIcDMrKFXEM4LltHXm25Eg4FNr4I/dBgjyEHuGmw3C8KOBO2yhDga2Cxs0q+NaOWUnMqQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774857105; c=relaxed/simple; bh=JUw+2cbgpxanUtdxHxVY5HcaiGSr6oezlkMjfnTm8Aw=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=EojIXXvil7ieaflEu/G8UcjGKkGz7S/edx8ikMnMSI0hBSWMrBhfa5dy6Z1w7caEaEH0BcoFWqRScj77KksuR1p9reIR7sPhAohhpdn4yC6KTVlZ20DbUuSeGQ+K3boTzJJhwuehCVRdaZEeGJbqDkyRQX4D53axx7ViqFmh7kA= 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=FJLP8uhU; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=QFCJsfla; 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="FJLP8uhU"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="QFCJsfla" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62U3b2MF866610 for ; Mon, 30 Mar 2026 07:51:43 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= bMiUe9iN06BRdJhoHLMir2LU+GzeH6cFH1Hb19BsFhA=; b=FJLP8uhUBXQdg1zp exyv/CzkrEPMgAoYTZs2W41+N+Z3yk1Dv5UnZ3l0wYe4U+LqKWn1KcKmKxE5g4H/ pCjUFrCR3kLfroOV45hYQCvVEAVMgM/0wa4w7PqOlnAwXGaTpGGiLet2x3KhJVpu Qjt3g/sLnZfjsT99OdQD2xYfmuJ5LCCeya6VXQpn0FYIH22nBj/1urwXAzxG6t21 ObHbzwLd1RoJNFnLwrfL3oOpbJZwiKw/BSeizypyH311fAalSUHooHuDGEpe/kdj IDVMEo8IXt4qTzvcEFaWJDJwNv6II4qpYvp81zaCILgLc/swZz/NbWRcqhEEJz/b tSeksQ== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d685hcyps-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 30 Mar 2026 07:51:43 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2b256ed2cc8so5828405ad.3 for ; Mon, 30 Mar 2026 00:51:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774857103; x=1775461903; 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=bMiUe9iN06BRdJhoHLMir2LU+GzeH6cFH1Hb19BsFhA=; b=QFCJsflae4yDtOcit8gnTNYO958rJT3Hhowenx29KwJH5NyAPF2crzpqbFIlBhXop8 f4StZgtIbb/5xqVy5aydQwaOYpZLEK4V3AWmvhlYjl86saBXhDltTdW4irKi38QyCgHq 9IeLbhUk4CHG2JzeKHpIPcYwOk3VrSL5A5ZSMa+gTCeXGIZQU7X/zFfea6P2jZmtOA+E f59u29PoWsUU05kbMnH3E1ErA9gwtC8u6arMlf4Kqxjskn6xWlkCjl3tECxj2+rAPbWM AJG6sapGcxlv72p5yjBq2h0s+lQ/A+Vu9ACxxwKDJeXprgrKsmt3HxY6uuIGpO1NjjnZ xxxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774857103; x=1775461903; 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=bMiUe9iN06BRdJhoHLMir2LU+GzeH6cFH1Hb19BsFhA=; b=Fxpnm9zqn35kcEQMLg146PRzW1j/Lp9QRjI8gZTM5Kvq74IgM5B4s0kp7XxoO2vG/s 1EZCeH8abzcrXC2ePzIQWA1NZkmKZgaRWUABznWejHscgi0VCuF64OmafoxvLIjg8V6Q HLOSylsuQToYRGCG9crgEL2Ss3sLh6F/8lKXQjq6D0x6ownjWC+P2k0DyIuTq0i0G5b3 ZcTLpLLT+KG+wiEiY34dpvuiIh3w2+AzTAOHsLWGlaEzi35Fbp8980yKWJYH7MMoHmcz 5WdMQMiRDOhFUJEiN69SUrQWsKteXrG6bc8GCYqhau9MTBIePJ+lE4ynx1FZEWtkwFUS ifLg== X-Forwarded-Encrypted: i=1; AJvYcCXrMtSNoimAWwbI62N02O0fTTaZ+0MX+nDsBdZv/zOYgYTAWaEM07CrQdHPf/AE48nlSmD2mpIYNuioaCU=@vger.kernel.org X-Gm-Message-State: AOJu0YxTBTSNeNT2CG1jSXkGNSnckkLqnOESfkc0+dpnpVK+tcAdeFAv D9gIEgeOjzWYM4nYZ8bZ7t0/v00t6M0cFCsx5HRiZeQpSNTOLVT6ZqDZ+8lI9h2VGNNCoJhivEm rMJNOoVnQZiVxH9SbUp7Ygg5liMSV72E14qpNyNkDizFUVjVPGsW7vupadbYxrh2izsw= X-Gm-Gg: ATEYQzwM3oa9lnukUohaoAAaIiPhxdC5R6bglz51L4zsduWeKldumQO90myOIUe4j7u aZPAI3fZB+1j+Jx8CcERXnhm+YRtyyL2OP43a2TPPOpeOjy+Jt0XtuGDfPNWSjESiwVZktjSEaG ciZELLMWGLUyW5Jma5hcIbNq4vvf+3Vh6cDagkgwael0f9e7WW2Y09LVNzOwIfUvbsD6szSqcG4 QPp38SpgnFolg6EnAfEE5erx0Ph1n7OaoWY/y0EIdosgfR+cPZ3LDxdh4Gb+CgXQ+Cib6JsnMFA WqDcZdd8K4cmpSpCDWNcFIFgvrOZEKbgFPQ1mnU7u8QxrvH5obhMOqQbvv/4oVo3XZmXBq59wgl Mx8hKl+qcMDmgME7NX4pv/lZ9IyHZFHyigN4dB8QpaF1CQnuj X-Received: by 2002:a17:903:2f82:b0:2b2:497e:3f6d with SMTP id d9443c01a7336-2b2497e4b68mr59145575ad.8.1774857102832; Mon, 30 Mar 2026 00:51:42 -0700 (PDT) X-Received: by 2002:a17:903:2f82:b0:2b2:497e:3f6d with SMTP id d9443c01a7336-2b2497e4b68mr59145235ad.8.1774857102341; Mon, 30 Mar 2026 00:51:42 -0700 (PDT) Received: from [10.64.69.173] ([114.94.8.21]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b24277e8d3sm69819085ad.55.2026.03.30.00.51.37 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 30 Mar 2026 00:51:41 -0700 (PDT) Message-ID: <1a45815d-1354-43f2-abb4-438e55e2cf44@oss.qualcomm.com> Date: Mon, 30 Mar 2026 15:51:33 +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 02/38] drm/msm/dp: remove dp_display's dp_mode and use dp_panel's instead 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-2-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: 7bit X-Authority-Analysis: v=2.4 cv=csKWUl4i c=1 sm=1 tr=0 ts=69ca2b8f cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=Uz3yg00KUFJ2y2WijEJ4bw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=BixJ-8ITQ80jKJ6xuOMA:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzMwMDA2MCBTYWx0ZWRfX520hnR0lE9S0 2bOZ3ycMjbcy7n9CPJ2gxs6m3sTlzWsUSpnplOT0pYS6yYQS3cPBRLCyKTDjtuFraqAY0tN93v8 XMpFmogtCqBrQ+DcNNXVIf0ssMXirsBrN0FAy6vDNfMSCmz4+xgxRyGmXeRFae2NLVqbFUF3Crf Kcp33X7K6CMqQYlYYJJcP2ceRSq4Gco59oQalPT62U86KBLEyhUZIF58jS7owepBLCEh6/dPHN5 pimPd3IeISEFu2vJzr422xLNodo6qCL2Z3aGG9UBiVx+arxLAG4BkPAHydPAAxvVhnX2KV0MKj5 ErQOW7XOgbht+hQKlGr6oYANKxCrL/SqsDHl6CyRYAVYgD1i2DRhyWH0NjiBYZQOA+yZOaJE/WH yAH+rPQQkZ4MMQBkFf5NxQpA74m1Jyhf85ZP19+iHA6m/yt3+KcF9vMg8oJPdYGKimqbGwrkjvf cHih6tPoXisCKZUCKQQ== X-Proofpoint-ORIG-GUID: UMFfyKi4gloo3INLG5SwkE2qgAHq0UNU X-Proofpoint-GUID: UMFfyKi4gloo3INLG5SwkE2qgAHq0UNU 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-03-29_05,2026-03-28_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 malwarescore=0 clxscore=1015 adultscore=0 impostorscore=0 priorityscore=1501 bulkscore=0 lowpriorityscore=0 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603300060 On 8/26/2025 12:50 AM, Dmitry Baryshkov wrote: > On Mon, Aug 25, 2025 at 10:15:48PM +0800, Yongxing Mou wrote: >> From: Abhinav Kumar >> >> dp_display caches the current display mode and then passes it onto >> the panel to be used for programming the panel params. Remove this >> two level passing and directly populate the panel's dp_display_mode >> instead. >> >> Signed-off-by: Abhinav Kumar >> Signed-off-by: Yongxing Mou >> --- >> drivers/gpu/drm/msm/dp/dp_display.c | 66 ++++++++++++++----------------------- >> 1 file changed, 24 insertions(+), 42 deletions(-) >> >> diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c >> index dadf31bc37763c4f07f68b76fbbe33fb77b20850..632a1191e4e48fecd7dbda2f6ec6b8ed0aeebc93 100644 >> --- a/drivers/gpu/drm/msm/dp/dp_display.c >> +++ b/drivers/gpu/drm/msm/dp/dp_display.c >> @@ -60,7 +60,6 @@ struct msm_dp_display_private { >> struct msm_dp_panel *panel; >> struct msm_dp_ctrl *ctrl; >> >> - struct msm_dp_display_mode msm_dp_mode; >> struct msm_dp msm_dp_display; >> >> /* wait for audio signaling */ >> @@ -649,16 +648,29 @@ static int msm_dp_init_sub_modules(struct msm_dp_display_private *dp) >> } >> >> static int msm_dp_display_set_mode(struct msm_dp *msm_dp_display, >> - struct msm_dp_display_mode *mode) >> + const struct drm_display_mode *adjusted_mode, >> + struct msm_dp_panel *msm_dp_panel) >> { >> - struct msm_dp_display_private *dp; >> + u32 bpp; >> >> - dp = container_of(msm_dp_display, struct msm_dp_display_private, msm_dp_display); >> + drm_mode_copy(&msm_dp_panel->msm_dp_mode.drm_mode, adjusted_mode); >> + >> + if (msm_dp_display_check_video_test(msm_dp_display)) >> + bpp = msm_dp_display_get_test_bpp(msm_dp_display); >> + else >> + bpp = msm_dp_panel->connector->display_info.bpc * 3; >> + >> + msm_dp_panel->msm_dp_mode.bpp = bpp ? bpp : 24; /* Default bpp */ >> >> - drm_mode_copy(&dp->panel->msm_dp_mode.drm_mode, &mode->drm_mode); >> - dp->panel->msm_dp_mode.bpp = mode->bpp; >> - dp->panel->msm_dp_mode.out_fmt_is_yuv_420 = mode->out_fmt_is_yuv_420; >> - msm_dp_panel_init_panel_info(dp->panel); >> + msm_dp_panel->msm_dp_mode.v_active_low = >> + !!(adjusted_mode->flags & DRM_MODE_FLAG_NVSYNC); >> + msm_dp_panel->msm_dp_mode.h_active_low = >> + !!(adjusted_mode->flags & DRM_MODE_FLAG_NHSYNC); >> + msm_dp_panel->msm_dp_mode.out_fmt_is_yuv_420 = >> + drm_mode_is_420_only(&msm_dp_panel->connector->display_info, adjusted_mode) && >> + msm_dp_panel->vsc_sdp_supported; >> + >> + msm_dp_panel_init_panel_info(msm_dp_panel); >> return 0; >> } >> >> @@ -1328,7 +1340,7 @@ bool msm_dp_wide_bus_available(const struct msm_dp *msm_dp_display) >> >> dp = container_of(msm_dp_display, struct msm_dp_display_private, msm_dp_display); >> >> - if (dp->msm_dp_mode.out_fmt_is_yuv_420) >> + if (dp->panel->msm_dp_mode.out_fmt_is_yuv_420) >> return false; >> >> return dp->wide_bus_supported; >> @@ -1389,10 +1401,6 @@ void msm_dp_bridge_atomic_enable(struct drm_bridge *drm_bridge, >> bool force_link_train = false; >> >> msm_dp_display = container_of(dp, struct msm_dp_display_private, msm_dp_display); >> - if (!msm_dp_display->msm_dp_mode.drm_mode.clock) { >> - DRM_ERROR("invalid params\n"); >> - return; >> - } >> >> if (dp->is_edp) >> msm_dp_hpd_plug_handle(msm_dp_display, 0); >> @@ -1405,12 +1413,6 @@ void msm_dp_bridge_atomic_enable(struct drm_bridge *drm_bridge, >> if (msm_dp_display->link->sink_count == 0) >> return; >> >> - rc = msm_dp_display_set_mode(dp, &msm_dp_display->msm_dp_mode); > > Why is it being moved from atomic_enable? You can access crtc_state here > and thus the adjusted_mode. The mode_set is clearly declared as > deprecated. We should move moving code from that function rather than > adding code to it. > Got it. Next version wil drop .mode_set() and move it to msm_dp_bridge_atomic_enable. >> - if (rc) { >> - DRM_ERROR("Failed to perform a mode set, rc=%d\n", rc); >> - return; >> - } >> - >> if (dp->link_ready && !dp->power_on) { >> msm_dp_display_host_phy_init(msm_dp_display); >> force_link_train = true; >> @@ -1479,31 +1481,11 @@ void msm_dp_bridge_mode_set(struct drm_bridge *drm_bridge, >> msm_dp_display = container_of(dp, struct msm_dp_display_private, msm_dp_display); >> msm_dp_panel = msm_dp_display->panel; >> >> - memset(&msm_dp_display->msm_dp_mode, 0x0, sizeof(struct msm_dp_display_mode)); >> - >> - if (msm_dp_display_check_video_test(dp)) >> - msm_dp_display->msm_dp_mode.bpp = msm_dp_display_get_test_bpp(dp); >> - else /* Default num_components per pixel = 3 */ >> - msm_dp_display->msm_dp_mode.bpp = dp->connector->display_info.bpc * 3; >> - >> - if (!msm_dp_display->msm_dp_mode.bpp) >> - msm_dp_display->msm_dp_mode.bpp = 24; /* Default bpp */ >> - >> - drm_mode_copy(&msm_dp_display->msm_dp_mode.drm_mode, adjusted_mode); >> - >> - msm_dp_display->msm_dp_mode.v_active_low = >> - !!(msm_dp_display->msm_dp_mode.drm_mode.flags & DRM_MODE_FLAG_NVSYNC); >> - >> - msm_dp_display->msm_dp_mode.h_active_low = >> - !!(msm_dp_display->msm_dp_mode.drm_mode.flags & DRM_MODE_FLAG_NHSYNC); >> - >> - msm_dp_display->msm_dp_mode.out_fmt_is_yuv_420 = >> - drm_mode_is_420_only(&dp->connector->display_info, adjusted_mode) && >> - msm_dp_panel->vsc_sdp_supported; >> + msm_dp_display_set_mode(dp, adjusted_mode, msm_dp_panel); >> >> /* populate wide_bus_support to different layers */ >> - msm_dp_display->ctrl->wide_bus_en = >> - msm_dp_display->msm_dp_mode.out_fmt_is_yuv_420 ? false : msm_dp_display->wide_bus_supported; >> + msm_dp_display->ctrl->wide_bus_en = msm_dp_panel->msm_dp_mode.out_fmt_is_yuv_420 ? >> + false : msm_dp_display->wide_bus_supported; >> } >> >> void msm_dp_bridge_hpd_enable(struct drm_bridge *bridge) >> >> -- >> 2.34.1 >> >