From nobody Fri Oct 3 05:27:00 2025 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 07AB6190692 for ; Fri, 5 Sep 2025 00:38:43 +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=1757032725; cv=none; b=dvAoTZw4cvTUGEPQFm7dDC+725VlZ61FsE2iu1hT6OmiorsYQzUBWbi94HIaRlhjWW1iSj1rJc10CcNFVmJzd2531aEm+Gk8ev8iDn6W3ID80014t/EVVw6SWA+E9h6odItGxt38zhw7Vy6ZJS7QeJ7AR5JEecofBcqKhyZn3fQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757032725; c=relaxed/simple; bh=pjUEPhdOzoPN8Hx0y8aVOu6btqr80/b31OiPFcm79wI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ockFQPCKFOsPooVZxlqUAc1qr6CyjlvPU3GmH/JXwaYSFzGE+FhC+uwdFaQceTd9g8OwYG+j0vO+7LJJRvEKhvrLlAvutJtpJt2Btqbygay/uSjJ+3IClSTI20Mgl9dpZGS58ROxj2fyhi1mNLqilPrL/0poN756FgCw/E8plZs= 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=L8LxnQMk; 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="L8LxnQMk" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 584I0iG0003019 for ; Fri, 5 Sep 2025 00:38: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= yTzO62qQEXkfh7mQFeF6JWdziRWqLc1w2y3Ayzm1rok=; b=L8LxnQMkdelWd9bW Fv8Ct44/t9adiGQQXxAD7FZsreLPJVR0TOPF3ukyWzm55bmTb61dfRKym1W1NrYf 4qvRZUKkD4/1OZhfagafn1kNEaKOgIV61fkn6z/agyahxT2kWLgyAa2Z+Aww+e4x lQbG+WoZ7cryx9tzynrZv1jE9+iPKerlXXdAyQNUdTY1IfJdp937gB6biT9/Pmfb Mok0gw6eFoO1UmSyXAuTVVHGKRRoM52YFamNObZyMFH1UMrEeFXO4vwCeI5PdZ41 a9G3Krd6BEBJE5kq67I6l5EdMyqkrTobyQBtoUTHt1DEPFgXlbhyDtcool0mnuYd 5Br25A== Received: from mail-qv1-f69.google.com (mail-qv1-f69.google.com [209.85.219.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48ush395fm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Fri, 05 Sep 2025 00:38:43 +0000 (GMT) Received: by mail-qv1-f69.google.com with SMTP id 6a1803df08f44-70ddadde46bso29040576d6.2 for ; Thu, 04 Sep 2025 17:38:42 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757032721; x=1757637521; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=yTzO62qQEXkfh7mQFeF6JWdziRWqLc1w2y3Ayzm1rok=; b=iAo5KWIoder4Yki8YMkMP10F5iJOY0yU99CTWx+FnG4c+uFLE6cjsfdreuCxndEoVa RlTlCTUgmvAHZv60SVWhUBe5wTbDsdEUADjNLMC0xRV7oh8RGLusZX19tzWyrHIlw77y vgFK6KERjEFMOqJoHtQ7pFH+glgms+RdSvoETH/G3r7kV7LEWOFxzUMM4MuZMBxbdz6G MKIt3ftCYZQ8ICxbDTzubVYeR5sF3tomsPcQqBOD1qJx8qAZyPlq7OfpU4/cSEdju9q/ O7W2Vas6iiofNMLh4F5jO1yREkzUQsk0eXURVdejf3NRAJeMiO2hpPTKBGOGU2VOfybF ocTw== X-Forwarded-Encrypted: i=1; AJvYcCVNLS4CE3uzs0b7VdY8GzyfulDcg2mc/Zes/SQA2/Ob8ixmoUIs0lUkvvOtiMrzpdQpKZ8YsTL60XkVEK0=@vger.kernel.org X-Gm-Message-State: AOJu0Yy54kKK86TkdSoKPvS0x0ehWz2Gj3YBYuLrlZaFN5nhyKyI1B7z ioyZ78jkq/teGpyKuQpgF2AoZzRV/X5PnRpeOgf4vK9Mm9PTkuAEpjRcUATjjb4X1NbLdY3HIBP I8AOFwytKKTkxgKg4+wSKcMgkGbNK7XIihXq77O4NLo4+b+kLaOckkCa2hAHkpFcfIoY= X-Gm-Gg: ASbGnctO17k9XsRuJ1+kDR3St3cYYLjFIlo6OxvZjP+sB/bFAkjJ4Y5yglF39hgDIVb fEEUvLON5WOKySat+0hhZnV1aU3v2c36/kRQEAkJGVn38n0LThxeu4A7KNSi2GvO0Tq6RA/dKwp McNftOO2aIboA6BLIODXt2Dm3SoEtFCiMqVqN3Cv8h531tHK0QaFoIQr/q7SABik6FJI+X1O7zS jKDo2kW9qRBs3Soare1pmwkdxfxgFjCEDXMYLys6Lu6C5QJIEPPN9OxOvjrphrEqYVpxbQ+NahA Y6o7oQ2xQOrwUu+R6PnMARtlyRmsG8tfSFZm99CjGGk6eynBXBVKIWDGt3Dp1Jp6XIFqa1NFB/9 qZaGEd2dEqGJqiMvbtlkrND2EMXMmM9eaY0R1ELvme1Z0BU6mnP5N X-Received: by 2002:a05:6214:3018:b0:711:a23a:281 with SMTP id 6a1803df08f44-711a23a0c15mr194916396d6.65.1757032721590; Thu, 04 Sep 2025 17:38:41 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFuZohjFcvi9xTjLiW9tme41He1itQHQ2UbVUwvfQWw3Lg8jdFYcIPQk8JEEU87+AyJpRPc9g== X-Received: by 2002:a05:6214:3018:b0:711:a23a:281 with SMTP id 6a1803df08f44-711a23a0c15mr194916216d6.65.1757032721142; Thu, 04 Sep 2025 17:38:41 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5608acfd938sm1510059e87.109.2025.09.04.17.38.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Sep 2025 17:38:40 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 05 Sep 2025 03:38:30 +0300 Subject: [PATCH v2 01/12] drm/msm/disp: set num_planes to 1 for interleaved YUV formats 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: quoted-printable Message-Id: <20250905-dpu-formats-v2-1-7a674028c048@oss.qualcomm.com> References: <20250905-dpu-formats-v2-0-7a674028c048@oss.qualcomm.com> In-Reply-To: <20250905-dpu-formats-v2-0-7a674028c048@oss.qualcomm.com> To: Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , David Airlie , Simona Vetter , Jordan Crouse Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1685; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=pjUEPhdOzoPN8Hx0y8aVOu6btqr80/b31OiPFcm79wI=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoujEJ3w9H0sgiKbSsYOCwI2yiJJaK8fGHDXl/7 ZOVoYJbKxKJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaLoxCQAKCRCLPIo+Aiko 1SnZB/90j2/8ZftKy0xyZheaergMQBEpsiEvBVvhfXlEtu+HzAJBjAEOUlwblXQ+Ygjd0HsxV9e xBaJ1l/OxtauN6WlE5NwuFZk5Nf89YVMZ+v03D5CbAlsVMn+FLhzizhHrw0VoZPsQx1Z27k5tEi 6jRSUhqbN6fN+94jYERIOjUTbHtxjzdJ7spcVxcGzk6QkcFMX9UBqllWURLIDEwzK6WYS/Ybpb6 +/ruy7WsFUdV5Jb546wmudvXtVGw7j55jtU5jfvKRPmLGPystk9ePmsqmTHi0qDeTNkypzZIH0M oRvWreNT1kqRFaAe1JkR6k+O8QgL6B1jqKHxgcUVuW6CeGQ/ X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAzMiBTYWx0ZWRfX5Ht9knR/u/p5 2RTr+LA6qAQoj3HxqMkrJPAq4SMndCoVmnz3poBOGLNC81Ap96lDgNcdcWfO6SyRTDdgnFOnWwX fWhwvEJ6zeWkMdHl+KEiAtcdqzbAYjwyQPLfzh5hxDnwRQQErVDW5fSt58KKnAgZvQs0swUqPW9 mm2IT77VAu1/5OZ6DfSs/llcyHQFa7pzLqRfbA8wTVRMbEug4p4Vz0CT97OC6jXNcsw4UinrY3A y714jmagvuhxLGAbp66cY45VyfvnLidJfqzMpkLtq9Scm3IqA8nrjQIvvssDJpFLrZzir4h2pzA MTgTtGvUiwwRvPc64GS8b//m6bieZO7cRBBwuwmWfhmhHqP55ZVaaTWXM8g2urD5Q9h99QBiM0J 3pz7Z2xn X-Proofpoint-ORIG-GUID: CLx9pwn2LZIKhWHXpDz_UECWWuhNSB0u X-Proofpoint-GUID: CLx9pwn2LZIKhWHXpDz_UECWWuhNSB0u X-Authority-Analysis: v=2.4 cv=M9NNKzws c=1 sm=1 tr=0 ts=68ba3113 cx=c_pps a=wEM5vcRIz55oU/E2lInRtA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=EUspDBNiAAAA:8 a=DB8TyEHaRv6uusbT9jkA:9 a=QEXdDO2ut3YA:10 a=OIgjcC2v60KrkQgK7BGD:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-04_08,2025-09-04_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 adultscore=0 spamscore=0 priorityscore=1501 malwarescore=0 clxscore=1015 suspectscore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300032 Interleaved YUV formats use only one plane for all pixel data. Specify num_planes =3D 1 for those formats. This was left unnoticed since _dpu_format_populate_plane_sizes_linear() overrides layout->num_planes. Fixes: 25fdd5933e4c ("drm/msm: Add SDM845 DPU support") Reviewed-by: Jessica Zhang Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/disp/mdp_format.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/mdp_format.c b/drivers/gpu/drm/msm/di= sp/mdp_format.c index 426782d50cb49d57a0db0cff3a4bb50c5a0b3d1a..eebedb1a2636e76996cf82847b7= d391cb67b0941 100644 --- a/drivers/gpu/drm/msm/disp/mdp_format.c +++ b/drivers/gpu/drm/msm/disp/mdp_format.c @@ -479,25 +479,25 @@ static const struct msm_format mdp_formats[] =3D { 0, BPC8, BPC8, BPC8, C2_R_Cr, C0_G_Y, C1_B_Cb, C0_G_Y, false, CHROMA_H2V1, 4, 2, MSM_FORMAT_FLAG_YUV, - MDP_FETCH_LINEAR, 2), + MDP_FETCH_LINEAR, 1), =20 INTERLEAVED_YUV_FMT(UYVY, 0, BPC8, BPC8, BPC8, C1_B_Cb, C0_G_Y, C2_R_Cr, C0_G_Y, false, CHROMA_H2V1, 4, 2, MSM_FORMAT_FLAG_YUV, - MDP_FETCH_LINEAR, 2), + MDP_FETCH_LINEAR, 1), =20 INTERLEAVED_YUV_FMT(YUYV, 0, BPC8, BPC8, BPC8, C0_G_Y, C1_B_Cb, C0_G_Y, C2_R_Cr, false, CHROMA_H2V1, 4, 2, MSM_FORMAT_FLAG_YUV, - MDP_FETCH_LINEAR, 2), + MDP_FETCH_LINEAR, 1), =20 INTERLEAVED_YUV_FMT(YVYU, 0, BPC8, BPC8, BPC8, C0_G_Y, C2_R_Cr, C0_G_Y, C1_B_Cb, false, CHROMA_H2V1, 4, 2, MSM_FORMAT_FLAG_YUV, - MDP_FETCH_LINEAR, 2), + MDP_FETCH_LINEAR, 1), =20 /* 3 plane YUV */ PLANAR_YUV_FMT(YUV420, --=20 2.47.2 From nobody Fri Oct 3 05:27:00 2025 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 5DD2C1991C9 for ; Fri, 5 Sep 2025 00:38:45 +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=1757032727; cv=none; b=N/sKAIkQcClFdk2qwsxJxYlpN3JLipmXI0/VaEkUZO3edJtuTGxkiW3Cc7WLQLP/dPzW+LRVGkcMc7DOp9oatAjFJFwssj6/3sCAq7G9MjbQbRont3OKxNQBBdCHlPO1FNpl7XkiZ55WzQ7vqenF1i03ZeP6dHAkZth7FlkgDZE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757032727; c=relaxed/simple; bh=o39sacG97yC+L8l69fpJCUgj4xq9EtSHTWrOyUyGs+Y=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=jV9inWu2lf3Rj7eGSohPi0DQlJuqAF03AITopDC39k0eoCtWyi365/fFyrgcTMtnrZjVXiqdth38/b/z+zATERdisioylB4t04CCQe3czjEtvPF1IGIMQR4EzZGoPH2JLS08uV2E92P1y3Qh1YE3Ip4mNtuBd+K6rPhWb/HEBd8= 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=EsvKhhdR; 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="EsvKhhdR" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 584JCXV4023889 for ; Fri, 5 Sep 2025 00:38:44 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= StUJ+iCclmQ41HjQV5lQ20sHIRMRDK/w0JA6wzKy7T8=; b=EsvKhhdRefG6BvSE VcdRNNHHDo1rurwOaTlz5MI6kRnAH4hto3HRHbxTAbf0adpztnciBAucp8a2F/P8 EWiGKYy3wKKBQXgE+E7ed1b+HfUSwMDlMrXkTk2rn/DFNa3WdFSgqpIharQ3kx8A VmmIt/YORqQOFwy1KPUUiXK8ujk5Ran7FG5NmfAdatXKSD1ETqQmG2l+636k4gXj BllAAhhEYWgDlO9m3PBBNTeAkfxEB3EKKb0du47O8UfOzGGwa91pB2rZAMZxJzpP X7FIFmc901GSpM79F9U2hEZza4RYAuuASY2EVI84ZUI/ebZ4/UAX2Xvm/gdZKifL bnh4nA== 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 48ut2fs4jj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Fri, 05 Sep 2025 00:38:44 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-7e86499748cso564265685a.1 for ; Thu, 04 Sep 2025 17:38:44 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757032723; x=1757637523; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=StUJ+iCclmQ41HjQV5lQ20sHIRMRDK/w0JA6wzKy7T8=; b=DarhVuVUJgtse7k4IzVng70KC6i0hPIVGnYXSifjeX2lkKI/DUcBHild6ds/AWleqy q9Rl+4jS2L+shkp8xzosC41FT5TVaSRA+rOMJDbKFiKw//k81Kw+afRA25PXrDLanRd3 5zoiyOiVmoocRlVWlFgPiyGSPbpK9U7t2lU6R2PN/XEp8EoYgA9P7IQvKUUc4RPwRXg7 T7XAQB+eTMf5r5xgSYL9ag3YpFKKce2s1+HkQWhmGHSBIjioEOOQX0LySv+XCWR/PDci Ik0WUwCrAJKnuCb4FsNyEcBmWPI42OuRQWna+Q2uPZI9TrPwDUSwPJ5cmUKvlSweG5ou QPag== X-Forwarded-Encrypted: i=1; AJvYcCVlzArW8wVnVckXFjbHq/wOL1uLPTcqL3zOjywFhGTF5wCg7HvwJeTOfeQQzG44iEX984cgPSGAbIetEdU=@vger.kernel.org X-Gm-Message-State: AOJu0YwNM1NPO3mg6Xagsdc2VEDy8oYUMoTLvGGGEn5T0pYc9UL+rFLV sYY2VNH48sl+W8RCOf/2QJt4jdAkOdNF7GnWjNc5+GXMCkB6pGk3xfXxeT9j4oWg6hPqlBqrGaw GU5UncxXwaf9Uy22M+I+T/fCT7D8+Tt3WQlq7CejATOnE/mBm+BqYPicMDfNuymFBTEM= X-Gm-Gg: ASbGncsRgPCv0ZIQ3BewR8jKa9xTKOpA58A5Am7naFgFa61aa+8fF0/C8IAp4ZroNY0 9+p98eqNkQHd2/KPwy+EkdHR1VRreXoruOwzYR8RWjgl1ruQGWcQL7M3hTxME7LgJQ6IxgSceGt AbB9O7mXrkBZYp+G+PgJEjqmec0m2iqtnkl5RrKqounGau8qhule8acs21faQJYgXUYt9y64L6/ FsPvZCZEl015+qr14epvAjHTxrKZFx6w0VRKPXm+2d9L773701ogNVm5MrkqVUTqnRt48vVoe6Y P0ohHsotP1/11jUXU2gO1qWXdEB3MvCdHIxbbFenJtp8qPtlYjr57RCGZgtDo0rGoRr3CO42Eou 5udA8CvEahsHWTUeeSsIZ+L/qksB3wo6ngkBtITgyg5zfYBajuiB/ X-Received: by 2002:a05:6214:2462:b0:70d:ae61:7ddd with SMTP id 6a1803df08f44-72bc5842ebcmr27109316d6.31.1757032723167; Thu, 04 Sep 2025 17:38:43 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH6x/823MfOPPReu6md6Lo6garBg/o9gfwd3G1nNGaUC//kgW1+Kkl8wp8jUJc0HWSYSKQcog== X-Received: by 2002:a05:6214:2462:b0:70d:ae61:7ddd with SMTP id 6a1803df08f44-72bc5842ebcmr27108936d6.31.1757032722658; Thu, 04 Sep 2025 17:38:42 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5608acfd938sm1510059e87.109.2025.09.04.17.38.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Sep 2025 17:38:41 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 05 Sep 2025 03:38:31 +0300 Subject: [PATCH v2 02/12] drm/msm/disp: set num_planes and fetch_mode in INTERLEAVED_RGB_FMT 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: quoted-printable Message-Id: <20250905-dpu-formats-v2-2-7a674028c048@oss.qualcomm.com> References: <20250905-dpu-formats-v2-0-7a674028c048@oss.qualcomm.com> In-Reply-To: <20250905-dpu-formats-v2-0-7a674028c048@oss.qualcomm.com> To: Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , David Airlie , Simona Vetter , Jordan Crouse Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=8457; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=o39sacG97yC+L8l69fpJCUgj4xq9EtSHTWrOyUyGs+Y=; b=owGbwMvMwMXYbdNlx6SpcZXxtFoSQ8YuQ86D6f/u6GrN+nWmnXu5+GF+np/mLm/+Ff8IFGU/t FL37reUTkZjFgZGLgZZMUUWn4KWqTGbksM+7JhaDzOIlQlkCgMXpwBMpHUF+z/ze0uNinQ7I4qn LufqN2dVaSnzi8jVyFiqrKz0h7Fc8Mz31eq90z5H9dSonV6k8cHojt2SvH1MJ/zYI1ROz2mM3yD NvdJls0Km34KGuZyZQjVVkofD1A+yCmsLvchKUboktfjQ35ieIo8MRcOpT2couc959tt/8lfuPr 7TFzXPz7z9Yv2tN4KhwQqX5+roK87Kf104dcrCZ5Y1wd+f3qzxY/UyjGT74TjN2zQ2Z0HEkwuc4 sbBiUabEqcETO29sEzpygwT/wqp+sz/pp+t9s/prud5wzbr8r+0xUGrRAPn5dqWl5VstL8jV1X/ KqI57VCoU5KXZNHD6BB1du0/z+K+lMrV5m+ati1V28gLAA== X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAzOCBTYWx0ZWRfX/+R4c2Ts0Foo faq5/pJUBoT3Uym1Pi3cMt/tYT5CI31DH4x339RWvJiTdzXz4bWIzy6o9jsWRtSyZBAnvY2heyl DNq8YQ5qzTFpyn7dH2ecpQytXGF8SmKk6poMhLJqH07/6u8pW07u03R69dOahgRhTz3qhv3yd+L Aattd0KvVSqp6XTgb53VpV8Itk+HJwgZTREQCQlHR+lJq9Wia84J7ATtoGhJEhzL7TsppWHd4xk 4kFwPpQD70czvdlT0YXpUCv1lh0GUAu3Ygl0cYhc/4pM1vip0mU4B6cRTVUMT/9Kg0XHzCzCftJ Efqgl4IJHV9dPWZW0CAF5+FbOS6BZwnsvorXhOOqYt4pur8mJpRBqdt4HjoIgp7LHFWUuBGto0+ dY6HqG4P X-Proofpoint-ORIG-GUID: CZoXRDVU2keJvT7FuENYpmiGdKaPda4T X-Proofpoint-GUID: CZoXRDVU2keJvT7FuENYpmiGdKaPda4T X-Authority-Analysis: v=2.4 cv=U7iSDfru c=1 sm=1 tr=0 ts=68ba3114 cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=EUspDBNiAAAA:8 a=uYEdUiPHXpurYBtsK8sA:9 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-04_08,2025-09-04_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 phishscore=0 clxscore=1015 impostorscore=0 suspectscore=0 malwarescore=0 priorityscore=1501 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300038 All interleaved RGB formats use only 1 plane and MDP_FETCH_LINEAR. Specify num_planes and fetch_mode directly in the macro and remove unused parameters. Reviewed-by: Jessica Zhang Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/disp/mdp_format.c | 114 ++++++++++++------------------= ---- 1 file changed, 39 insertions(+), 75 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/mdp_format.c b/drivers/gpu/drm/msm/di= sp/mdp_format.c index eebedb1a2636e76996cf82847b7d391cb67b0941..26be35572fd2ee7456401aa525c= c36025bc52ee4 100644 --- a/drivers/gpu/drm/msm/disp/mdp_format.c +++ b/drivers/gpu/drm/msm/disp/mdp_format.c @@ -67,7 +67,7 @@ static struct csc_cfg csc_convert[CSC_MAX] =3D { #define MDP_TILE_HEIGHT_NV12 8 =20 #define INTERLEAVED_RGB_FMT(fmt, a, r, g, b, e0, e1, e2, e3, uc, alpha, \ -bp, flg, fm, np) \ +bp, flg) \ { \ .pixel_format =3D DRM_FORMAT_ ## fmt, \ .fetch_type =3D MDP_PLANE_INTERLEAVED, \ @@ -80,9 +80,9 @@ bp, flg, fm, np) = \ .chroma_sample =3D CHROMA_FULL, \ .unpack_count =3D uc, \ .bpp =3D bp, \ - .fetch_mode =3D fm, \ + .fetch_mode =3D MDP_FETCH_LINEAR, \ .flags =3D MSM_FORMAT_FLAG_UNPACK_TIGHT | flg, \ - .num_planes =3D np, \ + .num_planes =3D 1, \ .tile_height =3D MDP_TILE_HEIGHT_DEFAULT \ } =20 @@ -228,218 +228,182 @@ static const struct msm_format mdp_formats[] =3D { INTERLEAVED_RGB_FMT(ARGB8888, BPC8A, BPC8, BPC8, BPC8, C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA, 4, - true, 4, 0, - MDP_FETCH_LINEAR, 1), + true, 4, 0), =20 INTERLEAVED_RGB_FMT(ABGR8888, BPC8A, BPC8, BPC8, BPC8, C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4, - true, 4, 0, - MDP_FETCH_LINEAR, 1), + true, 4, 0), =20 INTERLEAVED_RGB_FMT(XBGR8888, BPC8A, BPC8, BPC8, BPC8, C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4, - false, 4, 0, - MDP_FETCH_LINEAR, 1), + false, 4, 0), =20 INTERLEAVED_RGB_FMT(RGBA8888, BPC8A, BPC8, BPC8, BPC8, C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr, 4, - true, 4, 0, - MDP_FETCH_LINEAR, 1), + true, 4, 0), =20 INTERLEAVED_RGB_FMT(BGRA8888, BPC8A, BPC8, BPC8, BPC8, C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb, 4, - true, 4, 0, - MDP_FETCH_LINEAR, 1), + true, 4, 0), =20 INTERLEAVED_RGB_FMT(BGRX8888, BPC8A, BPC8, BPC8, BPC8, C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb, 4, - false, 4, 0, - MDP_FETCH_LINEAR, 1), + false, 4, 0), =20 INTERLEAVED_RGB_FMT(XRGB8888, BPC8A, BPC8, BPC8, BPC8, C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA, 4, - false, 4, 0, - MDP_FETCH_LINEAR, 1), + false, 4, 0), =20 INTERLEAVED_RGB_FMT(RGBX8888, BPC8A, BPC8, BPC8, BPC8, C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr, 4, - false, 4, 0, - MDP_FETCH_LINEAR, 1), + false, 4, 0), =20 INTERLEAVED_RGB_FMT(RGB888, 0, BPC8, BPC8, BPC8, C1_B_Cb, C0_G_Y, C2_R_Cr, 0, 3, - false, 3, 0, - MDP_FETCH_LINEAR, 1), + false, 3, 0), =20 INTERLEAVED_RGB_FMT(BGR888, 0, BPC8, BPC8, BPC8, C2_R_Cr, C0_G_Y, C1_B_Cb, 0, 3, - false, 3, 0, - MDP_FETCH_LINEAR, 1), + false, 3, 0), =20 INTERLEAVED_RGB_FMT(RGB565, 0, BPC5, BPC6, BPC5, C1_B_Cb, C0_G_Y, C2_R_Cr, 0, 3, - false, 2, 0, - MDP_FETCH_LINEAR, 1), + false, 2, 0), =20 INTERLEAVED_RGB_FMT(BGR565, 0, BPC5, BPC6, BPC5, C2_R_Cr, C0_G_Y, C1_B_Cb, 0, 3, - false, 2, 0, - MDP_FETCH_LINEAR, 1), + false, 2, 0), =20 INTERLEAVED_RGB_FMT(ARGB1555, BPC1A, BPC5, BPC5, BPC5, C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA, 4, - true, 2, 0, - MDP_FETCH_LINEAR, 1), + true, 2, 0), =20 INTERLEAVED_RGB_FMT(ABGR1555, BPC1A, BPC5, BPC5, BPC5, C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4, - true, 2, 0, - MDP_FETCH_LINEAR, 1), + true, 2, 0), =20 INTERLEAVED_RGB_FMT(RGBA5551, BPC1A, BPC5, BPC5, BPC5, C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr, 4, - true, 2, 0, - MDP_FETCH_LINEAR, 1), + true, 2, 0), =20 INTERLEAVED_RGB_FMT(BGRA5551, BPC1A, BPC5, BPC5, BPC5, C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb, 4, - true, 2, 0, - MDP_FETCH_LINEAR, 1), + true, 2, 0), =20 INTERLEAVED_RGB_FMT(XRGB1555, BPC1A, BPC5, BPC5, BPC5, C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA, 4, - false, 2, 0, - MDP_FETCH_LINEAR, 1), + false, 2, 0), =20 INTERLEAVED_RGB_FMT(XBGR1555, BPC1A, BPC5, BPC5, BPC5, C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4, - false, 2, 0, - MDP_FETCH_LINEAR, 1), + false, 2, 0), =20 INTERLEAVED_RGB_FMT(RGBX5551, BPC1A, BPC5, BPC5, BPC5, C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr, 4, - false, 2, 0, - MDP_FETCH_LINEAR, 1), + false, 2, 0), =20 INTERLEAVED_RGB_FMT(BGRX5551, BPC1A, BPC5, BPC5, BPC5, C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb, 4, - false, 2, 0, - MDP_FETCH_LINEAR, 1), + false, 2, 0), =20 INTERLEAVED_RGB_FMT(ARGB4444, BPC4A, BPC4, BPC4, BPC4, C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA, 4, - true, 2, 0, - MDP_FETCH_LINEAR, 1), + true, 2, 0), =20 INTERLEAVED_RGB_FMT(ABGR4444, BPC4A, BPC4, BPC4, BPC4, C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4, - true, 2, 0, - MDP_FETCH_LINEAR, 1), + true, 2, 0), =20 INTERLEAVED_RGB_FMT(RGBA4444, BPC4A, BPC4, BPC4, BPC4, C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr, 4, - true, 2, 0, - MDP_FETCH_LINEAR, 1), + true, 2, 0), =20 INTERLEAVED_RGB_FMT(BGRA4444, BPC4A, BPC4, BPC4, BPC4, C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb, 4, - true, 2, 0, - MDP_FETCH_LINEAR, 1), + true, 2, 0), =20 INTERLEAVED_RGB_FMT(XRGB4444, BPC4A, BPC4, BPC4, BPC4, C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA, 4, - false, 2, 0, - MDP_FETCH_LINEAR, 1), + false, 2, 0), =20 INTERLEAVED_RGB_FMT(XBGR4444, BPC4A, BPC4, BPC4, BPC4, C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4, - false, 2, 0, - MDP_FETCH_LINEAR, 1), + false, 2, 0), =20 INTERLEAVED_RGB_FMT(RGBX4444, BPC4A, BPC4, BPC4, BPC4, C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr, 4, - false, 2, 0, - MDP_FETCH_LINEAR, 1), + false, 2, 0), =20 INTERLEAVED_RGB_FMT(BGRX4444, BPC4A, BPC4, BPC4, BPC4, C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb, 4, - false, 2, 0, - MDP_FETCH_LINEAR, 1), + false, 2, 0), =20 INTERLEAVED_RGB_FMT(BGRA1010102, BPC8A, BPC8, BPC8, BPC8, C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb, 4, - true, 4, MSM_FORMAT_FLAG_DX, - MDP_FETCH_LINEAR, 1), + true, 4, MSM_FORMAT_FLAG_DX), =20 INTERLEAVED_RGB_FMT(RGBA1010102, BPC8A, BPC8, BPC8, BPC8, C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr, 4, - true, 4, MSM_FORMAT_FLAG_DX, - MDP_FETCH_LINEAR, 1), + true, 4, MSM_FORMAT_FLAG_DX), =20 INTERLEAVED_RGB_FMT(ABGR2101010, BPC8A, BPC8, BPC8, BPC8, C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4, - true, 4, MSM_FORMAT_FLAG_DX, - MDP_FETCH_LINEAR, 1), + true, 4, MSM_FORMAT_FLAG_DX), =20 INTERLEAVED_RGB_FMT(ARGB2101010, BPC8A, BPC8, BPC8, BPC8, C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA, 4, - true, 4, MSM_FORMAT_FLAG_DX, - MDP_FETCH_LINEAR, 1), + true, 4, MSM_FORMAT_FLAG_DX), =20 INTERLEAVED_RGB_FMT(XRGB2101010, BPC8A, BPC8, BPC8, BPC8, C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA, 4, - false, 4, MSM_FORMAT_FLAG_DX, - MDP_FETCH_LINEAR, 1), + false, 4, MSM_FORMAT_FLAG_DX), =20 INTERLEAVED_RGB_FMT(BGRX1010102, BPC8A, BPC8, BPC8, BPC8, C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb, 4, - false, 4, MSM_FORMAT_FLAG_DX, - MDP_FETCH_LINEAR, 1), + false, 4, MSM_FORMAT_FLAG_DX), =20 INTERLEAVED_RGB_FMT(XBGR2101010, BPC8A, BPC8, BPC8, BPC8, C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4, - false, 4, MSM_FORMAT_FLAG_DX, - MDP_FETCH_LINEAR, 1), + false, 4, MSM_FORMAT_FLAG_DX), =20 INTERLEAVED_RGB_FMT(RGBX1010102, BPC8A, BPC8, BPC8, BPC8, C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr, 4, - false, 4, MSM_FORMAT_FLAG_DX, - MDP_FETCH_LINEAR, 1), + false, 4, MSM_FORMAT_FLAG_DX), =20 /* --- RGB formats above / YUV formats below this line --- */ =20 --=20 2.47.2 From nobody Fri Oct 3 05:27:00 2025 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 4655B1BE871 for ; Fri, 5 Sep 2025 00:38:49 +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=1757032730; cv=none; b=YPlFKSmcvavC2jJOqDFmYK7pBtaCGGim/Ml9FgoYzVAUI+K+pQB8t7i8R/ncQM0LqNKB8dorRwc+13dth0Q6OgpRBbOVtsW7UjJiF67fMm7rOsCieAJb6rt5nYU1AyJBCio3c6CgUT5hlA0jQsvzm6tksvgKpKiysPY2Es7tHrU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757032730; c=relaxed/simple; bh=Ec6ILQ/MERXTAPVK3p0IrR1LWDecA4ARKM5wLiwsDmk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=c8nN6FPoFaSGQHoGFprzmtxBAp44TpBhsoxX7Dr54houtlR01uuBg2ozWfX4olQaywp+Lc5E1PtySFjLmkW811hOW8naK9RpIB1nswtI74vP76MuUg1WI/28Z30m/ucsxJVWsFQueIKhiPMTspiq8NKcPrItYTQLbEcmW6UvMIg= 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=TvY1ggft; 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="TvY1ggft" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 584IScQh012198 for ; Fri, 5 Sep 2025 00:38:48 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= OL3LAbXldIQiGj9Ib++uS3oFdqJcW9ykoQXFxLINnAY=; b=TvY1ggftz6BE32OF Nclb6oOybWq8wGRnqMeXd5+pOSnQSq29FyZOgA38F8lQq9YOzxGK9leBkRuXhtx9 nWJpu1WJsorwZcDYUCBHJn+hsArsh996XcT6BFeFYZjWC/N7PZcmyZWHODp/C/yu kVU/4lh0qrlcglAqvjViUrNYnS4g0q8tHXakx5nFIgEA8b2qy/EE0+kly5QiFbN4 1+wq64JE0FSbZ3zinKawRbdPu9y2gzI27SDPBINYNF1XRHPdNCrnInRHtoiTw83P 6mN8P2cyD0L6Qi1yAiEKP2GVqWMpfTCHETYWWQFT1hSEwPaJ14MdjBBxGoVPzeuG 2v7pog== Received: from mail-qv1-f70.google.com (mail-qv1-f70.google.com [209.85.219.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48xmxj5py1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Fri, 05 Sep 2025 00:38:48 +0000 (GMT) Received: by mail-qv1-f70.google.com with SMTP id 6a1803df08f44-726aec6cf9fso38512066d6.1 for ; Thu, 04 Sep 2025 17:38:48 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757032727; x=1757637527; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=OL3LAbXldIQiGj9Ib++uS3oFdqJcW9ykoQXFxLINnAY=; b=ZbYQhGF6h8W7F+aqOPHXZA8iKZOGFK5CExt8LQHhEgO0eDdfIynMHclCH67CZGrxeW 0Jq8j/D6KUAsRsYB+4uCP2LLMWunmwI3G3WUcsCV7DmaHWbYYSjqCN4cl5Ns08VM/UGm /Rl5vIfDXzIllAvGlrMtXPi7tmh4BPl1moc6p5Qz3eR8EktfiYpESx3tZ+JWAIg7kqFx Kp9tusetaoLIFRUFwoyLku5gxFuNpuZOeI1CRXOWqNBQF9Jyi6gKTAYkCtS0a7CQ/QM6 FUKGicY2bA7r9ANDUM08bk9C6MM9nmkQjuya+eaxuYlkKiv9evdg/xTL9EuhwvTfue8M VnQw== X-Forwarded-Encrypted: i=1; AJvYcCUbhP/qmih3z/pN55PWc5DSulx+HdJ2QsHemnHaC2hZ7lRXbfB8gSwF3dOeGTvvBXo4swhZBz2nHYVAfdI=@vger.kernel.org X-Gm-Message-State: AOJu0Yw2i5CKJuHp06RWi7r/WUFRgW4bRsaIsfZ3I22q7/MESjeYWAIw wyi66996hpDW7S6+lU8AqtIqxs9qRJfSWWMMGmwMAUubj37J13fr7JIdYwk4aYGQEmaedl1gk2U I+9UFf8i+1QyTa4E87iPMJ77p6DZ3pkC14iNzwFRDmoMUXCmciiAck2BjbRDFMIfy9EE= X-Gm-Gg: ASbGncuXZxgcvBgtpdf9TfUWkshHDLa6hExBYgHTSFG4PNfgCC4PEFehFItqXJ4dTtM RWNN0i+iD8Jlq0slEx3li3bdVDdB16lA5XPT/SOrdWiHz52DM+OAGw7PWJLNFAL7YKVCknsjSG1 3HrDvibW4dsz3tVya9vdQkN1vDt9b6lKD54wXsod81UravBF3MX2GoWe3cw9vnMuXBQscnkztxd N/xhAzfhGwqT3/B2is5bGqewnNW3iVInZpvyNaqwCXbQY7ejcRFNE8stEkYEp1RaZ7FeCXN6yag nyRfJYAH2PiXA5KxHhf8ls4TsIiUwLRZJfU85j988OoeKdO4x28gSzhGNEPrl96wZXCkm8Qrpwh CdYu9exSKIw8k/e1QnZmeyaurf2lAx3OprjtVJ+prydFAsciga/Jv X-Received: by 2002:ad4:5de2:0:b0:72a:e803:f76b with SMTP id 6a1803df08f44-72ae804018bmr42147426d6.19.1757032726818; Thu, 04 Sep 2025 17:38:46 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGz8kxuYrUIpJzDp5rGUNwTXMjhxk0pkTF+4eceBdshBoWIPLL5cOkNdB9Lv+VDrEIdNsLHYw== X-Received: by 2002:ad4:5de2:0:b0:72a:e803:f76b with SMTP id 6a1803df08f44-72ae804018bmr42147166d6.19.1757032726379; Thu, 04 Sep 2025 17:38:46 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5608acfd938sm1510059e87.109.2025.09.04.17.38.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Sep 2025 17:38:44 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 05 Sep 2025 03:38:32 +0300 Subject: [PATCH v2 03/12] drm/msm/disp: set num_planes, fetch_mode and tile_height in INTERLEAVED_RGB_FMT_TILED 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: quoted-printable Message-Id: <20250905-dpu-formats-v2-3-7a674028c048@oss.qualcomm.com> References: <20250905-dpu-formats-v2-0-7a674028c048@oss.qualcomm.com> In-Reply-To: <20250905-dpu-formats-v2-0-7a674028c048@oss.qualcomm.com> To: Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , David Airlie , Simona Vetter , Jordan Crouse Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=5031; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=Ec6ILQ/MERXTAPVK3p0IrR1LWDecA4ARKM5wLiwsDmk=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoujEJsVz89rmAldH1rvVO9fcAm9fkaFPz4TZ4b h8z8b7SOguJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaLoxCQAKCRCLPIo+Aiko 1WvgCACXS/BhzzYc3B/78wRyweVo/RuimjNRjDQ8SH5WQpgAK97Wvg8F+TM+rq07OMry/GVn/yZ wdUGy7Gl+qtr+fDWVTYxcjn+EP3zZJ4DF68kHQbUKTgVDOl/KzUEkAbCw4q6iWSGRvEr3lckISG 4Z5r3m5cKAGaAa6LYo0YJ5Ubf9GzcBdqDYwyEGdXd2r9I+9quStGAZunzNLfEOa4X3E4DX6Ezcy dMDYlR22YeK3qILhYjxFKCXt1V9f4wsGGsT7P6ZqIMxdkrn3e2i1vkJZsdkdJ5yJAexgq4lZ8YB YCIx9U6R+SZpEKikmaphLXrwYXcbfsYvmlt7eI//R9DqDESt X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTAzMDExNyBTYWx0ZWRfX1qh0C4A6ZlCT N5APdKT4cCiYZTfkIgjKvRzpChsWQ1tjDm9aVJ6ZI2ZfY+yRMD1m6dPF/8r4vMBEmhK4zA25OSj zfib/lP4uI0ULhrHE+e4a2DO3qDgb1hRz7WK+cNKL++5dQrsiDAfVHF3zS4z6jp+B1AHEAD6+xy CWkCsJxFZiTcMfRrPbtNwwzej2yIRHPTJ5dX/9awvTVe3E88WnDXmFw78Q5SgnWT2jqQMZn7hqw pcRglolcnvXTH5Oezr5b2j6ESi14H5Gab4+FMIe/adp3LcYaZsCBLDNnz47cOyr8UENJe/NZCh+ ow7E1Be6RKdSj1+A9p+UlVlB+IZgqfXEglbzSmwvRmlO1POfm00v+cohqKI5ziQrp2zXnEvMSdR 7lqtXwI7 X-Authority-Analysis: v=2.4 cv=a5cw9VSF c=1 sm=1 tr=0 ts=68ba3118 cx=c_pps a=oc9J++0uMp73DTRD5QyR2A==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=EUspDBNiAAAA:8 a=dmvhxJvSUNPaeTh-JWgA:9 a=QEXdDO2ut3YA:10 a=iYH6xdkBrDN1Jqds4HTS:22 X-Proofpoint-GUID: 05ob_-CEjbUJBlhaNmO0U7RByYFlEpo- X-Proofpoint-ORIG-GUID: 05ob_-CEjbUJBlhaNmO0U7RByYFlEpo- X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-04_08,2025-09-04_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 clxscore=1015 bulkscore=0 priorityscore=1501 phishscore=0 impostorscore=0 adultscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2509030117 All interleaved compressed RGB formats use only 2 planes, MDP_FETCH_LINEAR and MDP_TILE_HEIGHT_UBWC. Specify num_planes, fetch_mode and tile_height directly in the macro and remove unused parameters. Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/disp/mdp_format.c | 35 +++++++++++++------------------= ---- 1 file changed, 13 insertions(+), 22 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/mdp_format.c b/drivers/gpu/drm/msm/di= sp/mdp_format.c index 26be35572fd2ee7456401aa525cc36025bc52ee4..09a5bffd838b8a4fd3c22622e82= dcf9fb99b5117 100644 --- a/drivers/gpu/drm/msm/disp/mdp_format.c +++ b/drivers/gpu/drm/msm/disp/mdp_format.c @@ -87,7 +87,7 @@ bp, flg) = \ } =20 #define INTERLEAVED_RGB_FMT_TILED(fmt, a, r, g, b, e0, e1, e2, e3, uc, \ -alpha, bp, flg, fm, np, th) \ +alpha, bp, flg) \ { \ .pixel_format =3D DRM_FORMAT_ ## fmt, \ .fetch_type =3D MDP_PLANE_INTERLEAVED, \ @@ -100,10 +100,10 @@ alpha, bp, flg, fm, np, th) = \ .chroma_sample =3D CHROMA_FULL, \ .unpack_count =3D uc, \ .bpp =3D bp, \ - .fetch_mode =3D fm, \ + .fetch_mode =3D MDP_FETCH_UBWC, \ .flags =3D MSM_FORMAT_FLAG_UNPACK_TIGHT | flg, \ - .num_planes =3D np, \ - .tile_height =3D th \ + .num_planes =3D 2, \ + .tile_height =3D MDP_TILE_HEIGHT_UBWC, \ } =20 #define INTERLEAVED_YUV_FMT(fmt, a, r, g, b, e0, e1, e2, e3, \ @@ -487,14 +487,12 @@ static const struct msm_format mdp_formats_ubwc[] =3D= { INTERLEAVED_RGB_FMT_TILED(BGR565, 0, BPC5, BPC6, BPC5, C2_R_Cr, C0_G_Y, C1_B_Cb, 0, 3, - false, 2, MSM_FORMAT_FLAG_COMPRESSED, - MDP_FETCH_UBWC, 2, MDP_TILE_HEIGHT_UBWC), + false, 2, MSM_FORMAT_FLAG_COMPRESSED), =20 INTERLEAVED_RGB_FMT_TILED(ABGR8888, BPC8A, BPC8, BPC8, BPC8, C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4, - true, 4, MSM_FORMAT_FLAG_COMPRESSED, - MDP_FETCH_UBWC, 2, MDP_TILE_HEIGHT_UBWC), + true, 4, MSM_FORMAT_FLAG_COMPRESSED), =20 /* ARGB8888 and ABGR8888 purposely have the same color * ordering. The hardware only supports ABGR8888 UBWC @@ -503,38 +501,32 @@ static const struct msm_format mdp_formats_ubwc[] =3D= { INTERLEAVED_RGB_FMT_TILED(ARGB8888, BPC8A, BPC8, BPC8, BPC8, C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4, - true, 4, MSM_FORMAT_FLAG_COMPRESSED, - MDP_FETCH_UBWC, 2, MDP_TILE_HEIGHT_UBWC), + true, 4, MSM_FORMAT_FLAG_COMPRESSED), =20 INTERLEAVED_RGB_FMT_TILED(XBGR8888, BPC8A, BPC8, BPC8, BPC8, C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4, - false, 4, MSM_FORMAT_FLAG_COMPRESSED, - MDP_FETCH_UBWC, 2, MDP_TILE_HEIGHT_UBWC), + false, 4, MSM_FORMAT_FLAG_COMPRESSED), =20 INTERLEAVED_RGB_FMT_TILED(XRGB8888, BPC8A, BPC8, BPC8, BPC8, C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4, - false, 4, MSM_FORMAT_FLAG_COMPRESSED, - MDP_FETCH_UBWC, 2, MDP_TILE_HEIGHT_UBWC), + false, 4, MSM_FORMAT_FLAG_COMPRESSED), =20 INTERLEAVED_RGB_FMT_TILED(ABGR2101010, BPC8A, BPC8, BPC8, BPC8, C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4, - true, 4, MSM_FORMAT_FLAG_DX | MSM_FORMAT_FLAG_COMPRESSED, - MDP_FETCH_UBWC, 2, MDP_TILE_HEIGHT_UBWC), + true, 4, MSM_FORMAT_FLAG_DX | MSM_FORMAT_FLAG_COMPRESSED), =20 INTERLEAVED_RGB_FMT_TILED(XBGR2101010, BPC8A, BPC8, BPC8, BPC8, C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4, - true, 4, MSM_FORMAT_FLAG_DX | MSM_FORMAT_FLAG_COMPRESSED, - MDP_FETCH_UBWC, 2, MDP_TILE_HEIGHT_UBWC), + true, 4, MSM_FORMAT_FLAG_DX | MSM_FORMAT_FLAG_COMPRESSED), =20 INTERLEAVED_RGB_FMT_TILED(XRGB2101010, BPC8A, BPC8, BPC8, BPC8, C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4, - true, 4, MSM_FORMAT_FLAG_DX | MSM_FORMAT_FLAG_COMPRESSED, - MDP_FETCH_UBWC, 2, MDP_TILE_HEIGHT_UBWC), + true, 4, MSM_FORMAT_FLAG_DX | MSM_FORMAT_FLAG_COMPRESSED), =20 /* XRGB2101010 and ARGB2101010 purposely have the same color * ordering. The hardware only supports ARGB2101010 UBWC @@ -543,8 +535,7 @@ static const struct msm_format mdp_formats_ubwc[] =3D { INTERLEAVED_RGB_FMT_TILED(ARGB2101010, BPC8A, BPC8, BPC8, BPC8, C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4, - true, 4, MSM_FORMAT_FLAG_DX | MSM_FORMAT_FLAG_COMPRESSED, - MDP_FETCH_UBWC, 2, MDP_TILE_HEIGHT_UBWC), + true, 4, MSM_FORMAT_FLAG_DX | MSM_FORMAT_FLAG_COMPRESSED), =20 PSEUDO_YUV_FMT_TILED(NV12, 0, BPC8, BPC8, BPC8, --=20 2.47.2 From nobody Fri Oct 3 05:27:00 2025 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 BBF601C8632 for ; Fri, 5 Sep 2025 00:38:52 +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=1757032734; cv=none; b=DMbnNN162afJ48yg3xpYnAY7IYd1giTnVf1n+dcCl9DFhsrW4zqzTP7p+5dOBun32zJD75OsuuRj4l0WX6z/BaRPvd1OnSLO8GaThkTAbITqr+D/VvZCfDoev48AQ4VDhkAIGicJ0TgK2wiTB7VVMc/tea8GHDbPlkiY13P5uIo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757032734; c=relaxed/simple; bh=yKQoUvIn5jH/xzpRSliv3/4ZiEWOfS13CyVAm31p0Cs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ewKfTuIAMhV41ZbfDKfzvJouo1BtsjARxkNAtGtxGJEdKWiero9+zAq5A19VYeM3PwOfqG+h0bNDw7+pqV1KSFYlgLvAmjLbck0ODSg0ecAKDgwobwEeyml66BP2M9gzmKi53Bf3FKb3b5TKZBnwblHzO/cJ6LXYDuVqJ9+10/Y= 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=Sw87quU9; 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="Sw87quU9" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 584Ima6J022487 for ; Fri, 5 Sep 2025 00:38:52 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= vbFdKsR7oPDqyuw8dk8qfPPXG2WU0XJ4Mjg3xxITLIw=; b=Sw87quU9ovw9BWZr FhL1ZxEoVkqI9xHy7hnHCuxBhu177fzCZjvZjFL/atQGMylWdOVSKsAMJOKFwJgt QsmKru019ElB9rP4kdQUDJz4gfSeUMnNyO/8JULZkQLBnUHDu1u4HXZeXzuMQfJD +Hqhdnn228esNnyv0k3TRoslBysV5nbn6221W3QXOrLGRhaviECFm89FwTIjTfw2 IUdfR0+7I1gW7AxkHGNBTygAr+gJ3zzWwDCkev21Fe1RezTZ6rIE6dmADrYgoRaO 0FqsUXBxj5xnY+3KzLY/amPZsTcjszWbPfq0q8Rbh7A9qdBb9o20TvGWmkZifPLf HGFEtg== 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 48utk994w2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Fri, 05 Sep 2025 00:38:52 +0000 (GMT) Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-80584b42d15so368689485a.3 for ; Thu, 04 Sep 2025 17:38:51 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757032731; x=1757637531; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vbFdKsR7oPDqyuw8dk8qfPPXG2WU0XJ4Mjg3xxITLIw=; b=FMIibbE4quR5hzwjNx3GygD+ilmZlrLR+fFti07wJEBAnQH7wbaxVclXobOJS5xjXx Qk0kbqDW1sz+RDERg6oKGZSGscDavZhD+/g/gqPLSC+ovtiSxMohw3ht0JT07DZgqV+2 AdLKHnUzhNj9F5NB1W53IITYi24P29kRdi8CPALBEu3mn4oC68A09RwEEs8wBBBGcGR5 J+smXvxFty9qu1ZfS1OZkpDDChSaRQhFD8lvFQtZRHlyroFiiRi4DEM4DN01dEvtGox9 B/BxPpt1GELwS3gFm/rx0cIf5HqSNhTCA/Z2iAYGyKOZSIWGtrKC3Lm3a4PbIP+peSlP Q7tA== X-Forwarded-Encrypted: i=1; AJvYcCUMWNKLdsUoZZQdOMohsReA50lRVmsvnN6usYBaSHbHysA7zobDbdl2oYX+d5/dCHPnEsiIf5OhP3uYDZQ=@vger.kernel.org X-Gm-Message-State: AOJu0YzkFhtD1mF/Ti3GPqJiJko6zsgRw0SJD0Y0lAkWeA+5fXw8++Qu vrMon7VyB57HnA9sNYmnIaHWJ2xbLrWeqFE9KSUQ/Y+ehWeQYJsR86Fo898X5vcFhu0IGzss+E+ tMpANpj/NNYyFwdsKcCYm9XWlbui7GGRfpjQMVPrRAFyG7fdc/122zm62eNdLX3gE/1w= X-Gm-Gg: ASbGncvHv4C96hWm0t9mAzkpnnqDUNJtMlLkItu/tubf5wRvR9HEXBwoROSOuLu+lQV c43uRohfykWPYczRQF0Y6D9LRHXsDUsW9GC6yzyvkTkMNj8QlhV1r+PPhDfJtGOyTP0l535o6HW P3/hLPSJ1WOEXMBUCy8DjAyQxQSzCxgHtwBUshEbEnqly/sPyiIcTWxJdfv4DByEAlPxT7CF7q8 u4Eef3N81WpWhd5MNnyloFCT5z+hNjHBzCDTARVK64dNPgMvB5otL76j0bn052iPSCeI1kkkRLh vWZIbxiKIplZONtO2bVpCsaoAE/OZYcf/jRylMrIcbnJDV2lr8qYm4TTptIDqNP4yjIohUTlSCn 0ww5dr/I6lwdmH6h/Ufmwh0smJOfkp5/pR+OXl3jgBEudhc/hRHDC X-Received: by 2002:a05:6214:21e8:b0:726:a561:87e4 with SMTP id 6a1803df08f44-726a5802658mr91498786d6.63.1757032730509; Thu, 04 Sep 2025 17:38:50 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGUzLXK2BEv90JRI+vpfzAHmTadl7lVJhz+hrS0Jar0rk0NVlApkRyiBhOWch9kFKqaNh6HsQ== X-Received: by 2002:a05:6214:21e8:b0:726:a561:87e4 with SMTP id 6a1803df08f44-726a5802658mr91498476d6.63.1757032730009; Thu, 04 Sep 2025 17:38:50 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5608acfd938sm1510059e87.109.2025.09.04.17.38.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Sep 2025 17:38:47 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 05 Sep 2025 03:38:33 +0300 Subject: [PATCH v2 04/12] drm/msm/disp: simplify RGB{,A,X} formats definitions 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: quoted-printable Message-Id: <20250905-dpu-formats-v2-4-7a674028c048@oss.qualcomm.com> References: <20250905-dpu-formats-v2-0-7a674028c048@oss.qualcomm.com> In-Reply-To: <20250905-dpu-formats-v2-0-7a674028c048@oss.qualcomm.com> To: Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , David Airlie , Simona Vetter , Jordan Crouse Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=15198; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=yKQoUvIn5jH/xzpRSliv3/4ZiEWOfS13CyVAm31p0Cs=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoujEJTXojHKNSCpgJuy11bVLEu6KoDWfpSVqyq XVwq37rVFWJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaLoxCQAKCRCLPIo+Aiko 1Yz8CAClwJs0nBCXK4k7I/ChNkkVwomshwAwo3mTsWb6eELDI3aZIIu3Hy8FzV8DEO5NSIR7Z7l 19mVtd3nH1YNWzSrmGbbibREh9CgtAqH3Y5Jk84gJsR+Zz9aLuSk8ksccSd+E4btqEkFMRkeS/d dZOuRQW85Y3zgcBwRAF7sIu1ZaqopMwXB3tgfSyeFZq6qQ2lizZg0kjlwalfNfzdZLg57EC5jtq 62a/DAIfqd94WHb3R5lEPftxX8J+pb0r+HWffBRPRiNXOohCjdcr5f/oyMw6L7LY9QHxx7khv/G Ote74oSr1FN9Ww1QwPLm0tFpSP++jZjdbgoe1utjM/e/Aw8i X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-GUID: K_VnTfP5fia2TONSW-lJqEjfdxE9_9wv X-Proofpoint-ORIG-GUID: K_VnTfP5fia2TONSW-lJqEjfdxE9_9wv X-Authority-Analysis: v=2.4 cv=ccnSrmDM c=1 sm=1 tr=0 ts=68ba311c cx=c_pps a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=EUspDBNiAAAA:8 a=KyFCczhh_M9M8MRke_UA:9 a=QEXdDO2ut3YA:10 a=PEH46H7Ffwr30OY-TuGO:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDA0MiBTYWx0ZWRfX5po5Rvc2maAT vo+i0uc0MlZ/52P3Nk69bRN+auWNh8SklzeFLSNJTa99lkQO0PqDvenoqymQ4r08YQbL4HjXUny 8T9cJ/qBL5ZAQkn6uT15mZ0biLldSA0z9fJ2PF3wIyMveOlRYBlAF7LV4Ivd3lq6j4vSpN9p/c0 XFqTc57UCYZi2raMwdJ64eJ6k4YZKw+rimqLSq8MXbDBfl57aJ3g/8/ja2Fa+HQ7coG9UfQZ+Zd 87ZXi/3dbkzXR44Q3CRLySMOaquPjlaEC7v6rKX9qK4hdMhESHrlgUD2orjYed9IpcAPmaulR8H Fnn0yugGMlxwEN5m2BnOnAi4RsrEAh7vC2S9CVZ7cYkYL6xy85AqAXuLazN7vmr1UpN8+4uC3KX N9o8el2j X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-04_08,2025-09-04_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 phishscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 clxscore=1015 suspectscore=0 spamscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300042 Define several additional macros, capturing RGB format classes, in order to simplify defining particular RGB* format. Reviewed-by: Jessica Zhang Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/disp/mdp_format.c | 275 +++++++++++++++++++-----------= ---- 1 file changed, 158 insertions(+), 117 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/mdp_format.c b/drivers/gpu/drm/msm/di= sp/mdp_format.c index 09a5bffd838b8a4fd3c22622e82dcf9fb99b5117..28cef986f2d662484afd47440a7= 9393c48256ff5 100644 --- a/drivers/gpu/drm/msm/disp/mdp_format.c +++ b/drivers/gpu/drm/msm/disp/mdp_format.c @@ -66,22 +66,99 @@ static struct csc_cfg csc_convert[CSC_MAX] =3D { #define MDP_TILE_HEIGHT_UBWC 4 #define MDP_TILE_HEIGHT_NV12 8 =20 -#define INTERLEAVED_RGB_FMT(fmt, a, r, g, b, e0, e1, e2, e3, uc, alpha, \ -bp, flg) \ +#define INTERLEAVED_RGB_FMT(fmt, bp, r, g, b, e0, e1, e2) \ { \ .pixel_format =3D DRM_FORMAT_ ## fmt, \ .fetch_type =3D MDP_PLANE_INTERLEAVED, \ - .alpha_enable =3D alpha, \ + .alpha_enable =3D false, \ + .element =3D { (e0), (e1), (e2), 0 }, \ + .bpc_g_y =3D g, \ + .bpc_b_cb =3D b, \ + .bpc_r_cr =3D r, \ + .bpc_a =3D 0, \ + .chroma_sample =3D CHROMA_FULL, \ + .unpack_count =3D 3, \ + .bpp =3D bp, \ + .fetch_mode =3D MDP_FETCH_LINEAR, \ + .flags =3D MSM_FORMAT_FLAG_UNPACK_TIGHT, \ + .num_planes =3D 1, \ + .tile_height =3D MDP_TILE_HEIGHT_DEFAULT \ +} + +#define INTERLEAVED_RGBA_FMT(fmt, bp, a, r, g, b, e0, e1, e2, e3) \ +{ \ + .pixel_format =3D DRM_FORMAT_ ## fmt, \ + .fetch_type =3D MDP_PLANE_INTERLEAVED, \ + .alpha_enable =3D true, \ .element =3D { (e0), (e1), (e2), (e3) }, \ .bpc_g_y =3D g, \ .bpc_b_cb =3D b, \ .bpc_r_cr =3D r, \ .bpc_a =3D a, \ .chroma_sample =3D CHROMA_FULL, \ - .unpack_count =3D uc, \ + .unpack_count =3D 4, \ .bpp =3D bp, \ .fetch_mode =3D MDP_FETCH_LINEAR, \ - .flags =3D MSM_FORMAT_FLAG_UNPACK_TIGHT | flg, \ + .flags =3D MSM_FORMAT_FLAG_UNPACK_TIGHT, \ + .num_planes =3D 1, \ + .tile_height =3D MDP_TILE_HEIGHT_DEFAULT \ +} + +#define INTERLEAVED_RGBX_FMT(fmt, bp, a, r, g, b, e0, e1, e2, e3) \ +{ \ + .pixel_format =3D DRM_FORMAT_ ## fmt, \ + .fetch_type =3D MDP_PLANE_INTERLEAVED, \ + .alpha_enable =3D false, \ + .element =3D { (e0), (e1), (e2), (e3) }, \ + .bpc_g_y =3D g, \ + .bpc_b_cb =3D b, \ + .bpc_r_cr =3D r, \ + .bpc_a =3D a, \ + .chroma_sample =3D CHROMA_FULL, \ + .unpack_count =3D 4, \ + .bpp =3D bp, \ + .fetch_mode =3D MDP_FETCH_LINEAR, \ + .flags =3D MSM_FORMAT_FLAG_UNPACK_TIGHT, \ + .num_planes =3D 1, \ + .tile_height =3D MDP_TILE_HEIGHT_DEFAULT \ +} + +#define INTERLEAVED_RGBA_DX_FMT(fmt, bp, a, r, g, b, e0, e1, e2, e3) \ +{ \ + .pixel_format =3D DRM_FORMAT_ ## fmt, \ + .fetch_type =3D MDP_PLANE_INTERLEAVED, \ + .alpha_enable =3D true, \ + .element =3D { (e0), (e1), (e2), (e3) }, \ + .bpc_g_y =3D g, \ + .bpc_b_cb =3D b, \ + .bpc_r_cr =3D r, \ + .bpc_a =3D a, \ + .chroma_sample =3D CHROMA_FULL, \ + .unpack_count =3D 4, \ + .bpp =3D bp, \ + .fetch_mode =3D MDP_FETCH_LINEAR, \ + .flags =3D MSM_FORMAT_FLAG_UNPACK_TIGHT | \ + MSM_FORMAT_FLAG_DX, \ + .num_planes =3D 1, \ + .tile_height =3D MDP_TILE_HEIGHT_DEFAULT \ +} + +#define INTERLEAVED_RGBX_DX_FMT(fmt, bp, a, r, g, b, e0, e1, e2, e3) \ +{ \ + .pixel_format =3D DRM_FORMAT_ ## fmt, \ + .fetch_type =3D MDP_PLANE_INTERLEAVED, \ + .alpha_enable =3D false, \ + .element =3D { (e0), (e1), (e2), (e3) }, \ + .bpc_g_y =3D g, \ + .bpc_b_cb =3D b, \ + .bpc_r_cr =3D r, \ + .bpc_a =3D a, \ + .chroma_sample =3D CHROMA_FULL, \ + .unpack_count =3D 4, \ + .bpp =3D bp, \ + .fetch_mode =3D MDP_FETCH_LINEAR, \ + .flags =3D MSM_FORMAT_FLAG_UNPACK_TIGHT | \ + MSM_FORMAT_FLAG_DX, \ .num_planes =3D 1, \ .tile_height =3D MDP_TILE_HEIGHT_DEFAULT \ } @@ -225,185 +302,149 @@ flg, fm, np) = \ } =20 static const struct msm_format mdp_formats[] =3D { - INTERLEAVED_RGB_FMT(ARGB8888, + INTERLEAVED_RGBA_FMT(ARGB8888, 4, BPC8A, BPC8, BPC8, BPC8, - C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA, 4, - true, 4, 0), + C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA), =20 - INTERLEAVED_RGB_FMT(ABGR8888, + INTERLEAVED_RGBA_FMT(ABGR8888, 4, BPC8A, BPC8, BPC8, BPC8, - C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4, - true, 4, 0), + C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA), =20 - INTERLEAVED_RGB_FMT(XBGR8888, + INTERLEAVED_RGBX_FMT(XBGR8888, 4, BPC8A, BPC8, BPC8, BPC8, - C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4, - false, 4, 0), + C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA), =20 - INTERLEAVED_RGB_FMT(RGBA8888, + INTERLEAVED_RGBA_FMT(RGBA8888, 4, BPC8A, BPC8, BPC8, BPC8, - C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr, 4, - true, 4, 0), + C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr), =20 - INTERLEAVED_RGB_FMT(BGRA8888, + INTERLEAVED_RGBA_FMT(BGRA8888, 4, BPC8A, BPC8, BPC8, BPC8, - C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb, 4, - true, 4, 0), + C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb), =20 - INTERLEAVED_RGB_FMT(BGRX8888, + INTERLEAVED_RGBX_FMT(BGRX8888, 4, BPC8A, BPC8, BPC8, BPC8, - C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb, 4, - false, 4, 0), + C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb), =20 - INTERLEAVED_RGB_FMT(XRGB8888, + INTERLEAVED_RGBX_FMT(XRGB8888, 4, BPC8A, BPC8, BPC8, BPC8, - C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA, 4, - false, 4, 0), + C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA), =20 - INTERLEAVED_RGB_FMT(RGBX8888, + INTERLEAVED_RGBX_FMT(RGBX8888, 4, BPC8A, BPC8, BPC8, BPC8, - C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr, 4, - false, 4, 0), + C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr), =20 - INTERLEAVED_RGB_FMT(RGB888, - 0, BPC8, BPC8, BPC8, - C1_B_Cb, C0_G_Y, C2_R_Cr, 0, 3, - false, 3, 0), + INTERLEAVED_RGB_FMT(RGB888, 3, + BPC8, BPC8, BPC8, + C1_B_Cb, C0_G_Y, C2_R_Cr), =20 - INTERLEAVED_RGB_FMT(BGR888, - 0, BPC8, BPC8, BPC8, - C2_R_Cr, C0_G_Y, C1_B_Cb, 0, 3, - false, 3, 0), + INTERLEAVED_RGB_FMT(BGR888, 3, + BPC8, BPC8, BPC8, + C2_R_Cr, C0_G_Y, C1_B_Cb), =20 - INTERLEAVED_RGB_FMT(RGB565, - 0, BPC5, BPC6, BPC5, - C1_B_Cb, C0_G_Y, C2_R_Cr, 0, 3, - false, 2, 0), + INTERLEAVED_RGB_FMT(RGB565, 2, + BPC5, BPC6, BPC5, + C1_B_Cb, C0_G_Y, C2_R_Cr), =20 - INTERLEAVED_RGB_FMT(BGR565, - 0, BPC5, BPC6, BPC5, - C2_R_Cr, C0_G_Y, C1_B_Cb, 0, 3, - false, 2, 0), + INTERLEAVED_RGB_FMT(BGR565, 2, + BPC5, BPC6, BPC5, + C2_R_Cr, C0_G_Y, C1_B_Cb), =20 - INTERLEAVED_RGB_FMT(ARGB1555, + INTERLEAVED_RGBA_FMT(ARGB1555, 2, BPC1A, BPC5, BPC5, BPC5, - C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA, 4, - true, 2, 0), + C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA), =20 - INTERLEAVED_RGB_FMT(ABGR1555, + INTERLEAVED_RGBA_FMT(ABGR1555, 2, BPC1A, BPC5, BPC5, BPC5, - C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4, - true, 2, 0), + C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA), =20 - INTERLEAVED_RGB_FMT(RGBA5551, + INTERLEAVED_RGBA_FMT(RGBA5551, 2, BPC1A, BPC5, BPC5, BPC5, - C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr, 4, - true, 2, 0), + C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr), =20 - INTERLEAVED_RGB_FMT(BGRA5551, + INTERLEAVED_RGBA_FMT(BGRA5551, 2, BPC1A, BPC5, BPC5, BPC5, - C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb, 4, - true, 2, 0), + C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb), =20 - INTERLEAVED_RGB_FMT(XRGB1555, + INTERLEAVED_RGBX_FMT(XRGB1555, 2, BPC1A, BPC5, BPC5, BPC5, - C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA, 4, - false, 2, 0), + C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA), =20 - INTERLEAVED_RGB_FMT(XBGR1555, + INTERLEAVED_RGBX_FMT(XBGR1555, 2, BPC1A, BPC5, BPC5, BPC5, - C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4, - false, 2, 0), + C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA), =20 - INTERLEAVED_RGB_FMT(RGBX5551, + INTERLEAVED_RGBX_FMT(RGBX5551, 2, BPC1A, BPC5, BPC5, BPC5, - C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr, 4, - false, 2, 0), + C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr), =20 - INTERLEAVED_RGB_FMT(BGRX5551, + INTERLEAVED_RGBX_FMT(BGRX5551, 2, BPC1A, BPC5, BPC5, BPC5, - C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb, 4, - false, 2, 0), + C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb), =20 - INTERLEAVED_RGB_FMT(ARGB4444, + INTERLEAVED_RGBA_FMT(ARGB4444, 2, BPC4A, BPC4, BPC4, BPC4, - C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA, 4, - true, 2, 0), + C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA), =20 - INTERLEAVED_RGB_FMT(ABGR4444, + INTERLEAVED_RGBA_FMT(ABGR4444, 2, BPC4A, BPC4, BPC4, BPC4, - C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4, - true, 2, 0), + C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA), =20 - INTERLEAVED_RGB_FMT(RGBA4444, + INTERLEAVED_RGBA_FMT(RGBA4444, 2, BPC4A, BPC4, BPC4, BPC4, - C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr, 4, - true, 2, 0), + C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr), =20 - INTERLEAVED_RGB_FMT(BGRA4444, + INTERLEAVED_RGBA_FMT(BGRA4444, 2, BPC4A, BPC4, BPC4, BPC4, - C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb, 4, - true, 2, 0), + C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb), =20 - INTERLEAVED_RGB_FMT(XRGB4444, + INTERLEAVED_RGBX_FMT(XRGB4444, 2, BPC4A, BPC4, BPC4, BPC4, - C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA, 4, - false, 2, 0), + C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA), =20 - INTERLEAVED_RGB_FMT(XBGR4444, + INTERLEAVED_RGBX_FMT(XBGR4444, 2, BPC4A, BPC4, BPC4, BPC4, - C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4, - false, 2, 0), + C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA), =20 - INTERLEAVED_RGB_FMT(RGBX4444, + INTERLEAVED_RGBX_FMT(RGBX4444, 2, BPC4A, BPC4, BPC4, BPC4, - C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr, 4, - false, 2, 0), + C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr), =20 - INTERLEAVED_RGB_FMT(BGRX4444, + INTERLEAVED_RGBX_FMT(BGRX4444, 2, BPC4A, BPC4, BPC4, BPC4, - C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb, 4, - false, 2, 0), + C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb), =20 - INTERLEAVED_RGB_FMT(BGRA1010102, + INTERLEAVED_RGBA_DX_FMT(BGRA1010102, 4, BPC8A, BPC8, BPC8, BPC8, - C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb, 4, - true, 4, MSM_FORMAT_FLAG_DX), + C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb), =20 - INTERLEAVED_RGB_FMT(RGBA1010102, + INTERLEAVED_RGBA_DX_FMT(RGBA1010102, 4, BPC8A, BPC8, BPC8, BPC8, - C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr, 4, - true, 4, MSM_FORMAT_FLAG_DX), + C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr), =20 - INTERLEAVED_RGB_FMT(ABGR2101010, + INTERLEAVED_RGBA_DX_FMT(ABGR2101010, 4, BPC8A, BPC8, BPC8, BPC8, - C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4, - true, 4, MSM_FORMAT_FLAG_DX), + C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA), =20 - INTERLEAVED_RGB_FMT(ARGB2101010, + INTERLEAVED_RGBA_DX_FMT(ARGB2101010, 4, BPC8A, BPC8, BPC8, BPC8, - C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA, 4, - true, 4, MSM_FORMAT_FLAG_DX), + C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA), =20 - INTERLEAVED_RGB_FMT(XRGB2101010, + INTERLEAVED_RGBX_DX_FMT(XRGB2101010, 4, BPC8A, BPC8, BPC8, BPC8, - C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA, 4, - false, 4, MSM_FORMAT_FLAG_DX), + C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA), =20 - INTERLEAVED_RGB_FMT(BGRX1010102, + INTERLEAVED_RGBX_DX_FMT(BGRX1010102, 4, BPC8A, BPC8, BPC8, BPC8, - C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb, 4, - false, 4, MSM_FORMAT_FLAG_DX), + C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb), =20 - INTERLEAVED_RGB_FMT(XBGR2101010, + INTERLEAVED_RGBX_DX_FMT(XBGR2101010, 4, BPC8A, BPC8, BPC8, BPC8, - C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4, - false, 4, MSM_FORMAT_FLAG_DX), + C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA), =20 - INTERLEAVED_RGB_FMT(RGBX1010102, + INTERLEAVED_RGBX_DX_FMT(RGBX1010102, 4, BPC8A, BPC8, BPC8, BPC8, - C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr, 4, - false, 4, MSM_FORMAT_FLAG_DX), + C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr), =20 /* --- RGB formats above / YUV formats below this line --- */ =20 --=20 2.47.2 From nobody Fri Oct 3 05:27:00 2025 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 465581D86FF for ; Fri, 5 Sep 2025 00:38:56 +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=1757032738; cv=none; b=JCxzhiLcr4XhDrpecEAqO3PLVLFK62QEYOpkjMOisSL98BP4HvvulF34LPEhG6Vhvgub+DN1kt2dukmnoIEy1Qxg6UJvzZUl1BDDpIPzeIgjuyl0iYUKki9t3Ct1IHLz+Mcm83ovT4jRfAspaPFSn0hAFjHLFxgn2c7jltJE9Rw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757032738; c=relaxed/simple; bh=9Q5DBCw+1k2q8jQmkOcZzq3I92Gkam7S2gIJxMUuwQA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=VmrlgYQxTj8YDTxw2/ndOJwykdfWO1syUbpe4HAabh9KkduMm1Vj1av/dDtxWGXzg/kAd/QwaYS9/2OJMkKLpuGwL1UXGMMbXXSMf1dAxh5qcUB0CU7bCKkT6xjQL9mEgBL2x9Ykw0YejmwRK7kf5r/3zYTNr1CctXB/9zGSKBI= 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=D6+8D8YC; 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="D6+8D8YC" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 584IiOfN022986 for ; Fri, 5 Sep 2025 00:38:55 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= JIDrCu3rz5oiUxwp15VOp/6eIHgk9Q1mb18i7DMZfyQ=; b=D6+8D8YCEmhw1rw0 3FTiz+fRA3CUHuOH521j+Tcfqpa1lQy7GyV/3ZWoWgPwnBhonkPXPJmBRymxjROB W2CPAY8RJq8whLAXL0++6RJZdqjjEpgQa9rw0SrjHJ5My+h8gjW7KnZdoI13S/4M fTcL8NBXVA41er0ML+XvtYGt2ElAnfdPmq52wRg3oit+2mU+QSD5XWaDqtUX7xKO KnFuvkO1qfWCWDax4Hi2QaA9iUHF5YgWPjcVJ3THFnCCtQp197Jubm9XXEoM98kT DnOV/a4vSBGNhSLwCs1jnZd9cczmGUF3uiKVyB89xBmjX+VzZhPhDDcJsZyMZ0i3 Vb5s6Q== Received: from mail-qv1-f69.google.com (mail-qv1-f69.google.com [209.85.219.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48uq0esech-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Fri, 05 Sep 2025 00:38:55 +0000 (GMT) Received: by mail-qv1-f69.google.com with SMTP id 6a1803df08f44-71ff3e1256cso30370026d6.1 for ; Thu, 04 Sep 2025 17:38:55 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757032734; x=1757637534; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JIDrCu3rz5oiUxwp15VOp/6eIHgk9Q1mb18i7DMZfyQ=; b=jQJm49ZzeXEEtewnw7PBeYXbQVbqbU4ettxYMhxGXYyWgRDYljEbdfmJyhX1K48SA9 NENAcam6cghytlaw/Oi0UQas3e07N0QeYXnntjsks/ps5ZFSMmhGWyeBhwQLfs4g38AB E8uEn93PzJKWWbccFUqi/r0JU/aq3cjPN9Q8a8qo86z1XQuZkP9FIhlp+xQMxgdIDWKX JjVMp++ecwi0On6SiOBP4QOJvtrIsRWUVdXKpuzIuMfpAQvFOWA1igmQ//Etxf2p9T0T 1ISm8UbCDL4whQkUfvgARVtzM9Ua8Emt3CLddcaS4yhRBEfTPd1BbROTW1Qg9oXG0TzN Jv1g== X-Forwarded-Encrypted: i=1; AJvYcCWVSozrZQsFLNfnbJOE+0qvemxbMMCCx01vGO0VzZHNsicQzGEeg6Po6JLhmzKRJi4Z/3XoHWYxMkC5zus=@vger.kernel.org X-Gm-Message-State: AOJu0YwIf5dFUVRghr1UBp2OA5hTpyvWgej4JhhD+pflynKX3ykeSC6+ U0PHilMOZT1d2d3fXV+eOHkWynEloLhtV9d1CvDPH43YPU6AX+Gdh5WzdR88saON0GaWe66J7cn e0luMhsZxm59QqKCgLXBP1BtAYoCjsJMY2jWlBzi1OHvvqM5JStqfzEPv3AwKIa4IGI4= X-Gm-Gg: ASbGncsk/QT36Zo06zPNOhv7N+0+8iAwGBNzxsAbfgI+i5WrzCTf9y/NKPfAKkY9/hl 7U9Nm+LsFdDHow1091P5uHYQIc4SeKDrkVZGgxxYEdh8+bzc9NEps6P0wOChDKB8cIb4EmZQNeO mkz6HeW9BVtTc9fpgKgsQcrwPUZUYmzbO2c1qdN/XDMz7memM2CkfN4ScdMui5FTqN5vdcX3fah DDkwFOq3d9mgCeCZqPPwhABQvYZukp1oGXpODF5lazwvXgyDkOiAHA5CxVDQT2Shd3OEM2NqnYH ZOxDUY/sd0kkL0Pi47sYaoDHkYVM/XifrEGX2MD+KVD4Na1faHEItAwxWE9b/hBcmnAY9L2VJfX +lzhUdDh61GSafcS9Jzfv53D2LH9V2mQcThD5LXaLlyCO69H3Q9cn X-Received: by 2002:a05:6214:5284:b0:721:7625:6774 with SMTP id 6a1803df08f44-72176256887mr135292486d6.43.1757032734152; Thu, 04 Sep 2025 17:38:54 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFGd/mdUQO5LjKZ+0i7o36FLPM0QePyQdli/3eJe/UNzTN7MWLWoX13dNBKVLGie1h1y0MDqg== X-Received: by 2002:a05:6214:5284:b0:721:7625:6774 with SMTP id 6a1803df08f44-72176256887mr135292086d6.43.1757032733634; Thu, 04 Sep 2025 17:38:53 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5608acfd938sm1510059e87.109.2025.09.04.17.38.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Sep 2025 17:38:51 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 05 Sep 2025 03:38:34 +0300 Subject: [PATCH v2 05/12] drm/msm/disp: simplify tiled RGB{,A,X} formats definitions 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: quoted-printable Message-Id: <20250905-dpu-formats-v2-5-7a674028c048@oss.qualcomm.com> References: <20250905-dpu-formats-v2-0-7a674028c048@oss.qualcomm.com> In-Reply-To: <20250905-dpu-formats-v2-0-7a674028c048@oss.qualcomm.com> To: Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , David Airlie , Simona Vetter , Jordan Crouse Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=9223; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=9Q5DBCw+1k2q8jQmkOcZzq3I92Gkam7S2gIJxMUuwQA=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoujEJVK2wMShAjtYorSRjgTypvUqLRyv+c+ybr a6CUVljzBiJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaLoxCQAKCRCLPIo+Aiko 1XKxB/9Rc+okPSHTJdQhhNaJOp2jdtSWTyt9th30Q4qhakFG6fKRJwYCu6663PtVE3xwGWhtez7 IIoR4rSmkfUI1GdTnU/z1BwTlqmKgMqJ/SPNM7FVIzt7JkRyeSL8/x07dTxw98IeGKmhhtFHY0a kv+iRMEWGIQaylZAKyl83pUbznMRNQADI1m9FOf4lAS6xYau9fBAAV0rP/x0bHAdY0oM1ZvL44R 1mZr0eY1E8ymOxqY5S5CB4mapeujvS0nsTrjQIXq2zGDljmxwvw8MR6W/mU5mE+gcTPPf+wEe/f cICytv/ZtR1SN72w/1gebwZqNiURQ3JtfZsHPlINz2WoC7KE X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-GUID: U5QRPEtTP5FjBkJwY3rSGOK8ceBnwnSg X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAwNCBTYWx0ZWRfX7z0Yt0FNlCW4 +Unz1CoABr51XNtjIw0eZjAPlg+DeCmPKmcLjSqqAQ87Sc3ya82um8JkTqjtCPXehpQDppqzqcg 6L3dY8XShdljd8Ju6kloTrf0ZIFZSo7+lXpBZPSOQLQOwWg+FfKBMcDjaAkNFN/aM4tXnL3aQ6K LPIp3A+kWCjTi1IJZmOwIwsxW1SKMKi9p58Fg0XrCaotra8Yn/5I0BtsOl2U8KWY8KLtr7mvowt QVFIyRi1Jx2G1MCne/svmwAAXm712tynsaFWbFCkq8HinqwmEk+3JediVHWGUbJpqtJxcw68WWV CQhSE+yq7x8PIQEOlav3mR3zudNQaSNwTvdYxBUDbZSUU1dPcYqBf8bMtUUs0hL6yUxeyQKdBe4 YT0Khmm/ X-Proofpoint-ORIG-GUID: U5QRPEtTP5FjBkJwY3rSGOK8ceBnwnSg X-Authority-Analysis: v=2.4 cv=ea09f6EH c=1 sm=1 tr=0 ts=68ba311f cx=c_pps a=wEM5vcRIz55oU/E2lInRtA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=EUspDBNiAAAA:8 a=bDeApkG1lX2_c04m800A:9 a=QEXdDO2ut3YA:10 a=OIgjcC2v60KrkQgK7BGD:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-04_08,2025-09-04_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 suspectscore=0 clxscore=1015 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300004 Define several additional macros, capturing tiled RGB format classes, in order to simplify defining particular RGB* format. Reviewed-by: Jessica Zhang Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/disp/mdp_format.c | 118 ++++++++++++++++++++++++------= ---- 1 file changed, 85 insertions(+), 33 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/mdp_format.c b/drivers/gpu/drm/msm/di= sp/mdp_format.c index 28cef986f2d662484afd47440a79393c48256ff5..d577b3d53fbebced63792b5c65f= 50dd45211c8ea 100644 --- a/drivers/gpu/drm/msm/disp/mdp_format.c +++ b/drivers/gpu/drm/msm/disp/mdp_format.c @@ -163,22 +163,83 @@ static struct csc_cfg csc_convert[CSC_MAX] =3D { .tile_height =3D MDP_TILE_HEIGHT_DEFAULT \ } =20 -#define INTERLEAVED_RGB_FMT_TILED(fmt, a, r, g, b, e0, e1, e2, e3, uc, \ -alpha, bp, flg) \ +#define INTERLEAVED_RGB_FMT_TILED(fmt, bp, r, g, b, e0, e1, e2) \ { \ .pixel_format =3D DRM_FORMAT_ ## fmt, \ .fetch_type =3D MDP_PLANE_INTERLEAVED, \ - .alpha_enable =3D alpha, \ + .alpha_enable =3D false, \ + .element =3D { (e0), (e1), (e2), 0 }, \ + .bpc_g_y =3D g, \ + .bpc_b_cb =3D b, \ + .bpc_r_cr =3D r, \ + .bpc_a =3D 0, \ + .chroma_sample =3D CHROMA_FULL, \ + .unpack_count =3D 3, \ + .bpp =3D bp, \ + .fetch_mode =3D MDP_FETCH_UBWC, \ + .flags =3D MSM_FORMAT_FLAG_UNPACK_TIGHT | \ + MSM_FORMAT_FLAG_COMPRESSED, \ + .num_planes =3D 2, \ + .tile_height =3D MDP_TILE_HEIGHT_UBWC, \ +} + +#define INTERLEAVED_RGBA_FMT_TILED(fmt, bp, a, r, g, b, e0, e1, e2, e3) \ +{ \ + .pixel_format =3D DRM_FORMAT_ ## fmt, \ + .fetch_type =3D MDP_PLANE_INTERLEAVED, \ + .alpha_enable =3D true, \ .element =3D { (e0), (e1), (e2), (e3) }, \ .bpc_g_y =3D g, \ .bpc_b_cb =3D b, \ .bpc_r_cr =3D r, \ .bpc_a =3D a, \ .chroma_sample =3D CHROMA_FULL, \ - .unpack_count =3D uc, \ + .unpack_count =3D 4, \ .bpp =3D bp, \ .fetch_mode =3D MDP_FETCH_UBWC, \ - .flags =3D MSM_FORMAT_FLAG_UNPACK_TIGHT | flg, \ + .flags =3D MSM_FORMAT_FLAG_UNPACK_TIGHT | \ + MSM_FORMAT_FLAG_COMPRESSED, \ + .num_planes =3D 2, \ + .tile_height =3D MDP_TILE_HEIGHT_UBWC, \ +} + +#define INTERLEAVED_RGBX_FMT_TILED(fmt, bp, a, r, g, b, e0, e1, e2, e3) \ +{ \ + .pixel_format =3D DRM_FORMAT_ ## fmt, \ + .fetch_type =3D MDP_PLANE_INTERLEAVED, \ + .alpha_enable =3D false, \ + .element =3D { (e0), (e1), (e2), (e3) }, \ + .bpc_g_y =3D g, \ + .bpc_b_cb =3D b, \ + .bpc_r_cr =3D r, \ + .bpc_a =3D a, \ + .chroma_sample =3D CHROMA_FULL, \ + .unpack_count =3D 4, \ + .bpp =3D bp, \ + .fetch_mode =3D MDP_FETCH_UBWC, \ + .flags =3D MSM_FORMAT_FLAG_UNPACK_TIGHT | \ + MSM_FORMAT_FLAG_COMPRESSED, \ + .num_planes =3D 2, \ + .tile_height =3D MDP_TILE_HEIGHT_UBWC, \ +} + +#define INTERLEAVED_RGBA_DX_FMT_TILED(fmt, bp, a, r, g, b, e0, e1, e2, e3)= \ +{ \ + .pixel_format =3D DRM_FORMAT_ ## fmt, \ + .fetch_type =3D MDP_PLANE_INTERLEAVED, \ + .alpha_enable =3D true, \ + .element =3D { (e0), (e1), (e2), (e3) }, \ + .bpc_g_y =3D g, \ + .bpc_b_cb =3D b, \ + .bpc_r_cr =3D r, \ + .bpc_a =3D a, \ + .chroma_sample =3D CHROMA_FULL, \ + .unpack_count =3D 4, \ + .bpp =3D bp, \ + .fetch_mode =3D MDP_FETCH_UBWC, \ + .flags =3D MSM_FORMAT_FLAG_UNPACK_TIGHT | \ + MSM_FORMAT_FLAG_DX | \ + MSM_FORMAT_FLAG_COMPRESSED, \ .num_planes =3D 2, \ .tile_height =3D MDP_TILE_HEIGHT_UBWC, \ } @@ -525,58 +586,49 @@ static const struct msm_format mdp_formats[] =3D { * the data will be passed by user-space. */ static const struct msm_format mdp_formats_ubwc[] =3D { - INTERLEAVED_RGB_FMT_TILED(BGR565, - 0, BPC5, BPC6, BPC5, - C2_R_Cr, C0_G_Y, C1_B_Cb, 0, 3, - false, 2, MSM_FORMAT_FLAG_COMPRESSED), + INTERLEAVED_RGB_FMT_TILED(BGR565, 2, + BPC5, BPC6, BPC5, + C2_R_Cr, C0_G_Y, C1_B_Cb), =20 - INTERLEAVED_RGB_FMT_TILED(ABGR8888, + INTERLEAVED_RGBA_FMT_TILED(ABGR8888, 4, BPC8A, BPC8, BPC8, BPC8, - C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4, - true, 4, MSM_FORMAT_FLAG_COMPRESSED), + C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA), =20 /* ARGB8888 and ABGR8888 purposely have the same color * ordering. The hardware only supports ABGR8888 UBWC * natively. */ - INTERLEAVED_RGB_FMT_TILED(ARGB8888, + INTERLEAVED_RGBA_FMT_TILED(ARGB8888, 4, BPC8A, BPC8, BPC8, BPC8, - C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4, - true, 4, MSM_FORMAT_FLAG_COMPRESSED), + C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA), =20 - INTERLEAVED_RGB_FMT_TILED(XBGR8888, + INTERLEAVED_RGBX_FMT_TILED(XBGR8888, 4, BPC8A, BPC8, BPC8, BPC8, - C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4, - false, 4, MSM_FORMAT_FLAG_COMPRESSED), + C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA), =20 - INTERLEAVED_RGB_FMT_TILED(XRGB8888, + INTERLEAVED_RGBX_FMT_TILED(XRGB8888, 4, BPC8A, BPC8, BPC8, BPC8, - C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4, - false, 4, MSM_FORMAT_FLAG_COMPRESSED), + C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA), =20 - INTERLEAVED_RGB_FMT_TILED(ABGR2101010, + INTERLEAVED_RGBA_DX_FMT_TILED(ABGR2101010, 4, BPC8A, BPC8, BPC8, BPC8, - C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4, - true, 4, MSM_FORMAT_FLAG_DX | MSM_FORMAT_FLAG_COMPRESSED), + C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA), =20 - INTERLEAVED_RGB_FMT_TILED(XBGR2101010, + INTERLEAVED_RGBA_DX_FMT_TILED(XBGR2101010, 4, BPC8A, BPC8, BPC8, BPC8, - C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4, - true, 4, MSM_FORMAT_FLAG_DX | MSM_FORMAT_FLAG_COMPRESSED), + C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA), =20 - INTERLEAVED_RGB_FMT_TILED(XRGB2101010, + INTERLEAVED_RGBA_DX_FMT_TILED(XRGB2101010, 4, BPC8A, BPC8, BPC8, BPC8, - C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4, - true, 4, MSM_FORMAT_FLAG_DX | MSM_FORMAT_FLAG_COMPRESSED), + C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA), =20 /* XRGB2101010 and ARGB2101010 purposely have the same color * ordering. The hardware only supports ARGB2101010 UBWC * natively. */ - INTERLEAVED_RGB_FMT_TILED(ARGB2101010, + INTERLEAVED_RGBA_DX_FMT_TILED(ARGB2101010, 4, BPC8A, BPC8, BPC8, BPC8, - C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4, - true, 4, MSM_FORMAT_FLAG_DX | MSM_FORMAT_FLAG_COMPRESSED), + C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA), =20 PSEUDO_YUV_FMT_TILED(NV12, 0, BPC8, BPC8, BPC8, --=20 2.47.2 From nobody Fri Oct 3 05:27:00 2025 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 B0A831D90DD for ; Fri, 5 Sep 2025 00:38:57 +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=1757032739; cv=none; b=PtI9SvCxsEkVFIDScqIQhA6yoouzG4RDhoNFy9kNNHr0Z2y77fsqSLq/sDAkFANv+z5AVm1OlE3IqkqCNcsbglmT8qjU3YirlmjRA7vQyGFrZ/qyFvp+NmkPBYU/rEtY2OdB1+6JidD/xJzcYIoY3BHnZh1aWSrvjMrgeYIwGCU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757032739; c=relaxed/simple; bh=nMuJPm4tujFlIG/Bup3ztoIZhnYNRrxCLxzIl0hHDn0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=sOPz965ZoK+M2VolUP+lTEYnQAIsTLxgT/fgB+o/6JwWFpBv4ESZnZHMBQyM2t7jz4lQ04dZXJtfwtxI/6jC2QR5z/tkNmjk5YsDOL9un/FNK2VdSZSvZBgqssxwQahHqpdmyufXXAJ3ABk6Un4kvfqGlJtnBhOCzWH/h/0cNy8= 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=UWefGyFt; 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="UWefGyFt" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 584IJY8J022166 for ; Fri, 5 Sep 2025 00:38:57 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= ZyJkojl4OO+NqHoy56xIqffWCIUCiH0xVFBe9iXAOPk=; b=UWefGyFt1qrq8EcA vjqFtGkxRLEtNbPbGIVabKUqnMh/X7dnSKLeeKYvh9yR1geNxmrk0dqbnYITQdg1 Mw2x+3Tb0ZDll49/1p8yuddK7Uu9Up4Iz/BZmFtteicsTg1pDT4irpAO3JofFY3Q IoBEYsw/NUH4TE3t2o2olSWnJI7Y3n/jS2CBfjldnwBip+acbLEmDzkjbAV2MBql N9yDJYy/2ffdChxOxc5nvUKZ8g7HRTwQ/J0oEEPLTW8bzOGv+SLu+ntR9179AbF8 0w50kLXAIj3WCBk+zU1awBuTcylM5kfMLbQSCwgiLb7GC/B9SNRUf6qw6wM/j+o4 Y+BnZQ== 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 48utk994wa-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Fri, 05 Sep 2025 00:38:57 +0000 (GMT) Received: by mail-qv1-f72.google.com with SMTP id 6a1803df08f44-70ddadde46bso29046406d6.2 for ; Thu, 04 Sep 2025 17:38:56 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757032736; x=1757637536; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZyJkojl4OO+NqHoy56xIqffWCIUCiH0xVFBe9iXAOPk=; b=G0DwuY1AjxYW+QMkzdinRhe69xYMQ0VX6C1G7MEK8Ubt6I66qUtV6MBqq+PTADviC4 kJmhQMISGSnekh9Pd3eTLJ9qWo9LIZku6u9zFL/qvLGn69N0F+NMYrTK2fdOI1Z+vsyb sZkVa53anNzMs0/zRyMOYdUQINOinI5WIMwlWZMN5KSNboqVhD7todf9xYDgBMQqM2dl voAFA3etkiKZ/FROJW3XDfojMr5SREc/Gx8DwuogBbKknZYgj0Qs7PVtNM+da9WpVH3K Y54NiNFg6uvfzu0XKj2XVs2WPvH4X4uxFWT/2mGsWGIApTkQtmbRm5D5AmXQpy6C0C1Z 8swg== X-Forwarded-Encrypted: i=1; AJvYcCW/3lRbs0TD1DZ92VQrUIbyez4blYxQWbzj5jMGV8DzQESGVHORgg8/CdAh0/ukDz3q0j8ZPlHBxevlWLI=@vger.kernel.org X-Gm-Message-State: AOJu0YyleU51fVCWcJgwZohepekD6r7O3EORlDiKmKXNS0KmSKOUngUw pOKlWKJ4dNubSgacPauum+3ocMkncB5tEBs9NFHhwKd1XO9e/yvXDtxyI+jLC+Zln/tCHq8s3ZN fueRRHmkZ9GwZPF9Pv0DQ+/GDJef1TFSmsBpu5eWMvZGpRYcdSJHsPxJYwucs5xCZ1S0= X-Gm-Gg: ASbGncuJGCjtIxgPFWucMxERW3VATRTu/RweYEzOjU305gc6WGpycYR3xn/Riy4lJZl fRBLIO0skwgcmlOSamq0Ufouu5pNB4NGnb22g6vbci3c89fiGkJnsepkyh1adV1Anl1IeLl76Lv EPf3685kPW2wfZ9fG0S7aEc7gHJLnNuNO2k/WgaQ1b4XPcKnq002Tm4UPIsKwCjXD3ZjywpCe2G 1dyiwfyAepQP1UvayFaJa1NSEarBSySdfBADepAJVJn69/D0RlAMeUzwV18vuOPUsL2xf1pSwj+ 4fvHrSFrR8uXQRE+oEDvUtMgngBtfaYEmurZ75Rdn+Pkz11TG8PCWpw//DwQwlIpQUogyRHc8LZ tg8Opl2XPVWpVjNGy7d+mC1JOOtbKJlk0aw/P1Sc7gf1cXKyTuQE6 X-Received: by 2002:a05:6214:21c6:b0:726:d08c:854 with SMTP id 6a1803df08f44-726d08c0a35mr92458166d6.61.1757032735316; Thu, 04 Sep 2025 17:38:55 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEXpqU6DEyIjF4gKMfYD5tqp9Yph5/UllP5v2CM9Jbx6+l9n/cRjRpOP8VxxLph/+7TjHHjjQ== X-Received: by 2002:a05:6214:21c6:b0:726:d08c:854 with SMTP id 6a1803df08f44-726d08c0a35mr92457806d6.61.1757032734861; Thu, 04 Sep 2025 17:38:54 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5608acfd938sm1510059e87.109.2025.09.04.17.38.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Sep 2025 17:38:54 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 05 Sep 2025 03:38:35 +0300 Subject: [PATCH v2 06/12] drm/msm/disp: pull in common YUV format parameters 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: quoted-printable Message-Id: <20250905-dpu-formats-v2-6-7a674028c048@oss.qualcomm.com> References: <20250905-dpu-formats-v2-0-7a674028c048@oss.qualcomm.com> In-Reply-To: <20250905-dpu-formats-v2-0-7a674028c048@oss.qualcomm.com> To: Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , David Airlie , Simona Vetter , Jordan Crouse Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=10606; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=nMuJPm4tujFlIG/Bup3ztoIZhnYNRrxCLxzIl0hHDn0=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoujEJzwYec9KjIa9RaCQxdCGG6SEEIwhb25qxS NzJyLf4sSOJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaLoxCQAKCRCLPIo+Aiko 1ZJ8B/4zKS4eAvms6HU0jPUIr6ZRkuq4uw3aixuYcGfYLgfieCCWAf5rbGt+rRp67aR1XmfWkN3 ClxXs0Ei903rFb6H5xB0l0d3BYgLowlVzgMvhM46zqlvQXK3WpJC8kBWvU/jq77LrCY7dUigyYm SZOIP+nx2xNyJWluxe7+d1u82GePJhDQk75ba5yq5wqAd+0fU0R1Y52e4/qhBRJT8d3G+wQmVBY ObNDi24dHZc6nQX8SSmJkEXkafpV4SroUuiGSRp3XmY15ys/pQlne/1BIbbxd1Q+/njsathXh44 6fiExcZdXDDi1Iyk1l8f2VCj15peZ/EZ3iwMJ7ByhAFddhAO X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-GUID: 5gzG5d8syV3GwyMJbRgLvS0MlV2PImHr X-Proofpoint-ORIG-GUID: 5gzG5d8syV3GwyMJbRgLvS0MlV2PImHr X-Authority-Analysis: v=2.4 cv=ccnSrmDM c=1 sm=1 tr=0 ts=68ba3121 cx=c_pps a=7E5Bxpl4vBhpaufnMqZlrw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=EUspDBNiAAAA:8 a=J-CC3KfA7NYzMh5jGAsA:9 a=QEXdDO2ut3YA:10 a=pJ04lnu7RYOZP9TFuWaZ:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDA0MiBTYWx0ZWRfX5hT5jB8070dI 8V19vtH+38xl26CMh8BL7xCIWvNdodfcGYeiVgxhcFXxqPeAOcCrv+9ByT35LiuYlKCmT6h8Kb1 iOgphIcpIRYI6I5r9vNqgAKmrgDPebFd1h75Ea16hUIuSoqvAz2mdF1g3Wcq74MnLRj2VTLMnpI LIzOVeeIo9eu7kugvHIQ5PbIBu5lfo2/Psh2SVa5+3ZtAWgdyDJ2on8UKmp8i849cEO3/zEzPnE ZBvvYzJv8d0+B6izj31aaMkievA+f6fzqFR5YBj3vnZhrOXY8HtD1o3BTflZ7A89xEUmlZM5nbN ePPj/YVBmn7oxDJ49RftY9lqlxqO63+ZhpjPtIBKX5IVUMGlCxtcTYP6+g6QfeLFkS2+K6GxbKY dQYBgijK X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-04_08,2025-09-04_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 phishscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 clxscore=1015 suspectscore=0 spamscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300042 Pull common params of YUV formats into corresponding macro definitions, simplifying format table. Reviewed-by: Jessica Zhang Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/disp/mdp_format.c | 120 ++++++++++++++++--------------= ---- 1 file changed, 56 insertions(+), 64 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/mdp_format.c b/drivers/gpu/drm/msm/di= sp/mdp_format.c index d577b3d53fbebced63792b5c65f50dd45211c8ea..900b2de252a6eb2eac3d0670f1a= aa77f7520fd77 100644 --- a/drivers/gpu/drm/msm/disp/mdp_format.c +++ b/drivers/gpu/drm/msm/disp/mdp_format.c @@ -244,27 +244,27 @@ static struct csc_cfg csc_convert[CSC_MAX] =3D { .tile_height =3D MDP_TILE_HEIGHT_UBWC, \ } =20 -#define INTERLEAVED_YUV_FMT(fmt, a, r, g, b, e0, e1, e2, e3, \ -alpha, chroma, count, bp, flg, fm, np) \ +#define INTERLEAVED_YUV_FMT(fmt, bp, r, g, b, e0, e1, e2, e3, chroma) \ { \ .pixel_format =3D DRM_FORMAT_ ## fmt, \ .fetch_type =3D MDP_PLANE_INTERLEAVED, \ - .alpha_enable =3D alpha, \ + .alpha_enable =3D false, \ .element =3D { (e0), (e1), (e2), (e3)}, \ .bpc_g_y =3D g, \ .bpc_b_cb =3D b, \ .bpc_r_cr =3D r, \ - .bpc_a =3D a, \ + .bpc_a =3D 0, \ .chroma_sample =3D chroma, \ - .unpack_count =3D count, \ + .unpack_count =3D 4, \ .bpp =3D bp, \ - .fetch_mode =3D fm, \ - .flags =3D MSM_FORMAT_FLAG_UNPACK_TIGHT | flg, \ - .num_planes =3D np, \ + .fetch_mode =3D MDP_FETCH_LINEAR, \ + .flags =3D MSM_FORMAT_FLAG_UNPACK_TIGHT | \ + MSM_FORMAT_FLAG_YUV, \ + .num_planes =3D 1, \ .tile_height =3D MDP_TILE_HEIGHT_DEFAULT \ } =20 -#define PSEUDO_YUV_FMT(fmt, a, r, g, b, e0, e1, chroma, flg, fm, np) \ +#define PSEUDO_YUV_FMT(fmt, r, g, b, e0, e1, chroma) \ { \ .pixel_format =3D DRM_FORMAT_ ## fmt, \ .fetch_type =3D MDP_PLANE_PSEUDO_PLANAR, \ @@ -273,13 +273,14 @@ alpha, chroma, count, bp, flg, fm, np) = \ .bpc_g_y =3D g, \ .bpc_b_cb =3D b, \ .bpc_r_cr =3D r, \ - .bpc_a =3D a, \ + .bpc_a =3D 0, \ .chroma_sample =3D chroma, \ .unpack_count =3D 2, \ .bpp =3D 2, \ - .fetch_mode =3D fm, \ - .flags =3D MSM_FORMAT_FLAG_UNPACK_TIGHT | flg, \ - .num_planes =3D np, \ + .fetch_mode =3D MDP_FETCH_LINEAR, \ + .flags =3D MSM_FORMAT_FLAG_UNPACK_TIGHT | \ + MSM_FORMAT_FLAG_YUV, \ + .num_planes =3D 2, \ .tile_height =3D MDP_TILE_HEIGHT_DEFAULT \ } =20 @@ -303,7 +304,7 @@ flg, fm, np, th) = \ .tile_height =3D th \ } =20 -#define PSEUDO_YUV_FMT_LOOSE(fmt, a, r, g, b, e0, e1, chroma, flg, fm, np)\ +#define PSEUDO_YUV_FMT_LOOSE(fmt, r, g, b, e0, e1, chroma) \ { \ .pixel_format =3D DRM_FORMAT_ ## fmt, \ .fetch_type =3D MDP_PLANE_PSEUDO_PLANAR, \ @@ -312,13 +313,15 @@ flg, fm, np, th) = \ .bpc_g_y =3D g, \ .bpc_b_cb =3D b, \ .bpc_r_cr =3D r, \ - .bpc_a =3D a, \ + .bpc_a =3D 0, \ .chroma_sample =3D chroma, \ .unpack_count =3D 2, \ .bpp =3D 2, \ - .fetch_mode =3D fm, \ - .flags =3D MSM_FORMAT_FLAG_UNPACK_ALIGN_MSB | flg, \ - .num_planes =3D np, \ + .fetch_mode =3D MDP_FETCH_LINEAR, \ + .flags =3D MSM_FORMAT_FLAG_UNPACK_ALIGN_MSB | \ + MSM_FORMAT_FLAG_DX | \ + MSM_FORMAT_FLAG_YUV, \ + .num_planes =3D 2, \ .tile_height =3D MDP_TILE_HEIGHT_DEFAULT \ } =20 @@ -342,23 +345,23 @@ flg, fm, np, th) = \ .tile_height =3D th \ } =20 -#define PLANAR_YUV_FMT(fmt, a, r, g, b, e0, e1, e2, alpha, chroma, bp, \ -flg, fm, np) \ +#define PLANAR_YUV_FMT(fmt, bp, r, g, b, e0, e1, e2, chroma) \ { \ .pixel_format =3D DRM_FORMAT_ ## fmt, \ .fetch_type =3D MDP_PLANE_PLANAR, \ - .alpha_enable =3D alpha, \ + .alpha_enable =3D false, \ .element =3D { (e0), (e1), (e2), 0 }, \ .bpc_g_y =3D g, \ .bpc_b_cb =3D b, \ .bpc_r_cr =3D r, \ - .bpc_a =3D a, \ + .bpc_a =3D 0, \ .chroma_sample =3D chroma, \ .unpack_count =3D 1, \ .bpp =3D bp, \ - .fetch_mode =3D fm, \ - .flags =3D MSM_FORMAT_FLAG_UNPACK_TIGHT | flg, \ - .num_planes =3D np, \ + .fetch_mode =3D MDP_FETCH_LINEAR, \ + .flags =3D MSM_FORMAT_FLAG_UNPACK_TIGHT | \ + MSM_FORMAT_FLAG_YUV, \ + .num_planes =3D 3, \ .tile_height =3D MDP_TILE_HEIGHT_DEFAULT \ } =20 @@ -511,72 +514,61 @@ static const struct msm_format mdp_formats[] =3D { =20 /* 2 plane YUV */ PSEUDO_YUV_FMT(NV12, - 0, BPC8, BPC8, BPC8, + BPC8, BPC8, BPC8, C1_B_Cb, C2_R_Cr, - CHROMA_420, MSM_FORMAT_FLAG_YUV, - MDP_FETCH_LINEAR, 2), + CHROMA_420), =20 PSEUDO_YUV_FMT(NV21, - 0, BPC8, BPC8, BPC8, + BPC8, BPC8, BPC8, C2_R_Cr, C1_B_Cb, - CHROMA_420, MSM_FORMAT_FLAG_YUV, - MDP_FETCH_LINEAR, 2), + CHROMA_420), =20 PSEUDO_YUV_FMT(NV16, - 0, BPC8, BPC8, BPC8, + BPC8, BPC8, BPC8, C1_B_Cb, C2_R_Cr, - CHROMA_H2V1, MSM_FORMAT_FLAG_YUV, - MDP_FETCH_LINEAR, 2), + CHROMA_H2V1), =20 PSEUDO_YUV_FMT(NV61, - 0, BPC8, BPC8, BPC8, + BPC8, BPC8, BPC8, C2_R_Cr, C1_B_Cb, - CHROMA_H2V1, MSM_FORMAT_FLAG_YUV, - MDP_FETCH_LINEAR, 2), + CHROMA_H2V1), =20 PSEUDO_YUV_FMT_LOOSE(P010, - 0, BPC8, BPC8, BPC8, + BPC8, BPC8, BPC8, C1_B_Cb, C2_R_Cr, - CHROMA_420, MSM_FORMAT_FLAG_DX | MSM_FORMAT_FLAG_YUV, - MDP_FETCH_LINEAR, 2), + CHROMA_420), =20 /* 1 plane YUV */ - INTERLEAVED_YUV_FMT(VYUY, - 0, BPC8, BPC8, BPC8, + INTERLEAVED_YUV_FMT(VYUY, 2, + BPC8, BPC8, BPC8, C2_R_Cr, C0_G_Y, C1_B_Cb, C0_G_Y, - false, CHROMA_H2V1, 4, 2, MSM_FORMAT_FLAG_YUV, - MDP_FETCH_LINEAR, 1), + CHROMA_H2V1), =20 - INTERLEAVED_YUV_FMT(UYVY, - 0, BPC8, BPC8, BPC8, + INTERLEAVED_YUV_FMT(UYVY, 2, + BPC8, BPC8, BPC8, C1_B_Cb, C0_G_Y, C2_R_Cr, C0_G_Y, - false, CHROMA_H2V1, 4, 2, MSM_FORMAT_FLAG_YUV, - MDP_FETCH_LINEAR, 1), + CHROMA_H2V1), =20 - INTERLEAVED_YUV_FMT(YUYV, - 0, BPC8, BPC8, BPC8, + INTERLEAVED_YUV_FMT(YUYV, 2, + BPC8, BPC8, BPC8, C0_G_Y, C1_B_Cb, C0_G_Y, C2_R_Cr, - false, CHROMA_H2V1, 4, 2, MSM_FORMAT_FLAG_YUV, - MDP_FETCH_LINEAR, 1), + CHROMA_H2V1), =20 - INTERLEAVED_YUV_FMT(YVYU, - 0, BPC8, BPC8, BPC8, + INTERLEAVED_YUV_FMT(YVYU, 2, + BPC8, BPC8, BPC8, C0_G_Y, C2_R_Cr, C0_G_Y, C1_B_Cb, - false, CHROMA_H2V1, 4, 2, MSM_FORMAT_FLAG_YUV, - MDP_FETCH_LINEAR, 1), + CHROMA_H2V1), =20 /* 3 plane YUV */ - PLANAR_YUV_FMT(YUV420, - 0, BPC8, BPC8, BPC8, + PLANAR_YUV_FMT(YUV420, 1, + BPC8, BPC8, BPC8, C2_R_Cr, C1_B_Cb, C0_G_Y, - false, CHROMA_420, 1, MSM_FORMAT_FLAG_YUV, - MDP_FETCH_LINEAR, 3), + CHROMA_420), =20 - PLANAR_YUV_FMT(YVU420, - 0, BPC8, BPC8, BPC8, + PLANAR_YUV_FMT(YVU420, 1, + BPC8, BPC8, BPC8, C1_B_Cb, C2_R_Cr, C0_G_Y, - false, CHROMA_420, 1, MSM_FORMAT_FLAG_YUV, - MDP_FETCH_LINEAR, 3), + CHROMA_420), }; =20 /* --=20 2.47.2 From nobody Fri Oct 3 05:27:00 2025 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 31F221DDC35 for ; Fri, 5 Sep 2025 00:38:59 +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=1757032740; cv=none; b=jPbLprfehDMH9SnVQoMpryX9L1xqK9LioeT3JNaQ4dEDgkB9BU4f1lsOPQdADWj6bZSRwyRyOENPeTlWE1lz3ufk1MVNtepjsvlXGxijOHBX7++8utghQ+gg43kXkJvJ9ry0biN4bW2pVuvMikmyC8eWAiooJwmcrCpZHqYiJyE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757032740; c=relaxed/simple; bh=T764qGaUs1J9VFKtvepXHsiXpOOMX042xzB4mztK948=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=oWJ2iai+fwaUDv2Komofa+rru8f/Gf7hnsqMLrldXkxBBjjgvn6Y7q91+CnSoCDFRlncoI0R5zP6BJqBfHc/FNOAsdNOnUnXt7mnFbem7zx+oDz7WhFSt7sUJMN/9hvNC+SpVv6PNF7LlnspiHgza8tOPwAWsPT17lvmMNinnPY= 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=UAlKFWoy; 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="UAlKFWoy" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 584IScQk012198 for ; Fri, 5 Sep 2025 00:38:58 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= 9brpOFp+/3/6vV4g7EI38M1O3ti6c1WPwrR8J+VQwpE=; b=UAlKFWoyVvB7CyPE Nlvg0Sg+fFeWVIeDfuo+4jbax5cJ7h8ZXtsS3+dHpihKgxWC93cU3ND5N663+4pI xdqefPyl9lJDAWc+uSxHWmBBhHMfYe0INp37Wt+QagDegVmYi/KkQeRwB04Ol3a/ Yv0BIZy3oyEa+obXQ3SNSaQgqkN4kilIOcNjd75iZKUb+YTJT2JSBYSU3p2uW84o 1dZnAct7+Mg8vV8UXXzgFTRJX1IplwEE1lbnK+pPfrOWnrCeWWz9M51MoQ2XTpJb iiDYbUSO12O066hWaa1Zap4o5GhR5AFpvXjbMkSXWhxCUiRR8VXnxjwu9faJG1MV kv1kHg== Received: from mail-qv1-f69.google.com (mail-qv1-f69.google.com [209.85.219.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48xmxj5pym-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Fri, 05 Sep 2025 00:38:58 +0000 (GMT) Received: by mail-qv1-f69.google.com with SMTP id 6a1803df08f44-7296c012f86so22178006d6.3 for ; Thu, 04 Sep 2025 17:38:58 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757032737; x=1757637537; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9brpOFp+/3/6vV4g7EI38M1O3ti6c1WPwrR8J+VQwpE=; b=tFQiiMk9q6+km+7V1ZmMWVujysIhY+/wys1XDEIUymJjgBjWpR0j6+vMHVco/kQmDG DKxmPStliw4JjZhbb/GuAPvEKEZ1kDRKTca4qYpPnor7l900i1hNIVg8fEifWzBgIJlN Adf6ZihzWxgJwxNyR4u2TIf2iLSpbbCJvolkqtqu5dRZ3BrVVoB4/PpiNEs8i+cgDTPp mRLENu1Ka1VJGd7+84u6aMp0MowgN+/zE6uasMVqf/6cUg5E2imFMzsT5gjuqlV6xheG FncNEH+c4wf8U4SQq/yDCztjGCYpdo46H5cXtbt73kMw8u1TeEdA0gRhJdDJD62MetUK CAug== X-Forwarded-Encrypted: i=1; AJvYcCVK4YWp8jGTOwXQ+sgOjrhVRYoriaZdHBQ2Ma5EAdeoVXpKmgu6udfJTy1yDF6DzaDswaQDSDfzLVkWeIM=@vger.kernel.org X-Gm-Message-State: AOJu0YyCLR42hXSb72uFZI+2pIzGdfypTnzG/VYIdol+M8TknITwFvZi BWPGeJsSjxeEg3k+g9lGf8cCJoMmlND+znzamXPt+2TvtuQLeuO7eGI/e/WSw5M+QMJnonZDVRp mJypGGDfs5zajFmE2kB8uc3AL1s3T3NbIbMyMq6GFoECyP4EINU1EKWDJt/JRrVgw9eI= X-Gm-Gg: ASbGncvZZp/2EtvqcpSdEjsyFxrcxIIXDASIZeHP4ypYhV7tFrwQYYMzEg9t74YXsro xRJAcPTbdt/RrKUR+8qLjRDfs3sy4/aDz7OPLePMHIPPOFc+0N2yg32xh3e0xJ6UZMe3xIaBoI6 8foMrtjLhBj4A1rhRhoRyGi5I8L4XIdUeDfkT92ueJhWOFANTyW4oBdQEHMS2mHG5cY4jlYMXn9 NPWdj3KUBuw7hHkXWVul7e8X+0WiBlXrYpcE295nqZe7vQh8R6SMjgpNbm12b1sh2zdQwmxHOTf XQBV3kH3TS5bKlXt7maPoUfT2JMG0PYXDAzioHZxCrvZKWI4BFHHEbZUJSxBIJHa6ngaTCa9Mne NKkc1oRm/LHHXN5HJP91TaXcXmATEjNrch/2wqG3VA/dnUzsPphGX X-Received: by 2002:a05:6214:2469:b0:72c:cc04:c3a4 with SMTP id 6a1803df08f44-72ccc04c455mr9697156d6.8.1757032737099; Thu, 04 Sep 2025 17:38:57 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGggptVB7yJzNpKmjyKL+r1E5aqNrdPD/lf2zm9l0aUlD3mzu8IDaTE/VSOjY55ioVtIEDZgQ== X-Received: by 2002:a05:6214:2469:b0:72c:cc04:c3a4 with SMTP id 6a1803df08f44-72ccc04c455mr9696816d6.8.1757032736562; Thu, 04 Sep 2025 17:38:56 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5608acfd938sm1510059e87.109.2025.09.04.17.38.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Sep 2025 17:38:55 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 05 Sep 2025 03:38:36 +0300 Subject: [PATCH v2 07/12] drm/msm/disp: pull in common tiled YUV format parameters 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: quoted-printable Message-Id: <20250905-dpu-formats-v2-7-7a674028c048@oss.qualcomm.com> References: <20250905-dpu-formats-v2-0-7a674028c048@oss.qualcomm.com> In-Reply-To: <20250905-dpu-formats-v2-0-7a674028c048@oss.qualcomm.com> To: Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , David Airlie , Simona Vetter , Jordan Crouse Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3220; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=T764qGaUs1J9VFKtvepXHsiXpOOMX042xzB4mztK948=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoujEKmhozhM/+m0ojp5V0LfFbrvFkofA6W7eN2 zog3jTw8leJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaLoxCgAKCRCLPIo+Aiko 1WBWCACkbqlPExGRCdiT0UZihOTCLMIN0u56fVd4JKEr4W83H1+sgCf0pawMxOGZCTHPFT5hvxM FujC3WWVbcsz1hnM2oRWtPtya6sCIPWKRskqGvJDUsGEa9mW4SP23z9y2AXAk5CgHNcFH9lu7g0 IeaSCENfkEevQlYsG+m++UAQF+YBbwAI9gEmh2lcqlJG6LFBrkZQz6wPG4Ew9gynLcX5Gl7iSGg fQVzC2kJNG94q4D0gQV3mwBX1eqbvgxkfiqY9Ww+ao6uTJBM1ZBucWHIsfj/Ad3oe0m9FbpDFYD YIQo8lZLTi8QTq24/iy09Ml0oFMwtxweD1VrgixjGOcT8icP X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTAzMDExNyBTYWx0ZWRfXwmtYsiZhMgng 5JnhJTEI8y61dpHkKHcczuiWzUyOqD0aolO5F7XCDj0TvVmvhZgXo70jINTChG26KpUDg/WL26S lQru2cnzEaKqlpaq0Em6ESegn66SJSIQGlP7lkX9wtTV871C+41WCeCQtluOjiAyehMDGwNi7nM pP+YdVWCcapPXcGFvZGCWptvX/GBRgHvmflMELrpCzqLotDKbUPUc4p56BTkm7GqNxm0RvV1nCW 2qUUHmi+JGkfwLS/AdMOUH4UCDAph6Iyr/vw9KmzM7dQzrHc6HH7BQXgLRCZ4KGaoTEV5C3vxuz mjmhoqIJkHtMOALxt4zRFNnLy+MgPuaaTOyt0KMISDZRh4x8A0Hz7h6HmN6qLr20GKYBx1sH4pV PAshB+4x X-Authority-Analysis: v=2.4 cv=a5cw9VSF c=1 sm=1 tr=0 ts=68ba3122 cx=c_pps a=wEM5vcRIz55oU/E2lInRtA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=EUspDBNiAAAA:8 a=FCw1dLDEiFPyt24oSuoA:9 a=QEXdDO2ut3YA:10 a=OIgjcC2v60KrkQgK7BGD:22 X-Proofpoint-GUID: 10MqLYBiugtvy_FRR0hrI5Jq4civTRzk X-Proofpoint-ORIG-GUID: 10MqLYBiugtvy_FRR0hrI5Jq4civTRzk X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-04_08,2025-09-04_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 clxscore=1015 bulkscore=0 priorityscore=1501 phishscore=0 impostorscore=0 adultscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2509030117 Pull common params of tiled YUV formats into corresponding macro definitions, simplifying format table. Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/disp/mdp_format.c | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/mdp_format.c b/drivers/gpu/drm/msm/di= sp/mdp_format.c index 900b2de252a6eb2eac3d0670f1aaa77f7520fd77..79f7f973dbf348acf2c06e66afe= deb8f22e7a8ca 100644 --- a/drivers/gpu/drm/msm/disp/mdp_format.c +++ b/drivers/gpu/drm/msm/disp/mdp_format.c @@ -284,8 +284,7 @@ static struct csc_cfg csc_convert[CSC_MAX] =3D { .tile_height =3D MDP_TILE_HEIGHT_DEFAULT \ } =20 -#define PSEUDO_YUV_FMT_TILED(fmt, a, r, g, b, e0, e1, chroma, \ -flg, fm, np, th) \ +#define PSEUDO_YUV_FMT_TILED(fmt, r, g, b, e0, e1, chroma, flg, th) \ { \ .pixel_format =3D DRM_FORMAT_ ## fmt, \ .fetch_type =3D MDP_PLANE_PSEUDO_PLANAR, \ @@ -294,13 +293,14 @@ flg, fm, np, th) = \ .bpc_g_y =3D g, \ .bpc_b_cb =3D b, \ .bpc_r_cr =3D r, \ - .bpc_a =3D a, \ + .bpc_a =3D 0, \ .chroma_sample =3D chroma, \ .unpack_count =3D 2, \ .bpp =3D 2, \ - .fetch_mode =3D fm, \ - .flags =3D MSM_FORMAT_FLAG_UNPACK_TIGHT | flg, \ - .num_planes =3D np, \ + .fetch_mode =3D MDP_FETCH_UBWC, \ + .flags =3D MSM_FORMAT_FLAG_UNPACK_TIGHT | \ + MSM_FORMAT_FLAG_COMPRESSED | flg, \ + .num_planes =3D 4, \ .tile_height =3D th \ } =20 @@ -623,19 +623,16 @@ static const struct msm_format mdp_formats_ubwc[] =3D= { C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA), =20 PSEUDO_YUV_FMT_TILED(NV12, - 0, BPC8, BPC8, BPC8, + BPC8, BPC8, BPC8, C1_B_Cb, C2_R_Cr, - CHROMA_420, MSM_FORMAT_FLAG_YUV | - MSM_FORMAT_FLAG_COMPRESSED, - MDP_FETCH_UBWC, 4, MDP_TILE_HEIGHT_NV12), + CHROMA_420, 0, + MDP_TILE_HEIGHT_NV12), =20 PSEUDO_YUV_FMT_TILED(P010, - 0, BPC8, BPC8, BPC8, + BPC8, BPC8, BPC8, C1_B_Cb, C2_R_Cr, - CHROMA_420, MSM_FORMAT_FLAG_DX | - MSM_FORMAT_FLAG_YUV | - MSM_FORMAT_FLAG_COMPRESSED, - MDP_FETCH_UBWC, 4, MDP_TILE_HEIGHT_UBWC), + CHROMA_420, MSM_FORMAT_FLAG_DX, + MDP_TILE_HEIGHT_UBWC), }; =20 const struct msm_format *mdp_get_format(struct msm_kms *kms, uint32_t form= at, --=20 2.47.2 From nobody Fri Oct 3 05:27:00 2025 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 53C271E51E1 for ; Fri, 5 Sep 2025 00:39:01 +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=1757032742; cv=none; b=fv90qMOyDipIyRG8JN7p5liLADl+/sQEn8500hvsfIXAGzhEOKwTqssIX8A2Y4zcer4pvGpCpaLHpaKXbr/7RZlFiafF52W0maamMohXGwWHDZZUo9bismmoWIBMSg0dQNqIPUJyT3AriZLOoJeqeCBQdNAgWj0j8vG5FmrvdhY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757032742; c=relaxed/simple; bh=XLkwtyygZJdPj3GjkZgZ1aANtwazJqGOIEmkYbUxRwQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=JDz5+2MsHsp7lpKr2Su4S90joma9xES2x46imZOOnJjgJUWVqT1nZcW0YKYgnGgKQsGOI1Z4bw92VSYPZmr8Vlblg5h/HFOWFd6jB2nEJOBv5c+4wpldgC8X1qikei2MFxpc1hoo0M26LV0jZSd41Ivufi5HAkJz7Rn9Ccgnp/A= 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=VE5ESYjl; 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="VE5ESYjl" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 584GUjtB017818 for ; Fri, 5 Sep 2025 00:39:00 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= bLiIOtcLE7wWiaqufYm5bdrdybL14BNM8N/yFfbsTSY=; b=VE5ESYjllYEICnuR D+Vcj5mbyBY0Ok7ERnQG2ZMTt6JiQzXKuJjGttNEr5NrumYFafTrlw9RxDz/QwzH niqcWvxyiVSOFqgMCbLMKKRg3Txhb3AR26xlE+gkAre1HRTLCGfAJ8jQGZ/UQ02D UszrjoReuu+sXBg6faQRIOajSLNQq0hJDz6Naopre4wXIzRNuDUF3n93PpO+tZ/4 SUkcwDUjHXx8eKpvV3ewQWyG/1AcihAmzIIFhsN+5AZsvFWjt8f2JhXO0b+sjonu 7fQo8cFEzg7DKzhnGeBf0LuYb0inQxZnb1wUTowSMB+4PtIjoniG3fIqhv4UgdwT 6yv1lA== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48yebus55v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Fri, 05 Sep 2025 00:39:00 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-4b49715fdfbso47508601cf.2 for ; Thu, 04 Sep 2025 17:39:00 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757032740; x=1757637540; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=bLiIOtcLE7wWiaqufYm5bdrdybL14BNM8N/yFfbsTSY=; b=s+fdRIIiGLG4HB5N1AMXOn2k9V59/Q93y67APthUIzd/ziijThxDbs94+iNAE7TbHY 79cosYZ5OoFNZNetoFTaAWPvPJug4xYMDogvJEYKjFIsKojkvXzQMj+p4+PtvQrSxGVV iZGADQPg3WN11WfNoMTtmC7trC3fNpnZk+3nXLdn8XAvTz/1pfPcP9CvzaPuF65146R9 K0V9SOZdwmyfNytEUbnSqz1qNuBCpoSDS95Ob8bPdyQwZj3XTOAjTEcgqHiXqSWkq+SR u0AaoCFDBgMtcTwmPpyXXW6pKT4HKPAaOEXOZT5293seGr+XSuU6izGsjXMEaViVMYd2 cc4Q== X-Forwarded-Encrypted: i=1; AJvYcCWzjhbljrYoLMKhIl6NOAPmOAA0nIXELDtb+QdwJXCggLOjMRVWyitv1fctXwT23PuEynIF6jV2eMdxJM4=@vger.kernel.org X-Gm-Message-State: AOJu0YxkOkumpdmJ/XiXtEQ5qVtKP8+VgQGfu07zY5rEvbkYRefGjqso gTxIvc3Ziu0wnjDEHrlfG6lPwfB7yu7YD6Enk8ALEOM2fRkIkFybj5jjdPi3Wzb+/VCI/GTRzQ5 sPh+c10+VL0QZq5c25/5P5GHxLe2BF6rXiYaUblO6nnQJnHguO4uwAz52sM5caAlYQT4= X-Gm-Gg: ASbGncu58Z43beFdpbl5WBZ6wP7BiGJhQ5wCJhRfThqllz2h7iAVnlQpwWfE0Q0+Pyt X/IOOuqil9R0/6ghmh3VhGPQcIA5QiU2PVo3fc4HdRL6TZUrJHrK3Uj09dsgGIAcMkdj97ML/Fv 7qQiXAeb8UJ6GMQ2ieczUPxkfDHggz/I81VKodYAAofs6A/VHa1Wdq9zgDFNqqq0J1eDdW9u2Ch uZofCOWnWHsSVC/rqHSUUdzwj5cJcBFUPyIycCySI0xoyztEfvhx0+Dl1AbQ6AdEO6fnKp5G0KD 8skTWUCzwnCio3PvZotYI1+z4ScjIK8zKSduY/AtGLGohDulT8a9419Ct1oj4Q2fLC+5MJQw6JO ZsD5uGZfkFtiCgotF2X76Q7pxJhT8jQjn2hJWbHGa5QiNrHlhRGdL X-Received: by 2002:a05:622a:551:b0:4b3:61b:58f4 with SMTP id d75a77b69052e-4b5e18395b0mr40913331cf.53.1757032739623; Thu, 04 Sep 2025 17:38:59 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEP0nB2Vt3LMYDBx118zsJ4giTEWN/hLJl0xD4HXyg7zzaWIFQByUuhZsTTOJxoycKJ8OS8WA== X-Received: by 2002:a05:622a:551:b0:4b3:61b:58f4 with SMTP id d75a77b69052e-4b5e18395b0mr40913091cf.53.1757032739088; Thu, 04 Sep 2025 17:38:59 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5608acfd938sm1510059e87.109.2025.09.04.17.38.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Sep 2025 17:38:58 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 05 Sep 2025 03:38:37 +0300 Subject: [PATCH v2 08/12] drm/msm/disp: drop PSEUDO_YUV_FMT_LOOSE_TILED 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: quoted-printable Message-Id: <20250905-dpu-formats-v2-8-7a674028c048@oss.qualcomm.com> References: <20250905-dpu-formats-v2-0-7a674028c048@oss.qualcomm.com> In-Reply-To: <20250905-dpu-formats-v2-0-7a674028c048@oss.qualcomm.com> To: Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , David Airlie , Simona Vetter , Jordan Crouse Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2270; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=XLkwtyygZJdPj3GjkZgZ1aANtwazJqGOIEmkYbUxRwQ=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoujEK71uU2bZ8JQXFBGN1IDBH5OYQyC9Xm8v8v tnUi8qYOuOJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaLoxCgAKCRCLPIo+Aiko 1b2yB/wKB4v8Bk2zFkuQDoVspBPY3bca3px+IzVDe5SyzF0FfBVY/9ca/uty+7qgAX9i8dVh8NV LdCBJWXW7Wfb6sEB9hw323dwH4NlMLa8gY1KW5GQiOVPehuK5Pwc8yCxUOs+oG1gD9zkpY3crTj HvtY8KdCmsZZcOKPOGb5b1apoatF0mT/b3xWXFicKF/NQ7Tb80KTtgvQsZkQTzvDn0gbyk7bzLD gWxUFA9aIalzlrIfuxodQxpj5zPC/dCyc9LKMSgC8Zm+tco4YF6FhId2X3J1vDIKPmNfidpAC7J /RBiA+aOsGY62ro7QEhoCaSHJla3hJbN+kFDytWN6VvHG/SP X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-GUID: e4sIXU1AWCdkibvzrK8M7Ksnlsqvihr2 X-Authority-Analysis: v=2.4 cv=X+ZSKHTe c=1 sm=1 tr=0 ts=68ba3124 cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=EUspDBNiAAAA:8 a=iz29p33r4uX7jxN-whAA:9 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTA0MDE2MyBTYWx0ZWRfXyqYl9r4l9pNo nsWno8v23eQTmBcvsQ9b8pBpdjwd+t14RftaJRaVKFy9X1FLHDl3Zf0h6aiA0WIas6rUnb8OWlr hTq1P1O52gvocnLNRBacnLM0b3eN831jhZsMIYpJa/dNVheMSklggr+FrFzP20j1MzY91JAWVTF 9gMya/C3pxLWpC84JtS4NlaarzX0VF7/MldTH8YKYO0/XJ6vssxtaO8x7JXcGxY3D7p1lVvOfZm hQrIyClBmrpuHEayNO1Nwy+93vVFGOYXtBnxwjGutLyaYmsVbQgWDbrdLPTzdK50sxHfqkqZMov 0z0agfJZtOx3rzB7T10d5YoQKbpjJA3NFORvapsCsSoUlN9rFF1fu9GMwK2A25nLNloGwn7JUMm wUUKsS7y X-Proofpoint-ORIG-GUID: e4sIXU1AWCdkibvzrK8M7Ksnlsqvihr2 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-04_08,2025-09-04_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0 clxscore=1015 impostorscore=0 phishscore=0 malwarescore=0 adultscore=0 priorityscore=1501 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2509040163 Drop PSEUDO_YUV_FMT_LOOSE_TILED(), the macro is unused. Reviewed-by: Jessica Zhang Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/disp/mdp_format.c | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/mdp_format.c b/drivers/gpu/drm/msm/di= sp/mdp_format.c index 79f7f973dbf348acf2c06e66afedeb8f22e7a8ca..35c443f006bbbde446cfcc0862c= 49d06a8e10bb4 100644 --- a/drivers/gpu/drm/msm/disp/mdp_format.c +++ b/drivers/gpu/drm/msm/disp/mdp_format.c @@ -325,26 +325,6 @@ static struct csc_cfg csc_convert[CSC_MAX] =3D { .tile_height =3D MDP_TILE_HEIGHT_DEFAULT \ } =20 -#define PSEUDO_YUV_FMT_LOOSE_TILED(fmt, a, r, g, b, e0, e1, chroma, \ -flg, fm, np, th) \ -{ \ - .pixel_format =3D DRM_FORMAT_ ## fmt, \ - .fetch_type =3D MDP_PLANE_PSEUDO_PLANAR, \ - .alpha_enable =3D 0, \ - .element =3D { (e0), (e1), 0, 0 }, \ - .bpc_g_y =3D g, \ - .bpc_b_cb =3D b, \ - .bpc_r_cr =3D r, \ - .bpc_a =3D a, \ - .chroma_sample =3D chroma, \ - .unpack_count =3D 2, \ - .bpp =3D 2, \ - .fetch_mode =3D fm, \ - .flags =3D MSM_FORMAT_FLAG_UNPACK_ALIGN_MSB | flg, \ - .num_planes =3D np, \ - .tile_height =3D th \ -} - #define PLANAR_YUV_FMT(fmt, bp, r, g, b, e0, e1, e2, chroma) \ { \ .pixel_format =3D DRM_FORMAT_ ## fmt, \ --=20 2.47.2 From nobody Fri Oct 3 05:27:00 2025 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 8C5ED1FBCB1 for ; Fri, 5 Sep 2025 00:39:05 +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=1757032747; cv=none; b=PtlGj5VuyoC+7lKtJGcGFYjqdJpPUm4LOdTAUHwkCCkCAB5HuY9kcPIdfj0zXGzvwePI4bD3d6YjK7GKSRqnpFlvh8vif9rQ135T8XNyrLtBdc2HLSiz0eqQRx02r5ZO54QdbhbOkV60E8GgfUfnxf5wMPAfgPpJtrpKWWa19Uw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757032747; c=relaxed/simple; bh=OXT8W35fr8NRb5cK8/YcdfZIWnqlYhpXdAdC+aSkVY4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Aj9DIZs1FUDExBxp1K3Dmp/XDglE+HdQG1t1tHpngMMK7LF8KiyrIxGhyFHukO555OZVUxBu6HHiBLAPUq+DoRiEgiq9rPK1NVasU9wg1XbLP7RfcIR+YKUWLua1cz13xjO/uo64/oUfzji8BdoDFPzP8BPALyRsV7Aj5bHJDqw= 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=Sq1aP1gp; 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="Sq1aP1gp" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 584I0iG5003019 for ; Fri, 5 Sep 2025 00:39:04 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= 780LqBw/igl19KvLZzHBkwTrlSQvqB3i+oVJRdDf2bQ=; b=Sq1aP1gp1fwQUALp vEMzGBsqZsKBHFJB96qeN8rHajs90m+qGEAvoZnZLiViI6tGXx8TEKqGPC1OkMFv avKXwa0xLyHK2EVuadMlcioTZX+HIa7Bk7Q+9VbX5brbPJiVC9Ii2l69L/s0Ilm6 JNRPxkNifMNoziuwDtyjT8dSaK0cmXajoZLMAxnCPB4dNVzZ0kcQwrSYq0SEGFhm hHoeyaAqW8Fry5B9eBtI7UA2SGqt2ZzJH1Y77EBMChAdkpzcunrVYKnspXxPJrl5 SuyAMwVVwIk5d09Wn30vScaY6PeoSSyD1K7ZTo9AjdQUfvLYfK4ON05u8Apw5lCY GQ2BCQ== Received: from mail-qv1-f69.google.com (mail-qv1-f69.google.com [209.85.219.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48ush395h5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Fri, 05 Sep 2025 00:39:04 +0000 (GMT) Received: by mail-qv1-f69.google.com with SMTP id 6a1803df08f44-7296c012ec9so13522276d6.2 for ; Thu, 04 Sep 2025 17:39:04 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757032743; x=1757637543; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=780LqBw/igl19KvLZzHBkwTrlSQvqB3i+oVJRdDf2bQ=; b=mATrCi7XdPaOCd6XOIfFNcXtvppaVC0zNM4l1ipDImJ2at8dzoPR5d9xuZ6nxi/RPB maAZwtyzvL3km1hxGykfJ42X2kFRCJW4iBoNVnxTT4JZ33UTOWw9kxfFhqi3AMdPohqM O0L4s/lnUERX28WP8hPTHUW9E4cvS9qVhVra9zhOldqFydtVXbuNZj8n8K3z5Bmy5B7o 4E9pPIn1SV8g79UHMMDAJqOFZhoosL+fwa6lM5VZR0pAr3GNshEFJESEHlqKBZyjsg5m MHfLOlzsMc6YLprqlh0uBzrC9kPbjrUTFii5y18HlERJWUvCGcbyY9kI2upc/wHXsH7S nUYQ== X-Forwarded-Encrypted: i=1; AJvYcCWBj/YBEKXE7zWvhtqt0JnHEQdX/lvNhJlgWr7GUkWCVcZtHnuf4Fg3hl0qp6QqVrPIVp4S5rIxcnhIzjM=@vger.kernel.org X-Gm-Message-State: AOJu0Yzupi8dl8dfciiRawPFYBYHsZdZGKZ2k1fTeVCxGbDNzxfy/73S pq58VV+91Fp1sAQi9DqCV3YhsI8vW8iafuXuhx1RG3X7tAzOXR0ugZm8fSRfVJRlrCsYn6Ac0Az FOK2AhDL6vU3tVbFiX+tv0PAdFMxkmI06AtfA1xg2czFH4tgisTnq40ulmnCIlSY1rhA= X-Gm-Gg: ASbGncsi5ZFHlBsU6bqjTFyWh6EvJ08hWDs25szCezmjYp6GiZFZE0RZXSFfNPDDIFd v8A2JRe6OYRkkRAb1O+yC+zku87uF6EbRV3rzmKwTAcs0mxCx8A221Cxi6+NTeme/bkQHj8J/yJ 83sB8179LTm9/8lhvIZoBkRiAqiSSDnakusOM+NfN9CzxsfjQnxUw4yjuJHn9To7XozHXt2IFog If8Qg3pCeJCFqjvULNhuXlxyid5thzkdzO7wFlmDTjwuH0in0u55qHKuX+Qs8NBh7/j8gPCA9Tq dXNEPNW6tLY4yNpvkRGBE1Kqjr9vKugi+1d6uXHSczKNR6S87e/ZJip3x/UEq04KMvyHGJq4Zv+ 2sxGjdOR1qENMX7IjFKnivw9K352L1iIwUzGyQxQggr6NsKJ1EExo X-Received: by 2002:a05:6214:1246:b0:70f:a5ac:2523 with SMTP id 6a1803df08f44-70fac6f87eamr212894746d6.8.1757032743217; Thu, 04 Sep 2025 17:39:03 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGwBf+0LtBtbgRu0E1FTAsC6WkuuZJqpTq32T+jdGFl1Fr1Nb29VTezSLusCo4cOwNvpilzEQ== X-Received: by 2002:a05:6214:1246:b0:70f:a5ac:2523 with SMTP id 6a1803df08f44-70fac6f87eamr212894416d6.8.1757032742725; Thu, 04 Sep 2025 17:39:02 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5608acfd938sm1510059e87.109.2025.09.04.17.38.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Sep 2025 17:39:00 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 05 Sep 2025 03:38:38 +0300 Subject: [PATCH v2 09/12] drm/msm/dpu: simplify _dpu_format_populate_plane_sizes_* 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: quoted-printable Message-Id: <20250905-dpu-formats-v2-9-7a674028c048@oss.qualcomm.com> References: <20250905-dpu-formats-v2-0-7a674028c048@oss.qualcomm.com> In-Reply-To: <20250905-dpu-formats-v2-0-7a674028c048@oss.qualcomm.com> To: Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , David Airlie , Simona Vetter , Jordan Crouse Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3791; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=OXT8W35fr8NRb5cK8/YcdfZIWnqlYhpXdAdC+aSkVY4=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoujEKa0UEV5N1PJ2FGbOlxgyrHNBe3+EXnLW0k Q9SKySPhUeJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaLoxCgAKCRCLPIo+Aiko 1Sa7B/46NDpoRmfDw9X+jQuun+Uq4tblfqOV+Cz6n3NLX0f/IMHlvZB5xVjC71QGxPMeSrKnARn 5d+sBTRUFXBTX4maimT1liIpWvmm3mKpZDBxFYWiX29cCc5PjROFZOaFHa0R6+uJDIjNHcsxmVk vkofxm0L6wbR7BdA3GQzfYB3e0F9XWpEUgHcfajiN+0zVsebyGZearoc15GlPoUwChY6jaNdQZp As/qJc9mDGNrhhTXL+Gh6QFsgiEE/yEiwlGT68qL26NRz4SlfVStpAqeyycFAv6kkFMOQGRXOK7 I6sZUAgmupig5tA162CYbW/Y0Au/qEZfvpnc+qons2SxY+QS X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAzMiBTYWx0ZWRfX3FCM74OKPrd9 nZnD3ITIVtdfAV4g+I+QKstWBsCzbliVreCf6DPX64oelyLi89KN83YcMPdhDy/qDKAC+EC99QR hdldCQnOe9xw3ejDmYf/39J2Z0QV4xFwyG11B1VC/iE2hLnbwCfpZZODSJ5nHsyzZcO+A9h0I+9 sFf59W1KteCqjZrGeEQPJ0xjgT/AAJSSm7I8uFqoka7XHQ3DYXy8/+efzao9DoYrEqexSFpwgun 6ozr8MjZmit7Pd6QD/lWJvNZJ6KDOeRsp/5LjTsWzCsEql4BU4fxAz9CmjXjuA6ylx3lQzuokbf A4504SRwHP/VMaaL/pDW0pGg+6pDlJNS4lP4oF1fBNqze9l4beC6fOUaGRHY1vffJ6IWCQYtMp1 5Ye58qTc X-Proofpoint-ORIG-GUID: ZuPMoiK7vSS4NC0ENJ53ui3bjb0Ume8q X-Proofpoint-GUID: ZuPMoiK7vSS4NC0ENJ53ui3bjb0Ume8q X-Authority-Analysis: v=2.4 cv=M9NNKzws c=1 sm=1 tr=0 ts=68ba3128 cx=c_pps a=wEM5vcRIz55oU/E2lInRtA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=EUspDBNiAAAA:8 a=d-fElJfPDvRUhmvKT08A:9 a=QEXdDO2ut3YA:10 a=OIgjcC2v60KrkQgK7BGD:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-04_08,2025-09-04_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 adultscore=0 spamscore=0 priorityscore=1501 malwarescore=0 clxscore=1015 suspectscore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300032 Move common bits of _dpu_format_populate_plane_sizes_ubwc() and _linear() to dpu_format_populate_plane_sizes(), reducing unnecessary duplication and simplifying code flow fror the UBWC function. Reviewed-by: Jessica Zhang Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c | 41 +++++++++++++------------= ---- 1 file changed, 19 insertions(+), 22 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c b/drivers/gpu/drm/= msm/disp/dpu1/dpu_formats.c index b0d585c5315ca0d459c7ab7f936f1ae350a4a520..b950bc827a36c231bcd4a9374e5= 8cde6b41230bf 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c @@ -95,15 +95,9 @@ static int _dpu_format_populate_plane_sizes_ubwc( struct drm_framebuffer *fb, struct dpu_hw_fmt_layout *layout) { - int i; int color; bool meta =3D MSM_FORMAT_IS_UBWC(fmt); =20 - memset(layout, 0, sizeof(struct dpu_hw_fmt_layout)); - layout->width =3D fb->width; - layout->height =3D fb->height; - layout->num_planes =3D fmt->num_planes; - color =3D _dpu_format_get_media_color_ubwc(fmt); if (color < 0) { DRM_ERROR("UBWC format not supported for fmt: %p4cc\n", @@ -128,7 +122,7 @@ static int _dpu_format_populate_plane_sizes_ubwc( uv_sclines, DPU_UBWC_PLANE_SIZE_ALIGNMENT); =20 if (!meta) - goto done; + return 0; =20 layout->num_planes +=3D 2; layout->plane_pitch[2] =3D VENUS_Y_META_STRIDE(color, fb->width); @@ -152,7 +146,8 @@ static int _dpu_format_populate_plane_sizes_ubwc( rgb_scanlines, DPU_UBWC_PLANE_SIZE_ALIGNMENT); =20 if (!meta) - goto done; + return 0; + layout->num_planes +=3D 2; layout->plane_pitch[2] =3D VENUS_RGB_META_STRIDE(color, fb->width); rgb_meta_scanlines =3D VENUS_RGB_META_SCANLINES(color, fb->height); @@ -160,10 +155,6 @@ static int _dpu_format_populate_plane_sizes_ubwc( rgb_meta_scanlines, DPU_UBWC_PLANE_SIZE_ALIGNMENT); } =20 -done: - for (i =3D 0; i < DPU_MAX_PLANES; i++) - layout->total_size +=3D layout->plane_size[i]; - return 0; } =20 @@ -174,11 +165,6 @@ static int _dpu_format_populate_plane_sizes_linear( { int i; =20 - memset(layout, 0, sizeof(struct dpu_hw_fmt_layout)); - layout->width =3D fb->width; - layout->height =3D fb->height; - layout->num_planes =3D fmt->num_planes; - /* Due to memset above, only need to set planes of interest */ if (fmt->fetch_type =3D=3D MDP_PLANE_INTERLEAVED) { layout->num_planes =3D 1; @@ -235,9 +221,6 @@ static int _dpu_format_populate_plane_sizes_linear( } } =20 - for (i =3D 0; i < DPU_MAX_PLANES; i++) - layout->total_size +=3D layout->plane_size[i]; - return 0; } =20 @@ -254,6 +237,7 @@ int dpu_format_populate_plane_sizes( struct dpu_hw_fmt_layout *layout) { const struct msm_format *fmt; + int ret, i; =20 if (!layout || !fb) { DRM_ERROR("invalid pointer\n"); @@ -268,10 +252,23 @@ int dpu_format_populate_plane_sizes( =20 fmt =3D msm_framebuffer_format(fb); =20 + memset(layout, 0, sizeof(struct dpu_hw_fmt_layout)); + layout->width =3D fb->width; + layout->height =3D fb->height; + layout->num_planes =3D fmt->num_planes; + if (MSM_FORMAT_IS_UBWC(fmt) || MSM_FORMAT_IS_TILE(fmt)) - return _dpu_format_populate_plane_sizes_ubwc(fmt, fb, layout); + ret =3D _dpu_format_populate_plane_sizes_ubwc(fmt, fb, layout); + else + ret =3D _dpu_format_populate_plane_sizes_linear(fmt, fb, layout); =20 - return _dpu_format_populate_plane_sizes_linear(fmt, fb, layout); + if (ret) + return ret; + + for (i =3D 0; i < DPU_MAX_PLANES; i++) + layout->total_size +=3D layout->plane_size[i]; + + return 0; } =20 static void _dpu_format_populate_addrs_ubwc(struct drm_framebuffer *fb, --=20 2.47.2 From nobody Fri Oct 3 05:27:00 2025 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 DBF3119F40A for ; Fri, 5 Sep 2025 00:39:07 +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=1757032749; cv=none; b=rxFLmIH4IFtWy0KeksDINIsyG8hLoMbsfVHsUuqsqEB+f/a1EYUJNaUJsgWvDNQ5IBBAYe/HFViffQc+VvLLFa7cFczGA0AZbEM5XIMJXvc6nN6+r/pYltHkR64+kPqKDxgcWRqnFZGSFRM5peB4DSZHlDp3+UQP2D6+6rB3Nr4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757032749; c=relaxed/simple; bh=JJPS5pGG6bUUAwzvEHOTMwsPtX9lNOMwzWPn5B80/n0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=cPCn7QP6O9/KTxIL4+D03X2ixdgZz7d5I95xP8JDNewo9GKVWO5/Rptcx5y5q/1UbR41B7yVrbz0+uTK542DQVffC3sXuv3LPMoCgNvWyadW9bGBPXaFpiUy9Ljh4vmvqY15Qd+LwNNfrTkT5z7hp6qSsYZzT/pVHSoOKnBGkGM= 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=KnQUPug9; 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="KnQUPug9" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 584IJsBo023074 for ; Fri, 5 Sep 2025 00:39:07 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= V8EjH8EYOYf6Ibi/w1G8pp80W80O6z33eMTmlaCldHU=; b=KnQUPug9g4rGxsL/ OKld6uxirY72DHA3ut6TvCfSrh2uVUgP/DF3430+Kaeq/f8XbLevRhSEch15xJav wVO90HBXi4MOmrE/Yr7O6dKfPG+yZmeYD6ttTqWHmDI0a8WoyvsdyJbcZsbIMn7j DdrVoHdPrV9AYXaE29l+hT+GEJHMm46PgG2RVEkLZ8VgafLmaV5YDohD1P1MDijK 3AJXE+F5M6HeNeV556iQS/3ZoBOACuc0CB8czsIB+95cScRwgwEAl4xZvgWmPsvK zl22BQxAgkZ5PNSw5Aj6iw+P23spV+GBEWLAKZMrLIh28j0/ChxUSkgyVXyMNZJN a+GdMA== 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 48uq0esed8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Fri, 05 Sep 2025 00:39:07 +0000 (GMT) Received: by mail-qv1-f72.google.com with SMTP id 6a1803df08f44-72048b6e864so15893686d6.3 for ; Thu, 04 Sep 2025 17:39:07 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757032746; x=1757637546; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=V8EjH8EYOYf6Ibi/w1G8pp80W80O6z33eMTmlaCldHU=; b=Hj9UCX5P60DxjR43EGzdckkZz+oecbpoPF/3noTnUX+umwRh8+Xg1xZ+wQQfpudhqu nVRomhCdljVIiAmOWPNWs/zMalxHJcmF6NBHFjO/cwKFMQTOIuN4TQoKISMa4OJiN89e SYCTFoJmDoViS91jTR7i1NW+GLnTqxEaRvnV4iAIXX3Y0hVo3htBtxXitd92SxqpBteK OO9E5Zu5PdNKPlB3/lg0eIeRBngQeFJZwalD507d/JqhY9CwZfNZqjavTlRqAjC1UGD/ bEYryg1O8l8XTqMbsrv3bLIfeoJg/b8jyOg0AbJt2pqGCTIj3DbZW4QMmY0oK099Zv6p zSWw== X-Forwarded-Encrypted: i=1; AJvYcCWHDPZ3HKtfL9SFuwdl5ecjI1krpUORvHYkDgqsWYZPiKEk6NG9FVR+L1y3Boaz3lKN4d/sNxQms5Rj7Fg=@vger.kernel.org X-Gm-Message-State: AOJu0YzlQQuHvEx1WX0AiL+8wif4JdROeD+lNGO7JNR+HPX9xPzEHALO 1nv+H7R56/RBFoMPefdvrdq2UHSKCOPSW8hmKGPM435/ZytUNqb/mXXhfKAMTmZsrr7GP+gKqRW Aa3CA3FrxXhXQ5hrb5qGMh5DaMMtB7DGGaYhOVY2I7hlJJo/fAE9knwlMAu2Zd3mDOOE= X-Gm-Gg: ASbGncuJyC5+WsZ2a2j7/sOuIY19ePwdCL79cDuTyb0SXKE/5aAV9lmtqcLY9Agr8ys KKlu/3zOqCgx8bUD7mTyKBys1z6wIQqLoff0v7wv5QZgplH+MMUgwjtSwvtUWNbx+xvwBIQGpGz qpAFcVG2YY4ZNb9ix80d/7b8Wo9BD0Z/pVBPuEk6M8Fmz3zNVv/jYcYT/hQ6K7Cp/f7yxk0sMNV tdLRGCiuzNbKyqrgmC/1TME+u/TU+iIEky6cs+v7FvlaaoS6dZ0lZS7i5Yvqt5SzqoKs1lVo2Zh Wvs2r7SqgNjNLeLlRhNcoUOCizMj5PcTT4LoxKWBwPA8ZwlItg54e/LqviF0abE49yN9B0AwTwM hwSp6Dgj/zUSnptbY82w9tkvFLPPVAeMLYicBjnSLCU53JHuty9Gc X-Received: by 2002:a05:6214:e67:b0:720:b2a:adf0 with SMTP id 6a1803df08f44-7200b2aaef8mr153541856d6.30.1757032745695; Thu, 04 Sep 2025 17:39:05 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHGoowjAXuDT2UR0GO7JfTqRgPHDKO8FPpYvARPsmaNuPqmFwTraj6C8Ro2V7Wsk95bjRBebg== X-Received: by 2002:a05:6214:e67:b0:720:b2a:adf0 with SMTP id 6a1803df08f44-7200b2aaef8mr153541576d6.30.1757032745183; Thu, 04 Sep 2025 17:39:05 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5608acfd938sm1510059e87.109.2025.09.04.17.39.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Sep 2025 17:39:03 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 05 Sep 2025 03:38:39 +0300 Subject: [PATCH v2 10/12] drm/msm/dpu: drop redundant num_planes assignment in _dpu_format_populate_plane_sizes*() 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: quoted-printable Message-Id: <20250905-dpu-formats-v2-10-7a674028c048@oss.qualcomm.com> References: <20250905-dpu-formats-v2-0-7a674028c048@oss.qualcomm.com> In-Reply-To: <20250905-dpu-formats-v2-0-7a674028c048@oss.qualcomm.com> To: Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , David Airlie , Simona Vetter , Jordan Crouse Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3061; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=JJPS5pGG6bUUAwzvEHOTMwsPtX9lNOMwzWPn5B80/n0=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoujEKQbRCY0g4KHf8n57GpKw1Y+ttJmoYzTX04 YBzh1yOwoOJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaLoxCgAKCRCLPIo+Aiko 1QOgB/0Uu54pfB5QH+FHqAmhB9/t2x9w4aM6hKLwp8xBksHaiLzdkMLUxqbLmWuGq8Y5wAJ6FuK HQeTY82/twMeyWig5sNtz8pFwD0qRw9KAvoejcrCY6ZRSx9+vNhY/jPgncA3kAdp7Txi/H/GYaR r3MmM2z2Ws+I41CFom8UDJjGXS27O9BarmsTQJvLl7fbo1kYSQideKI7szGSqM2iUtI2OWpjwfe a2k2rGcvixt0CESANK5Tg2UiQBdua0jRWSD/MOTZIdJz4rkav3chetWRI43YtK4DszRU1cGdrdd mXcvkajnfIe0JIuQicrml0k2o+orUwUP5zvVKJgPwL9KI5p6 X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-GUID: U08UzYh4eJ4bemQEqhpsfimw8jzN5-zV X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAwNCBTYWx0ZWRfX1llDEMJH1V8V LcsgDg3ozvS7LjUUg9uGffqe5Q+2Yv7k423wyaIkfb26b1a252AOInq0IMgpBys3/9aXdHCItLO G2SIMHEpmjGpEE+jzm5M50RseoCKE7A7ZQUju7GFcep4BWW6iMvk2dp9QizIVhAEDBBrmdVZ5YK c/ebLGLzphalQM/lldgvHmtHNvnaqbZ0aP2uFJEA6g+bL8tYTa8JGqQk/t9dbuDy4LjV/Cj/epG WAgs7RYqp1Iob83ADRyLCAfh7xohlm7Kz4yY0synbSxsgW4pQStIehp0X9BRYKt7CecInyFtHC8 q5v4x8sAsplCcZpKc6K2NgasxKS0eVhUkNWspX5RU26HVf3yIG7l7XxZ+ui/xqfA5ljsd+ZovwJ QHpdAKuW X-Proofpoint-ORIG-GUID: U08UzYh4eJ4bemQEqhpsfimw8jzN5-zV X-Authority-Analysis: v=2.4 cv=ea09f6EH c=1 sm=1 tr=0 ts=68ba312b cx=c_pps a=7E5Bxpl4vBhpaufnMqZlrw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=EUspDBNiAAAA:8 a=VIt9t0sQHfAwVTtMwRsA:9 a=QEXdDO2ut3YA:10 a=pJ04lnu7RYOZP9TFuWaZ:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-04_08,2025-09-04_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 suspectscore=0 clxscore=1015 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300004 Drop redundant layout->num_planes assignments, using the value assigned from the formats table. RGB UBWC formats need special handling: they use two planes (per the format table), but the uAPI defines plane[1] as empty. Reviewed-by: Jessica Zhang Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c b/drivers/gpu/drm/= msm/disp/dpu1/dpu_formats.c index b950bc827a36c231bcd4a9374e58cde6b41230bf..191d1f2a0cef7ed69342eceb35d= f0c3e99a0c373 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c @@ -110,7 +110,6 @@ static int _dpu_format_populate_plane_sizes_ubwc( uint32_t y_meta_scanlines =3D 0; uint32_t uv_meta_scanlines =3D 0; =20 - layout->num_planes =3D 2; layout->plane_pitch[0] =3D VENUS_Y_STRIDE(color, fb->width); y_sclines =3D VENUS_Y_SCANLINES(color, fb->height); layout->plane_size[0] =3D MSM_MEDIA_ALIGN(layout->plane_pitch[0] * @@ -124,7 +123,6 @@ static int _dpu_format_populate_plane_sizes_ubwc( if (!meta) return 0; =20 - layout->num_planes +=3D 2; layout->plane_pitch[2] =3D VENUS_Y_META_STRIDE(color, fb->width); y_meta_scanlines =3D VENUS_Y_META_SCANLINES(color, fb->height); layout->plane_size[2] =3D MSM_MEDIA_ALIGN(layout->plane_pitch[2] * @@ -138,8 +136,6 @@ static int _dpu_format_populate_plane_sizes_ubwc( } else { uint32_t rgb_scanlines, rgb_meta_scanlines; =20 - layout->num_planes =3D 1; - layout->plane_pitch[0] =3D VENUS_RGB_STRIDE(color, fb->width); rgb_scanlines =3D VENUS_RGB_SCANLINES(color, fb->height); layout->plane_size[0] =3D MSM_MEDIA_ALIGN(layout->plane_pitch[0] * @@ -148,7 +144,9 @@ static int _dpu_format_populate_plane_sizes_ubwc( if (!meta) return 0; =20 - layout->num_planes +=3D 2; + /* uAPI leaves plane[1] empty and plane[2] as meta */ + layout->num_planes +=3D 1; + layout->plane_pitch[2] =3D VENUS_RGB_META_STRIDE(color, fb->width); rgb_meta_scanlines =3D VENUS_RGB_META_SCANLINES(color, fb->height); layout->plane_size[2] =3D MSM_MEDIA_ALIGN(layout->plane_pitch[2] * @@ -167,7 +165,6 @@ static int _dpu_format_populate_plane_sizes_linear( =20 /* Due to memset above, only need to set planes of interest */ if (fmt->fetch_type =3D=3D MDP_PLANE_INTERLEAVED) { - layout->num_planes =3D 1; layout->plane_size[0] =3D fb->width * fb->height * fmt->bpp; layout->plane_pitch[0] =3D fb->width * fmt->bpp; } else { @@ -194,12 +191,10 @@ static int _dpu_format_populate_plane_sizes_linear( (fb->height / v_subsample); =20 if (fmt->fetch_type =3D=3D MDP_PLANE_PSEUDO_PLANAR) { - layout->num_planes =3D 2; layout->plane_size[1] *=3D 2; layout->plane_pitch[1] *=3D 2; } else { /* planar */ - layout->num_planes =3D 3; layout->plane_size[2] =3D layout->plane_size[1]; layout->plane_pitch[2] =3D layout->plane_pitch[1]; } --=20 2.47.2 From nobody Fri Oct 3 05:27:00 2025 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 0AB5521767D for ; Fri, 5 Sep 2025 00:39:11 +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=1757032755; cv=none; b=aaZ3/sbgZZDl55QHTEW9NwK+0/iBCu5Ic2oOCQ6BQz5PboFxGDGuMadP/kYajHYXky9LX67L2zLPC9aKNLQDMVUx3UC0kr0jxJxWCi81iVsovpZngeZ+5hra1QVRbUTp0WAPxK55a9PNffggluortEy7xg7n+gMniIdNV0ha4+c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757032755; c=relaxed/simple; bh=ukwAtc1v9RxhzlsYCTAnLOyxbmU9nfNAVwUDPYyJkGs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=IVVmj+nT6PeizteR8i9+1PjUM6LnzNtstuQAD0eg4Tawty1d09o29VjsBLvVQccYWmXsls8S8dB4kAsskDo5nkkodDzMmXzHJOi1dxlUkE1XMDuLzYlD8Pq7kVr4LNs2eMvEWz2jKg0fdkRXaJRPZ+THYGY1Li7zs9O25Qw1a6M= 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=fGSRn2ZK; 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="fGSRn2ZK" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 584IDOXp002543 for ; Fri, 5 Sep 2025 00:39:11 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= PPC2tbexYvliH9B5TPZ8JBtafbJtogzjaF5b+VPCt/Y=; b=fGSRn2ZKdEtIlN+e PtitoVOXQLsHu5gmA9QXR7gIoeLcRaz1PEhBk+QjR6/RK/Rh3hGYYqK5wm012112 xZ9+gGjOOyVWRWwwIMMyRuFy/KEkKfZiHndMxUyYCNS3Bfkvmd6zWBXuCW4REKS+ pwgNaXNdc8iJzOHZzMJc3JO4BrKY09Z25325OYab9HMHyWcvVuQNJ9BZVqBay5zq pnQUL9UU1K93xmHogJYmALM1QvcD8WTnHQnsTD/vqQxpk36V4a14JgLAsyslsNOF 1GYqDjPRPRjSJS/KksBVvyvQvgeVNDP8ToK6RuxS7+1qAWvszN4jNicSdvlfD/kn mmPFeA== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48ush395hd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Fri, 05 Sep 2025 00:39:10 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-4b33e8943e3so30944521cf.2 for ; Thu, 04 Sep 2025 17:39:10 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757032749; x=1757637549; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PPC2tbexYvliH9B5TPZ8JBtafbJtogzjaF5b+VPCt/Y=; b=Sr61AB7yY8WTkCF20eTlD9n2XR3J2vKBZNuZQDqluIZXSGZG7DfPCsNQcxLviMbEkW HF01F+3dOyqcCxR+O90qYGTxAuYUe58FHviJ0ykyT2gao/cU50316DKkpFYvdYqSpy9Y QNC0A9s4hz1WuzlQf+14r1gj+2gE6jc+6B9h+3ZrMy9TcVmU5RZYeVdHnzuFoZe3uJsg UgkcVwBX5uC9b4V2y9Ysb/CgnWK/NHv35eEONY5CreUJOfYu9ZCYMrJd+Cjf4oPlOt7J +rclVM/rjrKp07rIj0UUyFiCzns7Zc1QXW+0+vO5fqJ2s4XV/mcDk3yVKiDbv5SOhX3v tgXQ== X-Forwarded-Encrypted: i=1; AJvYcCU34jb8uYpSnCIImSW68T4YUrLaAXEQ58dypJe8wVe+g7DZY51foOQ9BNqPOyqdq8nebH4Cp4OqYpAJIa8=@vger.kernel.org X-Gm-Message-State: AOJu0YymSPRkaMRPW4Dl5NxiI6HopqIF//fhjGhn9Ln1WCIX+TiLfll3 cjbb5ju4vHnmIyaopOCEPr65TzSUCtlGRM29jLjRaq281K/QZOaMW7RprQCjSf4DW0ft9e7DVuE QDpWsUS8+Nd1ptOR/7E/jXjZUpWYHfyGpq01kIzHWI9KJLd5fknD9rkUNf4s+LKuiB5Y= X-Gm-Gg: ASbGncsAF1Ipas8oBSBTsZTFB8bki8tpmNbjRjId7DLb+pzhn1jBvPbokhFTg2+q4zN 10YF06fRfvC+4MP6p1oOIeSESr+1pLuL2d1vfGnVg4OUqkXui8P4ATg1dqhKWpDuKTlO4ELFcz/ v5ds8uprAatc9ZLjkW+eyGUdCzhRhBZvZ/8xVAxWM7bHDI3PUNxH10b7RhvyOzhFv1U/5XA0Gc0 RECMbxB+rYWZZiOlMu4a9NzU2e4p0BZxAWkJa0mPdF21MDYDXM4ubwa+VCIOITSVSYIVUHle/tX HEyQCiCWgDi/dNC+pwPxaxOR3uxXBaIpBDT3npki6SSIXXVviKt0OrN4kY7ebbZzZR3OOgNYAQ5 5bbTr2DqlDOisc6+Z0Z14PadPHUlqIooo7bb9eXIscTL3sXreOr4t X-Received: by 2002:a05:6214:400b:b0:719:44be:3fc1 with SMTP id 6a1803df08f44-71944be407fmr194794586d6.1.1757032748771; Thu, 04 Sep 2025 17:39:08 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEp2ZBNPqaQYX5riFpghrDjaPZcF525ndLImAq+dbqLsQf+ivkyDvWafGEE49uKNJRINm3ojg== X-Received: by 2002:a05:6214:400b:b0:719:44be:3fc1 with SMTP id 6a1803df08f44-71944be407fmr194794136d6.1.1757032747903; Thu, 04 Sep 2025 17:39:07 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5608acfd938sm1510059e87.109.2025.09.04.17.39.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Sep 2025 17:39:05 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 05 Sep 2025 03:38:40 +0300 Subject: [PATCH v2 11/12] drm/msm/dpu: rewrite _dpu_format_populate_plane_sizes_ubwc() 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: quoted-printable Message-Id: <20250905-dpu-formats-v2-11-7a674028c048@oss.qualcomm.com> References: <20250905-dpu-formats-v2-0-7a674028c048@oss.qualcomm.com> In-Reply-To: <20250905-dpu-formats-v2-0-7a674028c048@oss.qualcomm.com> To: Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , David Airlie , Simona Vetter , Jordan Crouse Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=52387; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=ukwAtc1v9RxhzlsYCTAnLOyxbmU9nfNAVwUDPYyJkGs=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoujEKCIEY+1xyc1RE1kQ3+9/nbVwY17lTTl4k8 ns4U+TxnOuJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaLoxCgAKCRCLPIo+Aiko 1Z5/CACjaVFOZW6L4jByuzZl2I9Z3Vy28401zmHBEtxJ9v/Qnwl8J0axdrf4Vkt18vz3A1HWFBB fg9cNLquVpWEZeOkqgY7vJ+MHlvElmTjFFSDI1Y5RQMGsgg09LehqSwF/xaljQ7HR1o+2YPMB9+ p9XI/DSa0vnqT1Oy3yrRB2Ru/n93+zFZX6Y7Gwe883uqy28sUNQFd9Q1mZDq7vo7heAjaZIDFH/ nfbckz1wiYU8TmzdQNvJGuD2bM05WWbbF8nqXuf4Ni3K0e4jb/qZAHBlOOtvuw1Sj/GlTgFC7+W Smcl9SJxnJW1ij8QvsAtkvju0dNLl4B0czUXoX85sd1aoGld X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAzMiBTYWx0ZWRfXz/o3pw936Mz7 J4BZDVaulefen2HwKBW2TN+BcFSmtZR7iXRo5WwfNMjYSyrvMmUpebI0XYwQVgPyt/4FiNZ9pQy rP9dPBAjUFmEsEe8L/SxAHG8ndxjIruRH20HbmlQFmne3pytSJXWNZUo+IpyyvsBXY8MvfGJQ6v nb82NlmkzWaoPzSGtMqJnoAXcJIdxUFHwH1JrJRj4mdeMaa1V/zcCSeSC85/rqq8uKeQi20/FPG hQ5299nqOr+PIa9wam51lfkQgTuvQTeZOzKS241CLJg+UJBQwS/hoogt3TDD8rOLeCNAuNoeQZB 8d71gRH1fqqKrrgXBZP5Fi0+QobBB5GnlfFwbzDiQ1y5bMxHDWaWZ5yLcoqFl9Ah/OVJf1l9eeP fdkbVAoN X-Proofpoint-ORIG-GUID: dA5qOgFh3zPNMaEnFsLBhw7XMkk_dovF X-Proofpoint-GUID: dA5qOgFh3zPNMaEnFsLBhw7XMkk_dovF X-Authority-Analysis: v=2.4 cv=M9NNKzws c=1 sm=1 tr=0 ts=68ba312f cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=EUspDBNiAAAA:8 a=6iusXPdm3c8emWAo3PYA:9 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-04_08,2025-09-04_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 adultscore=0 spamscore=0 priorityscore=1501 malwarescore=0 clxscore=1015 suspectscore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300032 Drop extra wrapping layer (msm_media_info.h) and inline all VENUS_*() functions, simplifying the code. Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c | 121 ++- drivers/gpu/drm/msm/disp/dpu1/msm_media_info.h | 1155 --------------------= ---- 2 files changed, 57 insertions(+), 1219 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c b/drivers/gpu/drm/= msm/disp/dpu1/dpu_formats.c index 191d1f2a0cef7ed69342eceb35df0c3e99a0c373..da1870ce7680899759d09caa010= 50eeb9844a484 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c @@ -7,10 +7,19 @@ #include #include =20 -#include "msm_media_info.h" #include "dpu_kms.h" #include "dpu_formats.h" =20 +#ifndef MSM_MEDIA_ALIGN +#define MSM_MEDIA_ALIGN(__sz, __align) (((__align) & ((__align) - 1)) ?\ + ((((__sz) + (__align) - 1) / (__align)) * (__align)) :\ + (((__sz) + (__align) - 1) & (~((__align) - 1)))) +#endif + +#ifndef MSM_MEDIA_ROUNDUP +#define MSM_MEDIA_ROUNDUP(__sz, __r) (((__sz) + ((__r) - 1)) / (__r)) +#endif + #define DPU_UBWC_PLANE_SIZE_ALIGNMENT 4096 =20 /* @@ -54,90 +63,70 @@ static void _dpu_get_v_h_subsample_rate( } } =20 -static int _dpu_format_get_media_color_ubwc(const struct msm_format *fmt) -{ - static const struct dpu_media_color_map dpu_media_ubwc_map[] =3D { - {DRM_FORMAT_ABGR8888, COLOR_FMT_RGBA8888_UBWC}, - {DRM_FORMAT_ARGB8888, COLOR_FMT_RGBA8888_UBWC}, - {DRM_FORMAT_XBGR8888, COLOR_FMT_RGBA8888_UBWC}, - {DRM_FORMAT_XRGB8888, COLOR_FMT_RGBA8888_UBWC}, - {DRM_FORMAT_ABGR2101010, COLOR_FMT_RGBA1010102_UBWC}, - {DRM_FORMAT_ARGB2101010, COLOR_FMT_RGBA1010102_UBWC}, - {DRM_FORMAT_XRGB2101010, COLOR_FMT_RGBA1010102_UBWC}, - {DRM_FORMAT_XBGR2101010, COLOR_FMT_RGBA1010102_UBWC}, - {DRM_FORMAT_BGR565, COLOR_FMT_RGB565_UBWC}, - }; - int color_fmt =3D -1; - int i; - - if (fmt->pixel_format =3D=3D DRM_FORMAT_NV12 || - fmt->pixel_format =3D=3D DRM_FORMAT_P010) { - if (MSM_FORMAT_IS_DX(fmt)) { - if (fmt->flags & MSM_FORMAT_FLAG_UNPACK_TIGHT) - color_fmt =3D COLOR_FMT_NV12_BPP10_UBWC; - else - color_fmt =3D COLOR_FMT_P010_UBWC; - } else - color_fmt =3D COLOR_FMT_NV12_UBWC; - return color_fmt; - } - - for (i =3D 0; i < ARRAY_SIZE(dpu_media_ubwc_map); ++i) - if (fmt->pixel_format =3D=3D dpu_media_ubwc_map[i].format) { - color_fmt =3D dpu_media_ubwc_map[i].color; - break; - } - return color_fmt; -} - static int _dpu_format_populate_plane_sizes_ubwc( const struct msm_format *fmt, struct drm_framebuffer *fb, struct dpu_hw_fmt_layout *layout) { - int color; bool meta =3D MSM_FORMAT_IS_UBWC(fmt); =20 - color =3D _dpu_format_get_media_color_ubwc(fmt); - if (color < 0) { - DRM_ERROR("UBWC format not supported for fmt: %p4cc\n", - &fmt->pixel_format); - return -EINVAL; - } - if (MSM_FORMAT_IS_YUV(fmt)) { - uint32_t y_sclines, uv_sclines; - uint32_t y_meta_scanlines =3D 0; - uint32_t uv_meta_scanlines =3D 0; + unsigned int stride, sclines; + unsigned int y_tile_width, y_tile_height; + unsigned int y_meta_stride, y_meta_scanlines; + unsigned int uv_meta_stride, uv_meta_scanlines; + + if (MSM_FORMAT_IS_DX(fmt)) { + if (fmt->flags & MSM_FORMAT_FLAG_UNPACK_TIGHT) { + stride =3D MSM_MEDIA_ALIGN(fb->width, 192); + stride =3D MSM_MEDIA_ALIGN(stride * 4 / 3, 256); + y_tile_width =3D 48; + } else { + stride =3D MSM_MEDIA_ALIGN(fb->width * 2, 256); + y_tile_width =3D 32; + } + + sclines =3D MSM_MEDIA_ALIGN(fb->height, 16); + y_tile_height =3D 4; + } else { + stride =3D MSM_MEDIA_ALIGN(fb->width, 128); + y_tile_width =3D 32; + + sclines =3D MSM_MEDIA_ALIGN(fb->height, 32); + y_tile_height =3D 8; + } =20 - layout->plane_pitch[0] =3D VENUS_Y_STRIDE(color, fb->width); - y_sclines =3D VENUS_Y_SCANLINES(color, fb->height); + layout->plane_pitch[0] =3D stride; layout->plane_size[0] =3D MSM_MEDIA_ALIGN(layout->plane_pitch[0] * - y_sclines, DPU_UBWC_PLANE_SIZE_ALIGNMENT); + sclines, DPU_UBWC_PLANE_SIZE_ALIGNMENT); =20 - layout->plane_pitch[1] =3D VENUS_UV_STRIDE(color, fb->width); - uv_sclines =3D VENUS_UV_SCANLINES(color, fb->height); + layout->plane_pitch[1] =3D stride; layout->plane_size[1] =3D MSM_MEDIA_ALIGN(layout->plane_pitch[1] * - uv_sclines, DPU_UBWC_PLANE_SIZE_ALIGNMENT); + sclines, DPU_UBWC_PLANE_SIZE_ALIGNMENT); =20 if (!meta) return 0; =20 - layout->plane_pitch[2] =3D VENUS_Y_META_STRIDE(color, fb->width); - y_meta_scanlines =3D VENUS_Y_META_SCANLINES(color, fb->height); + y_meta_stride =3D MSM_MEDIA_ROUNDUP(fb->width, y_tile_width); + layout->plane_pitch[2] =3D MSM_MEDIA_ALIGN(y_meta_stride, 64); + + y_meta_scanlines =3D MSM_MEDIA_ROUNDUP(fb->height, y_tile_height); + y_meta_scanlines =3D MSM_MEDIA_ALIGN(y_meta_scanlines, 16); layout->plane_size[2] =3D MSM_MEDIA_ALIGN(layout->plane_pitch[2] * y_meta_scanlines, DPU_UBWC_PLANE_SIZE_ALIGNMENT); =20 - layout->plane_pitch[3] =3D VENUS_UV_META_STRIDE(color, fb->width); - uv_meta_scanlines =3D VENUS_UV_META_SCANLINES(color, fb->height); + uv_meta_stride =3D MSM_MEDIA_ROUNDUP((fb->width+1)>>1, y_tile_width / 2); + layout->plane_pitch[3] =3D MSM_MEDIA_ALIGN(uv_meta_stride, 64); + + uv_meta_scanlines =3D MSM_MEDIA_ROUNDUP((fb->height+1)>>1, y_tile_height= ); + uv_meta_scanlines =3D MSM_MEDIA_ALIGN(uv_meta_scanlines, 16); layout->plane_size[3] =3D MSM_MEDIA_ALIGN(layout->plane_pitch[3] * uv_meta_scanlines, DPU_UBWC_PLANE_SIZE_ALIGNMENT); - } else { - uint32_t rgb_scanlines, rgb_meta_scanlines; + unsigned int rgb_scanlines, rgb_meta_scanlines, rgb_meta_stride; =20 - layout->plane_pitch[0] =3D VENUS_RGB_STRIDE(color, fb->width); - rgb_scanlines =3D VENUS_RGB_SCANLINES(color, fb->height); + layout->plane_pitch[0] =3D MSM_MEDIA_ALIGN(fb->width * fmt->bpp, 256); + rgb_scanlines =3D MSM_MEDIA_ALIGN(fb->height, 16); layout->plane_size[0] =3D MSM_MEDIA_ALIGN(layout->plane_pitch[0] * rgb_scanlines, DPU_UBWC_PLANE_SIZE_ALIGNMENT); =20 @@ -147,8 +136,12 @@ static int _dpu_format_populate_plane_sizes_ubwc( /* uAPI leaves plane[1] empty and plane[2] as meta */ layout->num_planes +=3D 1; =20 - layout->plane_pitch[2] =3D VENUS_RGB_META_STRIDE(color, fb->width); - rgb_meta_scanlines =3D VENUS_RGB_META_SCANLINES(color, fb->height); + rgb_meta_stride =3D MSM_MEDIA_ROUNDUP(fb->width, 16); + layout->plane_pitch[2] =3D MSM_MEDIA_ALIGN(rgb_meta_stride, 64); + + rgb_meta_scanlines =3D MSM_MEDIA_ROUNDUP(fb->height, 4); + rgb_meta_scanlines =3D MSM_MEDIA_ALIGN(rgb_meta_scanlines, 16); + layout->plane_size[2] =3D MSM_MEDIA_ALIGN(layout->plane_pitch[2] * rgb_meta_scanlines, DPU_UBWC_PLANE_SIZE_ALIGNMENT); } diff --git a/drivers/gpu/drm/msm/disp/dpu1/msm_media_info.h b/drivers/gpu/d= rm/msm/disp/dpu1/msm_media_info.h deleted file mode 100644 index 9fc9dbde8a27c1d7078c3d6b260c8635f27a514f..000000000000000000000000000= 0000000000000 --- a/drivers/gpu/drm/msm/disp/dpu1/msm_media_info.h +++ /dev/null @@ -1,1155 +0,0 @@ -#ifndef __MEDIA_INFO_H__ -#define __MEDIA_INFO_H__ - -#ifndef MSM_MEDIA_ALIGN -#define MSM_MEDIA_ALIGN(__sz, __align) (((__align) & ((__align) - 1)) ?\ - ((((__sz) + (__align) - 1) / (__align)) * (__align)) :\ - (((__sz) + (__align) - 1) & (~((__align) - 1)))) -#endif - -#ifndef MSM_MEDIA_ROUNDUP -#define MSM_MEDIA_ROUNDUP(__sz, __r) (((__sz) + ((__r) - 1)) / (__r)) -#endif - -#ifndef MSM_MEDIA_MAX -#define MSM_MEDIA_MAX(__a, __b) ((__a) > (__b)?(__a):(__b)) -#endif - -enum color_fmts { - /* Venus NV12: - * YUV 4:2:0 image with a plane of 8 bit Y samples followed - * by an interleaved U/V plane containing 8 bit 2x2 subsampled - * colour difference samples. - * - * <-------- Y/UV_Stride --------> - * <------- Width -------> - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . ^ ^ - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | | - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . Height | - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | Y_Scanlines - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | | - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | | - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | | - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . V | - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . V - * U V U V U V U V U V U V . . . . ^ - * U V U V U V U V U V U V . . . . | - * U V U V U V U V U V U V . . . . | - * U V U V U V U V U V U V . . . . UV_Scanlines - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . V - * . . . . . . . . . . . . . . . . --> Buffer size alignment - * - * Y_Stride : Width aligned to 128 - * UV_Stride : Width aligned to 128 - * Y_Scanlines: Height aligned to 32 - * UV_Scanlines: Height/2 aligned to 16 - * Extradata: Arbitrary (software-imposed) padding - * Total size =3D align((Y_Stride * Y_Scanlines - * + UV_Stride * UV_Scanlines - * + max(Extradata, Y_Stride * 8), 4096) - */ - COLOR_FMT_NV12, - - /* Venus NV21: - * YUV 4:2:0 image with a plane of 8 bit Y samples followed - * by an interleaved V/U plane containing 8 bit 2x2 subsampled - * colour difference samples. - * - * <-------- Y/UV_Stride --------> - * <------- Width -------> - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . ^ ^ - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | | - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . Height | - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | Y_Scanlines - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | | - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | | - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | | - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . V | - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . V - * V U V U V U V U V U V U . . . . ^ - * V U V U V U V U V U V U . . . . | - * V U V U V U V U V U V U . . . . | - * V U V U V U V U V U V U . . . . UV_Scanlines - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . V - * . . . . . . . . . . . . . . . . --> Padding & Buffer size alignment - * - * Y_Stride : Width aligned to 128 - * UV_Stride : Width aligned to 128 - * Y_Scanlines: Height aligned to 32 - * UV_Scanlines: Height/2 aligned to 16 - * Extradata: Arbitrary (software-imposed) padding - * Total size =3D align((Y_Stride * Y_Scanlines - * + UV_Stride * UV_Scanlines - * + max(Extradata, Y_Stride * 8), 4096) - */ - COLOR_FMT_NV21, - /* Venus NV12_MVTB: - * Two YUV 4:2:0 images/views one after the other - * in a top-bottom layout, same as NV12 - * with a plane of 8 bit Y samples followed - * by an interleaved U/V plane containing 8 bit 2x2 subsampled - * colour difference samples. - * - * - * <-------- Y/UV_Stride --------> - * <------- Width -------> - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . ^ ^ ^ - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | | | - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . Height | | - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | Y_Scanlines | - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | | | - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | | | - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | | | - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . V | | - * . . . . . . . . . . . . . . . . | View_1 - * . . . . . . . . . . . . . . . . | | - * . . . . . . . . . . . . . . . . | | - * . . . . . . . . . . . . . . . . V | - * U V U V U V U V U V U V . . . . ^ | - * U V U V U V U V U V U V . . . . | | - * U V U V U V U V U V U V . . . . | | - * U V U V U V U V U V U V . . . . UV_Scanlines | - * . . . . . . . . . . . . . . . . | | - * . . . . . . . . . . . . . . . . V V - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . ^ ^ ^ - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | | | - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . Height | | - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | Y_Scanlines | - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | | | - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | | | - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | | | - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . V | | - * . . . . . . . . . . . . . . . . | View_2 - * . . . . . . . . . . . . . . . . | | - * . . . . . . . . . . . . . . . . | | - * . . . . . . . . . . . . . . . . V | - * U V U V U V U V U V U V . . . . ^ | - * U V U V U V U V U V U V . . . . | | - * U V U V U V U V U V U V . . . . | | - * U V U V U V U V U V U V . . . . UV_Scanlines | - * . . . . . . . . . . . . . . . . | | - * . . . . . . . . . . . . . . . . V V - * . . . . . . . . . . . . . . . . --> Buffer size alignment - * - * Y_Stride : Width aligned to 128 - * UV_Stride : Width aligned to 128 - * Y_Scanlines: Height aligned to 32 - * UV_Scanlines: Height/2 aligned to 16 - * View_1 begin at: 0 (zero) - * View_2 begin at: Y_Stride * Y_Scanlines + UV_Stride * UV_Scanlines - * Extradata: Arbitrary (software-imposed) padding - * Total size =3D align((2*(Y_Stride * Y_Scanlines) - * + 2*(UV_Stride * UV_Scanlines) + Extradata), 4096) - */ - COLOR_FMT_NV12_MVTB, - /* - * The buffer can be of 2 types: - * (1) Venus NV12 UBWC Progressive - * (2) Venus NV12 UBWC Interlaced - * - * (1) Venus NV12 UBWC Progressive Buffer Format: - * Compressed Macro-tile format for NV12. - * Contains 4 planes in the following order - - * (A) Y_Meta_Plane - * (B) Y_UBWC_Plane - * (C) UV_Meta_Plane - * (D) UV_UBWC_Plane - * - * Y_Meta_Plane consists of meta information to decode compressed - * tile data in Y_UBWC_Plane. - * Y_UBWC_Plane consists of Y data in compressed macro-tile format. - * UBWC decoder block will use the Y_Meta_Plane data together with - * Y_UBWC_Plane data to produce loss-less uncompressed 8 bit Y samples. - * - * UV_Meta_Plane consists of meta information to decode compressed - * tile data in UV_UBWC_Plane. - * UV_UBWC_Plane consists of UV data in compressed macro-tile format. - * UBWC decoder block will use UV_Meta_Plane data together with - * UV_UBWC_Plane data to produce loss-less uncompressed 8 bit 2x2 - * subsampled color difference samples. - * - * Each tile in Y_UBWC_Plane/UV_UBWC_Plane is independently decodable - * and randomly accessible. There is no dependency between tiles. - * - * <----- Y_Meta_Stride ----> - * <-------- Width ------> - * M M M M M M M M M M M M . . ^ ^ - * M M M M M M M M M M M M . . | | - * M M M M M M M M M M M M . . Height | - * M M M M M M M M M M M M . . | Meta_Y_Scanlines - * M M M M M M M M M M M M . . | | - * M M M M M M M M M M M M . . | | - * M M M M M M M M M M M M . . | | - * M M M M M M M M M M M M . . V | - * . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . -------> Buffer size aligned to 4k - * . . . . . . . . . . . . . . V - * <--Compressed tile Y Stride---> - * <------- Width -------> - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . ^ ^ - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . | | - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . Height | - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . | Macro_tile_Y_Scanlines - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . | | - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . | | - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . | | - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . V | - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . -------> Buffer size aligned to 4k - * . . . . . . . . . . . . . . . . V - * <----- UV_Meta_Stride ----> - * M M M M M M M M M M M M . . ^ - * M M M M M M M M M M M M . . | - * M M M M M M M M M M M M . . | - * M M M M M M M M M M M M . . M_UV_Scanlines - * . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . V - * . . . . . . . . . . . . . . -------> Buffer size aligned to 4k - * <--Compressed tile UV Stride---> - * U* V* U* V* U* V* U* V* . . . . ^ - * U* V* U* V* U* V* U* V* . . . . | - * U* V* U* V* U* V* U* V* . . . . | - * U* V* U* V* U* V* U* V* . . . . UV_Scanlines - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . V - * . . . . . . . . . . . . . . . . -------> Buffer size aligned to 4k - * - * Y_Stride =3D align(Width, 128) - * UV_Stride =3D align(Width, 128) - * Y_Scanlines =3D align(Height, 32) - * UV_Scanlines =3D align(Height/2, 16) - * Y_UBWC_Plane_size =3D align(Y_Stride * Y_Scanlines, 4096) - * UV_UBWC_Plane_size =3D align(UV_Stride * UV_Scanlines, 4096) - * Y_Meta_Stride =3D align(roundup(Width, Y_TileWidth), 64) - * Y_Meta_Scanlines =3D align(roundup(Height, Y_TileHeight), 16) - * Y_Meta_Plane_size =3D align(Y_Meta_Stride * Y_Meta_Scanlines, 4096) - * UV_Meta_Stride =3D align(roundup(Width, UV_TileWidth), 64) - * UV_Meta_Scanlines =3D align(roundup(Height, UV_TileHeight), 16) - * UV_Meta_Plane_size =3D align(UV_Meta_Stride * UV_Meta_Scanlines, 4096) - * Extradata =3D 8k - * - * Total size =3D align( Y_UBWC_Plane_size + UV_UBWC_Plane_size + - * Y_Meta_Plane_size + UV_Meta_Plane_size - * + max(Extradata, Y_Stride * 48), 4096) - * - * - * (2) Venus NV12 UBWC Interlaced Buffer Format: - * Compressed Macro-tile format for NV12 interlaced. - * Contains 8 planes in the following order - - * (A) Y_Meta_Top_Field_Plane - * (B) Y_UBWC_Top_Field_Plane - * (C) UV_Meta_Top_Field_Plane - * (D) UV_UBWC_Top_Field_Plane - * (E) Y_Meta_Bottom_Field_Plane - * (F) Y_UBWC_Bottom_Field_Plane - * (G) UV_Meta_Bottom_Field_Plane - * (H) UV_UBWC_Bottom_Field_Plane - * Y_Meta_Top_Field_Plane consists of meta information to decode - * compressed tile data for Y_UBWC_Top_Field_Plane. - * Y_UBWC_Top_Field_Plane consists of Y data in compressed macro-tile - * format for top field of an interlaced frame. - * UBWC decoder block will use the Y_Meta_Top_Field_Plane data together - * with Y_UBWC_Top_Field_Plane data to produce loss-less uncompressed - * 8 bit Y samples for top field of an interlaced frame. - * - * UV_Meta_Top_Field_Plane consists of meta information to decode - * compressed tile data in UV_UBWC_Top_Field_Plane. - * UV_UBWC_Top_Field_Plane consists of UV data in compressed macro-tile - * format for top field of an interlaced frame. - * UBWC decoder block will use UV_Meta_Top_Field_Plane data together - * with UV_UBWC_Top_Field_Plane data to produce loss-less uncompressed - * 8 bit subsampled color difference samples for top field of an - * interlaced frame. - * - * Each tile in Y_UBWC_Top_Field_Plane/UV_UBWC_Top_Field_Plane is - * independently decodable and randomly accessible. There is no - * dependency between tiles. - * - * Y_Meta_Bottom_Field_Plane consists of meta information to decode - * compressed tile data for Y_UBWC_Bottom_Field_Plane. - * Y_UBWC_Bottom_Field_Plane consists of Y data in compressed macro-tile - * format for bottom field of an interlaced frame. - * UBWC decoder block will use the Y_Meta_Bottom_Field_Plane data - * together with Y_UBWC_Bottom_Field_Plane data to produce loss-less - * uncompressed 8 bit Y samples for bottom field of an interlaced frame. - * - * UV_Meta_Bottom_Field_Plane consists of meta information to decode - * compressed tile data in UV_UBWC_Bottom_Field_Plane. - * UV_UBWC_Bottom_Field_Plane consists of UV data in compressed - * macro-tile format for bottom field of an interlaced frame. - * UBWC decoder block will use UV_Meta_Bottom_Field_Plane data together - * with UV_UBWC_Bottom_Field_Plane data to produce loss-less - * uncompressed 8 bit subsampled color difference samples for bottom - * field of an interlaced frame. - * - * Each tile in Y_UBWC_Bottom_Field_Plane/UV_UBWC_Bottom_Field_Plane is - * independently decodable and randomly accessible. There is no - * dependency between tiles. - * - * <-----Y_TF_Meta_Stride----> - * <-------- Width ------> - * M M M M M M M M M M M M . . ^ ^ - * M M M M M M M M M M M M . . | | - * M M M M M M M M M M M M . . Half_height | - * M M M M M M M M M M M M . . | Meta_Y_TF_Scanlines - * M M M M M M M M M M M M . . | | - * M M M M M M M M M M M M . . | | - * M M M M M M M M M M M M . . | | - * M M M M M M M M M M M M . . V | - * . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . -------> Buffer size aligned to 4k - * . . . . . . . . . . . . . . V - * <-Compressed tile Y_TF Stride-> - * <------- Width -------> - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . ^ ^ - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . | | - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . Half_height | - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . | Macro_tile_Y_TF_Scanlines - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . | | - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . | | - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . | | - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . V | - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . -------> Buffer size aligned to 4k - * . . . . . . . . . . . . . . . . V - * <----UV_TF_Meta_Stride----> - * M M M M M M M M M M M M . . ^ - * M M M M M M M M M M M M . . | - * M M M M M M M M M M M M . . | - * M M M M M M M M M M M M . . M_UV_TF_Scanlines - * . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . V - * . . . . . . . . . . . . . . -------> Buffer size aligned to 4k - * <-Compressed tile UV_TF Stride-> - * U* V* U* V* U* V* U* V* . . . . ^ - * U* V* U* V* U* V* U* V* . . . . | - * U* V* U* V* U* V* U* V* . . . . | - * U* V* U* V* U* V* U* V* . . . . UV_TF_Scanlines - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . V - * . . . . . . . . . . . . . . . . -------> Buffer size aligned to 4k - * <-----Y_BF_Meta_Stride----> - * <-------- Width ------> - * M M M M M M M M M M M M . . ^ ^ - * M M M M M M M M M M M M . . | | - * M M M M M M M M M M M M . . Half_height | - * M M M M M M M M M M M M . . | Meta_Y_BF_Scanlines - * M M M M M M M M M M M M . . | | - * M M M M M M M M M M M M . . | | - * M M M M M M M M M M M M . . | | - * M M M M M M M M M M M M . . V | - * . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . -------> Buffer size aligned to 4k - * . . . . . . . . . . . . . . V - * <-Compressed tile Y_BF Stride-> - * <------- Width -------> - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . ^ ^ - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . | | - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . Half_height | - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . | Macro_tile_Y_BF_Scanlines - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . | | - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . | | - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . | | - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . V | - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . -------> Buffer size aligned to 4k - * . . . . . . . . . . . . . . . . V - * <----UV_BF_Meta_Stride----> - * M M M M M M M M M M M M . . ^ - * M M M M M M M M M M M M . . | - * M M M M M M M M M M M M . . | - * M M M M M M M M M M M M . . M_UV_BF_Scanlines - * . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . V - * . . . . . . . . . . . . . . -------> Buffer size aligned to 4k - * <-Compressed tile UV_BF Stride-> - * U* V* U* V* U* V* U* V* . . . . ^ - * U* V* U* V* U* V* U* V* . . . . | - * U* V* U* V* U* V* U* V* . . . . | - * U* V* U* V* U* V* U* V* . . . . UV_BF_Scanlines - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . V - * . . . . . . . . . . . . . . . . -------> Buffer size aligned to 4k - * - * Half_height =3D (Height+1)>>1 - * Y_TF_Stride =3D align(Width, 128) - * UV_TF_Stride =3D align(Width, 128) - * Y_TF_Scanlines =3D align(Half_height, 32) - * UV_TF_Scanlines =3D align((Half_height+1)/2, 32) - * Y_UBWC_TF_Plane_size =3D align(Y_TF_Stride * Y_TF_Scanlines, 4096) - * UV_UBWC_TF_Plane_size =3D align(UV_TF_Stride * UV_TF_Scanlines, 4096) - * Y_TF_Meta_Stride =3D align(roundup(Width, Y_TileWidth), 64) - * Y_TF_Meta_Scanlines =3D align(roundup(Half_height, Y_TileHeight), 16) - * Y_TF_Meta_Plane_size =3D - * align(Y_TF_Meta_Stride * Y_TF_Meta_Scanlines, 4096) - * UV_TF_Meta_Stride =3D align(roundup(Width, UV_TileWidth), 64) - * UV_TF_Meta_Scanlines =3D align(roundup(Half_height, UV_TileHeight), 16) - * UV_TF_Meta_Plane_size =3D - * align(UV_TF_Meta_Stride * UV_TF_Meta_Scanlines, 4096) - * Y_BF_Stride =3D align(Width, 128) - * UV_BF_Stride =3D align(Width, 128) - * Y_BF_Scanlines =3D align(Half_height, 32) - * UV_BF_Scanlines =3D align((Half_height+1)/2, 32) - * Y_UBWC_BF_Plane_size =3D align(Y_BF_Stride * Y_BF_Scanlines, 4096) - * UV_UBWC_BF_Plane_size =3D align(UV_BF_Stride * UV_BF_Scanlines, 4096) - * Y_BF_Meta_Stride =3D align(roundup(Width, Y_TileWidth), 64) - * Y_BF_Meta_Scanlines =3D align(roundup(Half_height, Y_TileHeight), 16) - * Y_BF_Meta_Plane_size =3D - * align(Y_BF_Meta_Stride * Y_BF_Meta_Scanlines, 4096) - * UV_BF_Meta_Stride =3D align(roundup(Width, UV_TileWidth), 64) - * UV_BF_Meta_Scanlines =3D align(roundup(Half_height, UV_TileHeight), 16) - * UV_BF_Meta_Plane_size =3D - * align(UV_BF_Meta_Stride * UV_BF_Meta_Scanlines, 4096) - * Extradata =3D 8k - * - * Total size =3D align( Y_UBWC_TF_Plane_size + UV_UBWC_TF_Plane_size + - * Y_TF_Meta_Plane_size + UV_TF_Meta_Plane_size + - * Y_UBWC_BF_Plane_size + UV_UBWC_BF_Plane_size + - * Y_BF_Meta_Plane_size + UV_BF_Meta_Plane_size + - * + max(Extradata, Y_TF_Stride * 48), 4096) - */ - COLOR_FMT_NV12_UBWC, - /* Venus NV12 10-bit UBWC: - * Compressed Macro-tile format for NV12. - * Contains 4 planes in the following order - - * (A) Y_Meta_Plane - * (B) Y_UBWC_Plane - * (C) UV_Meta_Plane - * (D) UV_UBWC_Plane - * - * Y_Meta_Plane consists of meta information to decode compressed - * tile data in Y_UBWC_Plane. - * Y_UBWC_Plane consists of Y data in compressed macro-tile format. - * UBWC decoder block will use the Y_Meta_Plane data together with - * Y_UBWC_Plane data to produce loss-less uncompressed 10 bit Y samples. - * - * UV_Meta_Plane consists of meta information to decode compressed - * tile data in UV_UBWC_Plane. - * UV_UBWC_Plane consists of UV data in compressed macro-tile format. - * UBWC decoder block will use UV_Meta_Plane data together with - * UV_UBWC_Plane data to produce loss-less uncompressed 10 bit 2x2 - * subsampled color difference samples. - * - * Each tile in Y_UBWC_Plane/UV_UBWC_Plane is independently decodable - * and randomly accessible. There is no dependency between tiles. - * - * <----- Y_Meta_Stride -----> - * <-------- Width ------> - * M M M M M M M M M M M M . . ^ ^ - * M M M M M M M M M M M M . . | | - * M M M M M M M M M M M M . . Height | - * M M M M M M M M M M M M . . | Meta_Y_Scanlines - * M M M M M M M M M M M M . . | | - * M M M M M M M M M M M M . . | | - * M M M M M M M M M M M M . . | | - * M M M M M M M M M M M M . . V | - * . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . -------> Buffer size aligned to 4k - * . . . . . . . . . . . . . . V - * <--Compressed tile Y Stride---> - * <------- Width -------> - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . ^ ^ - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . | | - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . Height | - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . | Macro_tile_Y_Scanlines - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . | | - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . | | - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . | | - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . V | - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . -------> Buffer size aligned to 4k - * . . . . . . . . . . . . . . . . V - * <----- UV_Meta_Stride ----> - * M M M M M M M M M M M M . . ^ - * M M M M M M M M M M M M . . | - * M M M M M M M M M M M M . . | - * M M M M M M M M M M M M . . M_UV_Scanlines - * . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . V - * . . . . . . . . . . . . . . -------> Buffer size aligned to 4k - * <--Compressed tile UV Stride---> - * U* V* U* V* U* V* U* V* . . . . ^ - * U* V* U* V* U* V* U* V* . . . . | - * U* V* U* V* U* V* U* V* . . . . | - * U* V* U* V* U* V* U* V* . . . . UV_Scanlines - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . V - * . . . . . . . . . . . . . . . . -------> Buffer size aligned to 4k - * - * - * Y_Stride =3D align(Width * 4/3, 128) - * UV_Stride =3D align(Width * 4/3, 128) - * Y_Scanlines =3D align(Height, 32) - * UV_Scanlines =3D align(Height/2, 16) - * Y_UBWC_Plane_Size =3D align(Y_Stride * Y_Scanlines, 4096) - * UV_UBWC_Plane_Size =3D align(UV_Stride * UV_Scanlines, 4096) - * Y_Meta_Stride =3D align(roundup(Width, Y_TileWidth), 64) - * Y_Meta_Scanlines =3D align(roundup(Height, Y_TileHeight), 16) - * Y_Meta_Plane_size =3D align(Y_Meta_Stride * Y_Meta_Scanlines, 4096) - * UV_Meta_Stride =3D align(roundup(Width, UV_TileWidth), 64) - * UV_Meta_Scanlines =3D align(roundup(Height, UV_TileHeight), 16) - * UV_Meta_Plane_size =3D align(UV_Meta_Stride * UV_Meta_Scanlines, 4096) - * Extradata =3D 8k - * - * Total size =3D align(Y_UBWC_Plane_size + UV_UBWC_Plane_size + - * Y_Meta_Plane_size + UV_Meta_Plane_size - * + max(Extradata, Y_Stride * 48), 4096) - */ - COLOR_FMT_NV12_BPP10_UBWC, - /* Venus RGBA8888 format: - * Contains 1 plane in the following order - - * (A) RGBA plane - * - * <-------- RGB_Stride --------> - * <------- Width -------> - * R R R R R R R R R R R R . . . . ^ ^ - * R R R R R R R R R R R R . . . . | | - * R R R R R R R R R R R R . . . . Height | - * R R R R R R R R R R R R . . . . | RGB_Scanlines - * R R R R R R R R R R R R . . . . | | - * R R R R R R R R R R R R . . . . | | - * R R R R R R R R R R R R . . . . | | - * R R R R R R R R R R R R . . . . V | - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . V - * - * RGB_Stride =3D align(Width * 4, 128) - * RGB_Scanlines =3D align(Height, 32) - * RGB_Plane_size =3D align(RGB_Stride * RGB_Scanlines, 4096) - * Extradata =3D 8k - * - * Total size =3D align(RGB_Plane_size + Extradata, 4096) - */ - COLOR_FMT_RGBA8888, - /* Venus RGBA8888 UBWC format: - * Contains 2 planes in the following order - - * (A) Meta plane - * (B) RGBA plane - * - * <--- RGB_Meta_Stride ----> - * <-------- Width ------> - * M M M M M M M M M M M M . . ^ ^ - * M M M M M M M M M M M M . . | | - * M M M M M M M M M M M M . . Height | - * M M M M M M M M M M M M . . | Meta_RGB_Scanlines - * M M M M M M M M M M M M . . | | - * M M M M M M M M M M M M . . | | - * M M M M M M M M M M M M . . | | - * M M M M M M M M M M M M . . V | - * . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . -------> Buffer size aligned to 4k - * . . . . . . . . . . . . . . V - * <-------- RGB_Stride --------> - * <------- Width -------> - * R R R R R R R R R R R R . . . . ^ ^ - * R R R R R R R R R R R R . . . . | | - * R R R R R R R R R R R R . . . . Height | - * R R R R R R R R R R R R . . . . | RGB_Scanlines - * R R R R R R R R R R R R . . . . | | - * R R R R R R R R R R R R . . . . | | - * R R R R R R R R R R R R . . . . | | - * R R R R R R R R R R R R . . . . V | - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . -------> Buffer size aligned to 4k - * . . . . . . . . . . . . . . . . V - * - * RGB_Stride =3D align(Width * 4, 128) - * RGB_Scanlines =3D align(Height, 32) - * RGB_Plane_size =3D align(RGB_Stride * RGB_Scanlines, 4096) - * RGB_Meta_Stride =3D align(roundup(Width, RGB_TileWidth), 64) - * RGB_Meta_Scanline =3D align(roundup(Height, RGB_TileHeight), 16) - * RGB_Meta_Plane_size =3D align(RGB_Meta_Stride * - * RGB_Meta_Scanlines, 4096) - * Extradata =3D 8k - * - * Total size =3D align(RGB_Meta_Plane_size + RGB_Plane_size + - * Extradata, 4096) - */ - COLOR_FMT_RGBA8888_UBWC, - /* Venus RGBA1010102 UBWC format: - * Contains 2 planes in the following order - - * (A) Meta plane - * (B) RGBA plane - * - * <--- RGB_Meta_Stride ----> - * <-------- Width ------> - * M M M M M M M M M M M M . . ^ ^ - * M M M M M M M M M M M M . . | | - * M M M M M M M M M M M M . . Height | - * M M M M M M M M M M M M . . | Meta_RGB_Scanlines - * M M M M M M M M M M M M . . | | - * M M M M M M M M M M M M . . | | - * M M M M M M M M M M M M . . | | - * M M M M M M M M M M M M . . V | - * . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . -------> Buffer size aligned to 4k - * . . . . . . . . . . . . . . V - * <-------- RGB_Stride --------> - * <------- Width -------> - * R R R R R R R R R R R R . . . . ^ ^ - * R R R R R R R R R R R R . . . . | | - * R R R R R R R R R R R R . . . . Height | - * R R R R R R R R R R R R . . . . | RGB_Scanlines - * R R R R R R R R R R R R . . . . | | - * R R R R R R R R R R R R . . . . | | - * R R R R R R R R R R R R . . . . | | - * R R R R R R R R R R R R . . . . V | - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . -------> Buffer size aligned to 4k - * . . . . . . . . . . . . . . . . V - * - * RGB_Stride =3D align(Width * 4, 256) - * RGB_Scanlines =3D align(Height, 16) - * RGB_Plane_size =3D align(RGB_Stride * RGB_Scanlines, 4096) - * RGB_Meta_Stride =3D align(roundup(Width, RGB_TileWidth), 64) - * RGB_Meta_Scanline =3D align(roundup(Height, RGB_TileHeight), 16) - * RGB_Meta_Plane_size =3D align(RGB_Meta_Stride * - * RGB_Meta_Scanlines, 4096) - * Extradata =3D 8k - * - * Total size =3D align(RGB_Meta_Plane_size + RGB_Plane_size + - * Extradata, 4096) - */ - COLOR_FMT_RGBA1010102_UBWC, - /* Venus RGB565 UBWC format: - * Contains 2 planes in the following order - - * (A) Meta plane - * (B) RGB plane - * - * <--- RGB_Meta_Stride ----> - * <-------- Width ------> - * M M M M M M M M M M M M . . ^ ^ - * M M M M M M M M M M M M . . | | - * M M M M M M M M M M M M . . Height | - * M M M M M M M M M M M M . . | Meta_RGB_Scanlines - * M M M M M M M M M M M M . . | | - * M M M M M M M M M M M M . . | | - * M M M M M M M M M M M M . . | | - * M M M M M M M M M M M M . . V | - * . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . -------> Buffer size aligned to 4k - * . . . . . . . . . . . . . . V - * <-------- RGB_Stride --------> - * <------- Width -------> - * R R R R R R R R R R R R . . . . ^ ^ - * R R R R R R R R R R R R . . . . | | - * R R R R R R R R R R R R . . . . Height | - * R R R R R R R R R R R R . . . . | RGB_Scanlines - * R R R R R R R R R R R R . . . . | | - * R R R R R R R R R R R R . . . . | | - * R R R R R R R R R R R R . . . . | | - * R R R R R R R R R R R R . . . . V | - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . -------> Buffer size aligned to 4k - * . . . . . . . . . . . . . . . . V - * - * RGB_Stride =3D align(Width * 2, 128) - * RGB_Scanlines =3D align(Height, 16) - * RGB_Plane_size =3D align(RGB_Stride * RGB_Scanlines, 4096) - * RGB_Meta_Stride =3D align(roundup(Width, RGB_TileWidth), 64) - * RGB_Meta_Scanline =3D align(roundup(Height, RGB_TileHeight), 16) - * RGB_Meta_Plane_size =3D align(RGB_Meta_Stride * - * RGB_Meta_Scanlines, 4096) - * Extradata =3D 8k - * - * Total size =3D align(RGB_Meta_Plane_size + RGB_Plane_size + - * Extradata, 4096) - */ - COLOR_FMT_RGB565_UBWC, - /* P010 UBWC: - * Compressed Macro-tile format for NV12. - * Contains 4 planes in the following order - - * (A) Y_Meta_Plane - * (B) Y_UBWC_Plane - * (C) UV_Meta_Plane - * (D) UV_UBWC_Plane - * - * Y_Meta_Plane consists of meta information to decode compressed - * tile data in Y_UBWC_Plane. - * Y_UBWC_Plane consists of Y data in compressed macro-tile format. - * UBWC decoder block will use the Y_Meta_Plane data together with - * Y_UBWC_Plane data to produce loss-less uncompressed 10 bit Y samples. - * - * UV_Meta_Plane consists of meta information to decode compressed - * tile data in UV_UBWC_Plane. - * UV_UBWC_Plane consists of UV data in compressed macro-tile format. - * UBWC decoder block will use UV_Meta_Plane data together with - * UV_UBWC_Plane data to produce loss-less uncompressed 10 bit 2x2 - * subsampled color difference samples. - * - * Each tile in Y_UBWC_Plane/UV_UBWC_Plane is independently decodable - * and randomly accessible. There is no dependency between tiles. - * - * <----- Y_Meta_Stride -----> - * <-------- Width ------> - * M M M M M M M M M M M M . . ^ ^ - * M M M M M M M M M M M M . . | | - * M M M M M M M M M M M M . . Height | - * M M M M M M M M M M M M . . | Meta_Y_Scanlines - * M M M M M M M M M M M M . . | | - * M M M M M M M M M M M M . . | | - * M M M M M M M M M M M M . . | | - * M M M M M M M M M M M M . . V | - * . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . -------> Buffer size aligned to 4k - * . . . . . . . . . . . . . . V - * <--Compressed tile Y Stride---> - * <------- Width -------> - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . ^ ^ - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . | | - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . Height | - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . | Macro_tile_Y_Scanlines - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . | | - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . | | - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . | | - * Y* Y* Y* Y* Y* Y* Y* Y* . . . . V | - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . -------> Buffer size aligned to 4k - * . . . . . . . . . . . . . . . . V - * <----- UV_Meta_Stride ----> - * M M M M M M M M M M M M . . ^ - * M M M M M M M M M M M M . . | - * M M M M M M M M M M M M . . | - * M M M M M M M M M M M M . . M_UV_Scanlines - * . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . V - * . . . . . . . . . . . . . . -------> Buffer size aligned to 4k - * <--Compressed tile UV Stride---> - * U* V* U* V* U* V* U* V* . . . . ^ - * U* V* U* V* U* V* U* V* . . . . | - * U* V* U* V* U* V* U* V* . . . . | - * U* V* U* V* U* V* U* V* . . . . UV_Scanlines - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . V - * . . . . . . . . . . . . . . . . -------> Buffer size aligned to 4k - * - * - * Y_Stride =3D align(Width * 2, 256) - * UV_Stride =3D align(Width * 2, 256) - * Y_Scanlines =3D align(Height, 16) - * UV_Scanlines =3D align(Height/2, 16) - * Y_UBWC_Plane_Size =3D align(Y_Stride * Y_Scanlines, 4096) - * UV_UBWC_Plane_Size =3D align(UV_Stride * UV_Scanlines, 4096) - * Y_Meta_Stride =3D align(roundup(Width, Y_TileWidth), 64) - * Y_Meta_Scanlines =3D align(roundup(Height, Y_TileHeight), 16) - * Y_Meta_Plane_size =3D align(Y_Meta_Stride * Y_Meta_Scanlines, 4096) - * UV_Meta_Stride =3D align(roundup(Width, UV_TileWidth), 64) - * UV_Meta_Scanlines =3D align(roundup(Height, UV_TileHeight), 16) - * UV_Meta_Plane_size =3D align(UV_Meta_Stride * UV_Meta_Scanlines, 4096) - * Extradata =3D 8k - * - * Total size =3D align(Y_UBWC_Plane_size + UV_UBWC_Plane_size + - * Y_Meta_Plane_size + UV_Meta_Plane_size - * + max(Extradata, Y_Stride * 48), 4096) - */ - COLOR_FMT_P010_UBWC, - /* Venus P010: - * YUV 4:2:0 image with a plane of 10 bit Y samples followed - * by an interleaved U/V plane containing 10 bit 2x2 subsampled - * colour difference samples. - * - * <-------- Y/UV_Stride --------> - * <------- Width -------> - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . ^ ^ - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | | - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . Height | - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | Y_Scanlines - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | | - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | | - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . | | - * Y Y Y Y Y Y Y Y Y Y Y Y . . . . V | - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . V - * U V U V U V U V U V U V . . . . ^ - * U V U V U V U V U V U V . . . . | - * U V U V U V U V U V U V . . . . | - * U V U V U V U V U V U V . . . . UV_Scanlines - * . . . . . . . . . . . . . . . . | - * . . . . . . . . . . . . . . . . V - * . . . . . . . . . . . . . . . . --> Buffer size alignment - * - * Y_Stride : Width * 2 aligned to 128 - * UV_Stride : Width * 2 aligned to 128 - * Y_Scanlines: Height aligned to 32 - * UV_Scanlines: Height/2 aligned to 16 - * Extradata: Arbitrary (software-imposed) padding - * Total size =3D align((Y_Stride * Y_Scanlines - * + UV_Stride * UV_Scanlines - * + max(Extradata, Y_Stride * 8), 4096) - */ - COLOR_FMT_P010, -}; - -#define COLOR_FMT_RGBA1010102_UBWC COLOR_FMT_RGBA1010102_UBWC -#define COLOR_FMT_RGB565_UBWC COLOR_FMT_RGB565_UBWC -#define COLOR_FMT_P010_UBWC COLOR_FMT_P010_UBWC -#define COLOR_FMT_P010 COLOR_FMT_P010 - -/* - * Function arguments: - * @color_fmt - * @width - * Progressive: width - * Interlaced: width - */ -static unsigned int VENUS_Y_STRIDE(int color_fmt, int width) -{ - unsigned int stride =3D 0; - - if (!width) - return 0; - - switch (color_fmt) { - case COLOR_FMT_NV21: - case COLOR_FMT_NV12: - case COLOR_FMT_NV12_MVTB: - case COLOR_FMT_NV12_UBWC: - stride =3D MSM_MEDIA_ALIGN(width, 128); - break; - case COLOR_FMT_NV12_BPP10_UBWC: - stride =3D MSM_MEDIA_ALIGN(width, 192); - stride =3D MSM_MEDIA_ALIGN(stride * 4 / 3, 256); - break; - case COLOR_FMT_P010_UBWC: - stride =3D MSM_MEDIA_ALIGN(width * 2, 256); - break; - case COLOR_FMT_P010: - stride =3D MSM_MEDIA_ALIGN(width * 2, 128); - break; - } - - return stride; -} - -/* - * Function arguments: - * @color_fmt - * @width - * Progressive: width - * Interlaced: width - */ -static unsigned int VENUS_UV_STRIDE(int color_fmt, int width) -{ - unsigned int stride =3D 0; - - if (!width) - return 0; - - switch (color_fmt) { - case COLOR_FMT_NV21: - case COLOR_FMT_NV12: - case COLOR_FMT_NV12_MVTB: - case COLOR_FMT_NV12_UBWC: - stride =3D MSM_MEDIA_ALIGN(width, 128); - break; - case COLOR_FMT_NV12_BPP10_UBWC: - stride =3D MSM_MEDIA_ALIGN(width, 192); - stride =3D MSM_MEDIA_ALIGN(stride * 4 / 3, 256); - break; - case COLOR_FMT_P010_UBWC: - stride =3D MSM_MEDIA_ALIGN(width * 2, 256); - break; - case COLOR_FMT_P010: - stride =3D MSM_MEDIA_ALIGN(width * 2, 128); - break; - } - - return stride; -} - -/* - * Function arguments: - * @color_fmt - * @height - * Progressive: height - * Interlaced: (height+1)>>1 - */ -static unsigned int VENUS_Y_SCANLINES(int color_fmt, int height) -{ - unsigned int sclines =3D 0; - - if (!height) - return 0; - - switch (color_fmt) { - case COLOR_FMT_NV21: - case COLOR_FMT_NV12: - case COLOR_FMT_NV12_MVTB: - case COLOR_FMT_NV12_UBWC: - case COLOR_FMT_P010: - sclines =3D MSM_MEDIA_ALIGN(height, 32); - break; - case COLOR_FMT_NV12_BPP10_UBWC: - case COLOR_FMT_P010_UBWC: - sclines =3D MSM_MEDIA_ALIGN(height, 16); - break; - } - - return sclines; -} - -/* - * Function arguments: - * @color_fmt - * @height - * Progressive: height - * Interlaced: (height+1)>>1 - */ -static unsigned int VENUS_UV_SCANLINES(int color_fmt, int height) -{ - unsigned int sclines =3D 0; - - if (!height) - return 0; - - switch (color_fmt) { - case COLOR_FMT_NV21: - case COLOR_FMT_NV12: - case COLOR_FMT_NV12_MVTB: - case COLOR_FMT_NV12_BPP10_UBWC: - case COLOR_FMT_P010_UBWC: - case COLOR_FMT_P010: - sclines =3D MSM_MEDIA_ALIGN((height + 1) >> 1, 16); - break; - case COLOR_FMT_NV12_UBWC: - sclines =3D MSM_MEDIA_ALIGN((height + 1) >> 1, 32); - break; - } - - return sclines; -} - -/* - * Function arguments: - * @color_fmt - * @width - * Progressive: width - * Interlaced: width - */ -static unsigned int VENUS_Y_META_STRIDE(int color_fmt, int width) -{ - int y_tile_width =3D 0, y_meta_stride; - - if (!width) - return 0; - - switch (color_fmt) { - case COLOR_FMT_NV12_UBWC: - case COLOR_FMT_P010_UBWC: - y_tile_width =3D 32; - break; - case COLOR_FMT_NV12_BPP10_UBWC: - y_tile_width =3D 48; - break; - default: - return 0; - } - - y_meta_stride =3D MSM_MEDIA_ROUNDUP(width, y_tile_width); - return MSM_MEDIA_ALIGN(y_meta_stride, 64); -} - -/* - * Function arguments: - * @color_fmt - * @height - * Progressive: height - * Interlaced: (height+1)>>1 - */ -static unsigned int VENUS_Y_META_SCANLINES(int color_fmt, int height) -{ - int y_tile_height =3D 0, y_meta_scanlines; - - if (!height) - return 0; - - switch (color_fmt) { - case COLOR_FMT_NV12_UBWC: - y_tile_height =3D 8; - break; - case COLOR_FMT_NV12_BPP10_UBWC: - case COLOR_FMT_P010_UBWC: - y_tile_height =3D 4; - break; - default: - return 0; - } - - y_meta_scanlines =3D MSM_MEDIA_ROUNDUP(height, y_tile_height); - return MSM_MEDIA_ALIGN(y_meta_scanlines, 16); -} - -/* - * Function arguments: - * @color_fmt - * @width - * Progressive: width - * Interlaced: width - */ -static unsigned int VENUS_UV_META_STRIDE(int color_fmt, int width) -{ - int uv_tile_width =3D 0, uv_meta_stride; - - if (!width) - return 0; - - switch (color_fmt) { - case COLOR_FMT_NV12_UBWC: - case COLOR_FMT_P010_UBWC: - uv_tile_width =3D 16; - break; - case COLOR_FMT_NV12_BPP10_UBWC: - uv_tile_width =3D 24; - break; - default: - return 0; - } - - uv_meta_stride =3D MSM_MEDIA_ROUNDUP((width+1)>>1, uv_tile_width); - return MSM_MEDIA_ALIGN(uv_meta_stride, 64); -} - -/* - * Function arguments: - * @color_fmt - * @height - * Progressive: height - * Interlaced: (height+1)>>1 - */ -static unsigned int VENUS_UV_META_SCANLINES(int color_fmt, int height) -{ - int uv_tile_height =3D 0, uv_meta_scanlines; - - if (!height) - return 0; - - switch (color_fmt) { - case COLOR_FMT_NV12_UBWC: - uv_tile_height =3D 8; - break; - case COLOR_FMT_NV12_BPP10_UBWC: - case COLOR_FMT_P010_UBWC: - uv_tile_height =3D 4; - break; - default: - return 0; - } - - uv_meta_scanlines =3D MSM_MEDIA_ROUNDUP((height+1)>>1, uv_tile_height); - return MSM_MEDIA_ALIGN(uv_meta_scanlines, 16); -} - -static unsigned int VENUS_RGB_STRIDE(int color_fmt, int width) -{ - unsigned int alignment =3D 0, bpp =3D 4; - - if (!width) - return 0; - - switch (color_fmt) { - case COLOR_FMT_RGBA8888: - alignment =3D 128; - break; - case COLOR_FMT_RGB565_UBWC: - alignment =3D 256; - bpp =3D 2; - break; - case COLOR_FMT_RGBA8888_UBWC: - case COLOR_FMT_RGBA1010102_UBWC: - alignment =3D 256; - break; - default: - return 0; - } - - return MSM_MEDIA_ALIGN(width * bpp, alignment); -} - -static unsigned int VENUS_RGB_SCANLINES(int color_fmt, int height) -{ - unsigned int alignment =3D 0; - - if (!height) - return 0; - - switch (color_fmt) { - case COLOR_FMT_RGBA8888: - alignment =3D 32; - break; - case COLOR_FMT_RGBA8888_UBWC: - case COLOR_FMT_RGBA1010102_UBWC: - case COLOR_FMT_RGB565_UBWC: - alignment =3D 16; - break; - default: - return 0; - } - - return MSM_MEDIA_ALIGN(height, alignment); -} - -static unsigned int VENUS_RGB_META_STRIDE(int color_fmt, int width) -{ - int rgb_meta_stride; - - if (!width) - return 0; - - switch (color_fmt) { - case COLOR_FMT_RGBA8888_UBWC: - case COLOR_FMT_RGBA1010102_UBWC: - case COLOR_FMT_RGB565_UBWC: - rgb_meta_stride =3D MSM_MEDIA_ROUNDUP(width, 16); - return MSM_MEDIA_ALIGN(rgb_meta_stride, 64); - } - - return 0; -} - -static unsigned int VENUS_RGB_META_SCANLINES(int color_fmt, int height) -{ - int rgb_meta_scanlines; - - if (!height) - return 0; - - switch (color_fmt) { - case COLOR_FMT_RGBA8888_UBWC: - case COLOR_FMT_RGBA1010102_UBWC: - case COLOR_FMT_RGB565_UBWC: - rgb_meta_scanlines =3D MSM_MEDIA_ROUNDUP(height, 4); - return MSM_MEDIA_ALIGN(rgb_meta_scanlines, 16); - } - - return 0; -} - -#endif --=20 2.47.2 From nobody Fri Oct 3 05:27:00 2025 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 F3EB2218821 for ; Fri, 5 Sep 2025 00:39:12 +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=1757032754; cv=none; b=Ag8wojw9QLk98cJ6EaBRBdEAwG/0kKqPvJa6ebGASamc6gclW7vpsoedfQaVWGJudjt6iMeMMzeqAvDHEXegTmLVDAvhjsxb1vMxxkk2qgEbTbUz3MqIexFiMsEu45W6+G8ov9rUzgEpH65CR0QDKJUxlzpG1Y6/OcORSbmGVZM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757032754; c=relaxed/simple; bh=lGlOq21wJXxPf5qd4HfAzqrvugD2QrjsunL1xmnHE9s=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=c3jgmpDW87AI7E+j8keyu/yeHuzboCtG4pZQ6tW0hCXaQA4tpMK+fH6+8dW9Ld1UkpO4+6o0m9qaYe8oJ5+oHnZtmOhQ63mR6HemuomDjkIwobqNTXP8Slh+bQ0HJ8CXeQWyLHrOdC7tPcdAGoajDudoHi8p+UOFUNbDYcfO5y0= 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=CmoBVaOW; 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="CmoBVaOW" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 584IAElo031754 for ; Fri, 5 Sep 2025 00:39:12 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= ra9GluSXfhMlHZ2ACIpc5GR7mvUKtMwIaWiKkZbOwVY=; b=CmoBVaOWsvaUWwyX Ur0wrPYC4AipxzjvoRExW9VbSJbovPTvzHSiLANjH9GfjItEI7AMThPxYCQXYAVy fO4OeGNM256nexMaYz5FwBgkT9eMGfY43rBLXI8Bky4gE7SqTlstmsDfR0Czj4EO Yr9Ea/RoEnFZQwFf4emVkwioo7G28a7E9UuoPE32+gaHD/Rka4Gx5S/8wTQEm07Y W09GeMAteG5p1ekvPmh47z5xiA5m2Jr3kKeJP6tWqpWVXed8F657ZPOpvsoAKNL7 tfrSul9fTu3NIsI58o9N3gI5D5usDNuYjduGLOjQMsjrkTOkE/+2l9uEUX75HgHX lhchtA== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48urw09bxu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Fri, 05 Sep 2025 00:39:11 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-4b29cdc7417so31559921cf.0 for ; Thu, 04 Sep 2025 17:39:11 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757032751; x=1757637551; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ra9GluSXfhMlHZ2ACIpc5GR7mvUKtMwIaWiKkZbOwVY=; b=gHuVvb9uSdSAej+Si2PUFXZwmiDiDE0ybjgnRE0z7+D0zVrxgnCrMt+8HD4OSm3de4 Chs/uOviiFpl2UkQRwqD4GRprl2BzcX8/+1BxQJWAmdZcDuGP4PCQQmo4PRGLJfUaTe+ 2PPDV9j/2NeLVjHcMsCj56jIFeM8EgkmydM+I2TPwi+0b1n+xVjsCBNODslYR3CXvfwS 7Dap+Cc7TpZYNyoUZun5Y1QpwtABslsXafGH/vSMJIXHM5PqasOKlqK+IEBf/x+ATtmA oYiislLAMQ2Q7Y5uBBm0jfipEjUGmkraQ6NWKm/+Idv4RomURS7DBhUb8onUfB8Fo0jl busg== X-Forwarded-Encrypted: i=1; AJvYcCVW3ZlV/ZCdIj8ADN2HM3VcqzpaEBllvmK3NLVR707vQY6wv8SZ4VB93oSdf+EunoAXnBpFBhTK/xzdkV4=@vger.kernel.org X-Gm-Message-State: AOJu0YxSJVbAnXARRmF11Vlv6yPn40sIrL9t5SeXNg3qqtferfQIO3eE 17aTg/ZAgA4uX1XlQr8hIL2HEeDiwzXKSCoLV3ru9gZQrlvFTNryblQVnW67jZM/tC2UO7ijQ5U hd2m9kkoTmhAk3lKspZqqjtDV9sJ+7AWoa88h9VrQo6MO0tphZmzcKIE/pcMS3GPcUJw= X-Gm-Gg: ASbGncsc+b+k88bzXzqOqSoKBwWs8pCecG3O+iGL4TdnkOxGLW1YyelgzSzNwn9dDqh Wz/pBZXUjA9PGodv/KbeEbqywMxGR18uQ56GNsPRtsMQjyjXXVvYx80kuWQ+/T9Fj+gJnOA2jLT s8QL6m8QMnMphv501vl3neCf68VwVZenIcM0409lcA453CGSeaSEZ7n0yNVU5VaX3inqZaDkfbh 523ORNHpDC43vFF5a6X+Mkly7g8Yph38TRklVRVVgUwJEegzhlMJ17Dl4Ofo0kPs+u1L0fHq1wR v2HELi5COqV97bfefFc1tPGDaYR8JW8cAR4+H/LFmapbuKJZVaIbd6Y+2eHqqjMqKI+fEBwMCDf ZYDEq25kVQlBV36k3mdC5gui2u/7Buhw95NrMNOwwK5tTcTl2PvFx X-Received: by 2002:a05:622a:4207:b0:4af:1535:6b53 with SMTP id d75a77b69052e-4b31da3b2a0mr222826011cf.54.1757032751055; Thu, 04 Sep 2025 17:39:11 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGS3wnGT8ACgxrTqpQD8+qzTZ6t5n5H43QqgEg9VQB/rUpomSgmUzUzHoGTcB143SkCSuf93g== X-Received: by 2002:a05:622a:4207:b0:4af:1535:6b53 with SMTP id d75a77b69052e-4b31da3b2a0mr222825811cf.54.1757032750618; Thu, 04 Sep 2025 17:39:10 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5608acfd938sm1510059e87.109.2025.09.04.17.39.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Sep 2025 17:39:08 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 05 Sep 2025 03:38:41 +0300 Subject: [PATCH v2 12/12] drm/msm/dpu: use standard functions in _dpu_format_populate_plane_sizes_ubwc() 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: quoted-printable Message-Id: <20250905-dpu-formats-v2-12-7a674028c048@oss.qualcomm.com> References: <20250905-dpu-formats-v2-0-7a674028c048@oss.qualcomm.com> In-Reply-To: <20250905-dpu-formats-v2-0-7a674028c048@oss.qualcomm.com> To: Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , David Airlie , Simona Vetter , Jordan Crouse Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=5431; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=lGlOq21wJXxPf5qd4HfAzqrvugD2QrjsunL1xmnHE9s=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoujEKK92PZaXMEwacZH5/xSig59AgXXb3CmkPc fjelgfuBvKJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaLoxCgAKCRCLPIo+Aiko 1TJbB/4r1O0t6fCeOk0Vjk5icw3t2tBKMN1g91Yubw5n3bIrgtCaaAj4eaBV0LGNLTrZQusxc2K Hw4mgODdktXjaQGdz3iQhL0wJyVXyQ19phnBcb6Y19aHwqZiiwqZ6JjfY6wgtBTZUYTgR9VzrL4 TOkX8fsQmUcnphqOBgw7Hxn8/Sf7bBt6XRCQom6nKnZL+T9CMPCgl6cw7wVQy24Cbkwl8HArcL9 vStylSVaxxlS+ykE/3IIxofD1eC262/fLFak/ohr8oKogkQ8P5GQsRetJ1lx9I8PIdFfc9BcQOj zhu4MFrmQ7SLnRgwqs10szN6IRd66kqr5s+ES0wJ4yW8eRSE X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-GUID: wDmV-oEtzCHNWERm9ytia-XjwGTxBkv- X-Proofpoint-ORIG-GUID: wDmV-oEtzCHNWERm9ytia-XjwGTxBkv- X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAyNyBTYWx0ZWRfXz8PL/cPR4DqX nljweVar/QD0vKje25iq7oM7MJvMc8Eimql50gpIYZhFL6ebHnxW1pVKOSAxtE3aAIieULd/p6L NIU/Kf1iPcKT+BI1BQkqs1Ww56E9jqr4xR1iJcfzGRjRGUuKoQbPbqx4TN56H+AMgvDRsIzfV9f FuBVTmU2hHnXAVdoHSln4lBqV3g+piu+tpnSe+uLl8lXspIFngGKaVxGUcDcvBDnsnguBgM9jZT BtizDWSrCgC+Kx06gI6Q9ieEyzRTz5UCoAEJP//ebZKcTCDbizBI4M7R3bqMGo4RXW625xGjz0f t7LRTBHi9CYFizytZAKbBUD9AwPtSIUnX1WOO7U5YtSQ94dtU498dRxkAJdHBpIAz5XkxjI8y7I ECVX8dfS X-Authority-Analysis: v=2.4 cv=NrDRc9dJ c=1 sm=1 tr=0 ts=68ba312f cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=EUspDBNiAAAA:8 a=7bqH7Blup1pqkekdm3wA:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-04_08,2025-09-04_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 suspectscore=0 malwarescore=0 priorityscore=1501 phishscore=0 impostorscore=0 spamscore=0 bulkscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300027 The _dpu_format_populate_plane_sizes_ubwc() used MSM_MEDIA_ALIGN() and MSM_MEDIA_ROUNDUP(), macros inherited from the previous implementation, msm_media_info.h. Replace them with the standard Linux macros, round_up() and DIV_ROUND_UP() respectively. Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c | 63 +++++++++++++------------= ---- 1 file changed, 27 insertions(+), 36 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c b/drivers/gpu/drm/= msm/disp/dpu1/dpu_formats.c index da1870ce7680899759d09caa01050eeb9844a484..6e8883dbfad439a3b3f07b6fe93= 37820048fc2eb 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c @@ -10,16 +10,6 @@ #include "dpu_kms.h" #include "dpu_formats.h" =20 -#ifndef MSM_MEDIA_ALIGN -#define MSM_MEDIA_ALIGN(__sz, __align) (((__align) & ((__align) - 1)) ?\ - ((((__sz) + (__align) - 1) / (__align)) * (__align)) :\ - (((__sz) + (__align) - 1) & (~((__align) - 1)))) -#endif - -#ifndef MSM_MEDIA_ROUNDUP -#define MSM_MEDIA_ROUNDUP(__sz, __r) (((__sz) + ((__r) - 1)) / (__r)) -#endif - #define DPU_UBWC_PLANE_SIZE_ALIGNMENT 4096 =20 /* @@ -78,56 +68,57 @@ static int _dpu_format_populate_plane_sizes_ubwc( =20 if (MSM_FORMAT_IS_DX(fmt)) { if (fmt->flags & MSM_FORMAT_FLAG_UNPACK_TIGHT) { - stride =3D MSM_MEDIA_ALIGN(fb->width, 192); - stride =3D MSM_MEDIA_ALIGN(stride * 4 / 3, 256); + /* can't use round_up() here because 192 is NPoT */ + stride =3D roundup(fb->width, 192); + stride =3D round_up(stride * 4 / 3, 256); y_tile_width =3D 48; } else { - stride =3D MSM_MEDIA_ALIGN(fb->width * 2, 256); + stride =3D round_up(fb->width * 2, 256); y_tile_width =3D 32; } =20 - sclines =3D MSM_MEDIA_ALIGN(fb->height, 16); + sclines =3D round_up(fb->height, 16); y_tile_height =3D 4; } else { - stride =3D MSM_MEDIA_ALIGN(fb->width, 128); + stride =3D round_up(fb->width, 128); y_tile_width =3D 32; =20 - sclines =3D MSM_MEDIA_ALIGN(fb->height, 32); + sclines =3D round_up(fb->height, 32); y_tile_height =3D 8; } =20 layout->plane_pitch[0] =3D stride; - layout->plane_size[0] =3D MSM_MEDIA_ALIGN(layout->plane_pitch[0] * + layout->plane_size[0] =3D round_up(layout->plane_pitch[0] * sclines, DPU_UBWC_PLANE_SIZE_ALIGNMENT); =20 layout->plane_pitch[1] =3D stride; - layout->plane_size[1] =3D MSM_MEDIA_ALIGN(layout->plane_pitch[1] * + layout->plane_size[1] =3D round_up(layout->plane_pitch[1] * sclines, DPU_UBWC_PLANE_SIZE_ALIGNMENT); =20 if (!meta) return 0; =20 - y_meta_stride =3D MSM_MEDIA_ROUNDUP(fb->width, y_tile_width); - layout->plane_pitch[2] =3D MSM_MEDIA_ALIGN(y_meta_stride, 64); + y_meta_stride =3D DIV_ROUND_UP(fb->width, y_tile_width); + layout->plane_pitch[2] =3D round_up(y_meta_stride, 64); =20 - y_meta_scanlines =3D MSM_MEDIA_ROUNDUP(fb->height, y_tile_height); - y_meta_scanlines =3D MSM_MEDIA_ALIGN(y_meta_scanlines, 16); - layout->plane_size[2] =3D MSM_MEDIA_ALIGN(layout->plane_pitch[2] * + y_meta_scanlines =3D DIV_ROUND_UP(fb->height, y_tile_height); + y_meta_scanlines =3D round_up(y_meta_scanlines, 16); + layout->plane_size[2] =3D round_up(layout->plane_pitch[2] * y_meta_scanlines, DPU_UBWC_PLANE_SIZE_ALIGNMENT); =20 - uv_meta_stride =3D MSM_MEDIA_ROUNDUP((fb->width+1)>>1, y_tile_width / 2); - layout->plane_pitch[3] =3D MSM_MEDIA_ALIGN(uv_meta_stride, 64); + uv_meta_stride =3D DIV_ROUND_UP((fb->width+1)>>1, y_tile_width / 2); + layout->plane_pitch[3] =3D round_up(uv_meta_stride, 64); =20 - uv_meta_scanlines =3D MSM_MEDIA_ROUNDUP((fb->height+1)>>1, y_tile_height= ); - uv_meta_scanlines =3D MSM_MEDIA_ALIGN(uv_meta_scanlines, 16); - layout->plane_size[3] =3D MSM_MEDIA_ALIGN(layout->plane_pitch[3] * + uv_meta_scanlines =3D DIV_ROUND_UP((fb->height+1)>>1, y_tile_height); + uv_meta_scanlines =3D round_up(uv_meta_scanlines, 16); + layout->plane_size[3] =3D round_up(layout->plane_pitch[3] * uv_meta_scanlines, DPU_UBWC_PLANE_SIZE_ALIGNMENT); } else { unsigned int rgb_scanlines, rgb_meta_scanlines, rgb_meta_stride; =20 - layout->plane_pitch[0] =3D MSM_MEDIA_ALIGN(fb->width * fmt->bpp, 256); - rgb_scanlines =3D MSM_MEDIA_ALIGN(fb->height, 16); - layout->plane_size[0] =3D MSM_MEDIA_ALIGN(layout->plane_pitch[0] * + layout->plane_pitch[0] =3D round_up(fb->width * fmt->bpp, 256); + rgb_scanlines =3D round_up(fb->height, 16); + layout->plane_size[0] =3D round_up(layout->plane_pitch[0] * rgb_scanlines, DPU_UBWC_PLANE_SIZE_ALIGNMENT); =20 if (!meta) @@ -136,13 +127,13 @@ static int _dpu_format_populate_plane_sizes_ubwc( /* uAPI leaves plane[1] empty and plane[2] as meta */ layout->num_planes +=3D 1; =20 - rgb_meta_stride =3D MSM_MEDIA_ROUNDUP(fb->width, 16); - layout->plane_pitch[2] =3D MSM_MEDIA_ALIGN(rgb_meta_stride, 64); + rgb_meta_stride =3D DIV_ROUND_UP(fb->width, 16); + layout->plane_pitch[2] =3D round_up(rgb_meta_stride, 64); =20 - rgb_meta_scanlines =3D MSM_MEDIA_ROUNDUP(fb->height, 4); - rgb_meta_scanlines =3D MSM_MEDIA_ALIGN(rgb_meta_scanlines, 16); + rgb_meta_scanlines =3D DIV_ROUND_UP(fb->height, 4); + rgb_meta_scanlines =3D round_up(rgb_meta_scanlines, 16); =20 - layout->plane_size[2] =3D MSM_MEDIA_ALIGN(layout->plane_pitch[2] * + layout->plane_size[2] =3D round_up(layout->plane_pitch[2] * rgb_meta_scanlines, DPU_UBWC_PLANE_SIZE_ALIGNMENT); } =20 --=20 2.47.2