From nobody Tue Oct 7 21:26:21 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 EC7E526E6FF for ; Sat, 5 Jul 2025 02:47:32 +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=1751683654; cv=none; b=YLeI8fIw7XIbiVPrt33qZJtfwXvJiCaopw3TFooec/m3Vgh9Y2SfVa6lzSZX+pwtd2M2DTR+yHK9qmX+e8cV/VQagtmZEl2hYyDWcxMEnKwwoVuOtwc4eEHIR6veyN4v5SR1GPmkxOWqHETV24Zb+PyxAMUa5dMeHtrrzVVGoLY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751683654; c=relaxed/simple; bh=PILnmvpGnr1q9TnXm9+RxFGUB/bQl/VAfEMPj6+eJQA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=JIamwSa7wkIToeUHYN5sj8ZfqEcuNDlPeuekjRgbpr3MyJk3ru7Oyld8QRN4yW9S7PwnBRuf6QRiqkMQN/6jufrp0+VDlIVhQOm9aewqr0S0z613O3ueRpaqKl5bWNclF+774IvavceWrOXVwxUgg+mAbexUpjEYEX5ASJhBqao= 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=fmJz75Pg; 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="fmJz75Pg" 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 564MiuXH001775 for ; Sat, 5 Jul 2025 02:47:31 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= uwF0yXtjcYZZHTWUtFBuT2u76dwiF/qWvZ0FO2txtq0=; b=fmJz75PgADpZWKXy Oyq9zd3dCsSv3twi/x2G5XmcBCfrJpXIdi00LqpxGyfzPFauCKTJRIgwfr7i84YF JWl8u02ObtgrM58bJgf7fczu/0STHIwqDB6zLxflVLXvhi2lZpb11+q8qvr38z4c x+qXSUAKuoGOGwaP6PJD4akjul2DonIhtwTuwD9Vb/gnaLojhR6mRXUTwbuYoqZN RcgGaOroEMk9AMbZEUX0calVBZ/XbW3KP63G9sCWnjl4RbmaFAYy5FOlS1b9PjzE aNi6uxUFBNtIXWcfNo2QIn3pv3m7uPnEAxj4HQe3Ud+dET7rMUT9nfKR8w/pH3hc nkPA4A== Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47j8fxw9wu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sat, 05 Jul 2025 02:47:31 +0000 (GMT) Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-7c790dc38b4so235388885a.0 for ; Fri, 04 Jul 2025 19:47:31 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751683651; x=1752288451; 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=uwF0yXtjcYZZHTWUtFBuT2u76dwiF/qWvZ0FO2txtq0=; b=j8H3ZsAqt7bO1yZEE7FG5u/eBOsXsv+Ml0PEi2ZUo92t2ktXkHu1xs1ddfR0xRmAHy WbankwPfD96GEmpGozA1qFrR0JK3IfGakb4DS9CGX5Nye8JUDpqjhDtCNQrAJVYbEuBC hrt5BGK9K4z4zHwcWSYJL+tyPNJ8M/uK7IUnlcFRGodbXapoiM6VhnwIObl/BANchQxM b+j1cU1jrPilW84qLYriOV7ZZlmB5tG8Xr3fBswfHaAQPqrVeWLhoXLH6FaO2rKSqnnx Nwq3FAgx2ueCzczh5Ug4jjd/i6jdE3jjhi6wR7a7h8NIkMFPyqFQNySLfIBi3Ww+H8sL ymuA== X-Forwarded-Encrypted: i=1; AJvYcCUMv16ceQ5sUG0EYwedpNZy44CdYdnNuZLS0hXPPu5bbrnLMnYwehSMVHodehR1GUkUUPj50ytboGEY4yA=@vger.kernel.org X-Gm-Message-State: AOJu0YwDY87zE1FXNSL/etbNKudE5wYo6rtr080W0a46AH5jBkuZ3+ea BQc3DLMNrtWtLf6nLmnHn8T/a/9NZFaA7wyhOfAIn5b7SUrOqXBfOkddnuiluBp0gpPXdB0bgxd b/eyHXORPKMZMdg6UdCj1qTX2VyIREXkUHT8esr86TATSv4/2MXhZNDV77mZ7WOnmOQ0= X-Gm-Gg: ASbGncuMIvOjaeqHZcDEe/7gEqebm60HdHMMlQ6u5NAWy5OwUeR05UgcZulUz32bjeL dXNxnwZ8pIqzBfgwNUoLgmDQt9CLIAVApxWU4zvmeucv24RpWh3vsR5Z+By53D3oJ34WLXTvfu1 Aql7kSirHP5Rni74qp3i2SjFPwVM5aBk3g6ULWjyLkx/eHajZBnu3K+3+uKPcvKfuxY5/3bQ2eg 57tM+27w7xj0RSt1u7/5q2drpb66M8tGPA+zl1jYKhYhWCfRy5QS/2bkWs/sW6NFTNQXr3Z9DU0 1OJIkhfRyDb+q7PLLEYcgRz4NPK8zDmZaUdoq6TEt42W9rAx+CVItEJjNfV2dxQn77Ii3d+1iQm 5HZMlEzsR+k4zX0Km2ky0TGP1Ho7lodbIIQA= X-Received: by 2002:a05:620a:618b:b0:7d3:e56e:4fd8 with SMTP id af79cd13be357-7d5dc66a567mr648065185a.12.1751683650872; Fri, 04 Jul 2025 19:47:30 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFjg/CcD45AAmgdd3TehstYt7pR3hgyi7SoBp8wsgbVpyLR3/nu3VuQCR1BxdlZ/oY2Ff7THw== X-Received: by 2002:a05:620a:618b:b0:7d3:e56e:4fd8 with SMTP id af79cd13be357-7d5dc66a567mr648063385a.12.1751683650425; Fri, 04 Jul 2025 19:47:30 -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 38308e7fff4ca-32e1b1418b3sm4092411fa.76.2025.07.04.19.47.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 19:47:29 -0700 (PDT) From: Dmitry Baryshkov Date: Sat, 05 Jul 2025 05:47:22 +0300 Subject: [PATCH 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: <20250705-dpu-formats-v1-1-40f0bb31b8c8@oss.qualcomm.com> References: <20250705-dpu-formats-v1-0-40f0bb31b8c8@oss.qualcomm.com> In-Reply-To: <20250705-dpu-formats-v1-0-40f0bb31b8c8@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=1624; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=PILnmvpGnr1q9TnXm9+RxFGUB/bQl/VAfEMPj6+eJQA=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoaJI8paQmJDx7acunG6Rf9svsL1sBNNN8yILi1 QsJil1O4PSJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaGiSPAAKCRCLPIo+Aiko 1UbCB/4vpQ/e5si1WCvR1zIPoAKe0Cg64TLcbGLi5QW9+TbtNS4WiMoqWkTqspNexCPf6ZTlvD7 TPiFirmzpRC03azsgzeifdnimiztH3xJY2OoLOrv/Fle89yDyWnzGUQWxTjc9p+ip86laJrlhsi Du6eu7Q83pXnaqO77KFNK4q3YcWEwrjywKDyVb62DYUjkpABfkwxdXfDRPe2bVkm1UkPULF6fFz srSV1jIPaHj1LopSyJy7JjwXh5rUsgzGqbBprpyrjfQw9tO+Z8SPCSQTc2SAC4n/imEGRCgKAv/ U8kqIxJM9tehJVCyDcSA3aZ9y7FnT86MN5QFngDEPvdca60/ X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzA1MDAxNiBTYWx0ZWRfX2hnz6bX1+5AI p/g/CFTYxcFC+Vy8l9HoiqwvDnMMrKengQPQkNUBTqeyZ0Sv40kWsFoQy/Upinp0zz8+rItthzw bGbikXrPP4EiCXN+Ma74VOubiZDY062LRBQDOomvALLvks8VFks722U6MfMdGDnlv/0I3tngCTe bOtzx20iwK1MkiU4pSV7qfZSe6C3Igc1gVY8YGC5m0p4B1aVJZgvzP//HP76EF4E2IAdimRIkmm anfnyOBhy/xee9KbmoP9mWBqG96i4uPF4scpb79fQxprq7Tu1vDkiYjEkxNfqkoSrOkRLHnl4La O1k8A2vb0kSrb/20LtXweFPSytCUCp3gXpcRPWjBSlovLkqfqBivKQnprjCT/nByOP3DszyKGu5 oRhM7jN+A4ruq3O7mWsGAxP2jChCXL0nTDTt5Z1gTgvnzSK5bd6DMT7nj6LOf9LJ1g4hNki8 X-Proofpoint-GUID: G3_ovL3_vvA0avM0ohOtiNdCvSoovBvf X-Proofpoint-ORIG-GUID: G3_ovL3_vvA0avM0ohOtiNdCvSoovBvf X-Authority-Analysis: v=2.4 cv=TqPmhCXh c=1 sm=1 tr=0 ts=68689243 cx=c_pps a=50t2pK5VMbmlHzFWWp8p/g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Wb1JkmetP80A:10 a=EUspDBNiAAAA:8 a=DB8TyEHaRv6uusbT9jkA:9 a=QEXdDO2ut3YA:10 a=IoWCM6iH3mJn3m4BftBB:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-04_07,2025-07-04_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 mlxlogscore=999 suspectscore=0 adultscore=0 phishscore=0 malwarescore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 spamscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507050016 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") Signed-off-by: Dmitry Baryshkov Reviewed-by: Jessica Zhang --- 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.39.5 From nobody Tue Oct 7 21:26:21 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 DEE2C275866 for ; Sat, 5 Jul 2025 02:47:35 +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=1751683657; cv=none; b=Qp1q1fC3WMLFzNLy1RwL9D/TAWyVYjT058lLlXcfhTUlcdB0Tcw8i+Qv3TmNe8VxsEnIOQP/IAs+vJr+nAKbioDpfAStHABPqyhtbTXir3MzmzIuMiqMo+etknRUhMvFkZ4R/FcU2utGlNmwJzg0oo8AEX7JV0V3Jf0EVpx5mNQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751683657; c=relaxed/simple; bh=8hnAM0lAQzZe6nBJfHjACLVW7VM+NAqqrBj4BkEu3m8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=TnGTLRWKwgj06cDqNXOCDcmi8C6U7OhEHUETxBjNZhe6JI0O/PdmptxDyB4y5HsTlgSwGEvimgTBLbhsvXkrngeEPBXcsmwJb77Fxpf5XWZvK+D6kaso6zEcSiQu/Cqcc6gRcjcsGSn66HWAYg0WOr4RZ5TV1SL+Y1wxkE0Vuos= 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=h3UaSsOL; 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="h3UaSsOL" 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 5650DWBL002776 for ; Sat, 5 Jul 2025 02:47:35 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= iJ4vVx6OGFN/aARr2osrAhMqjdA1UbDiBblNVXe4yIo=; b=h3UaSsOL4BbJLs6x cXHD9Q9iMMBe4hBIpZfSgWH6/87tiu0/2TPggx4bhR9ZqWtCo0ReM8DwGEXA/Xxs /LFcbFVDFQLZg8SZRAF9mw+sAW4uYKu7EHO8jGQfxURRZhiBnBnYIIV2/nfW3YaK oKPMg15FlPjGgXgEgvrpKJkusNCEZ5uCrbSl9pyQugCFviZP+M+UflpfCwNjo73n lyWprW4fyNYE4IT5a45zuMopo19rJ6YC1sRf64rTjrH5xgGt63G1VBBn7vcSbzlo JmG9pnMBk2ot6hcVC91X+clfrrfMe7QjYmkwej5mhxwt9Es7L7ohYLxHHZBpNg+B 9VetZg== Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47mw30ja43-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sat, 05 Jul 2025 02:47:34 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-4a44e608379so46960991cf.2 for ; Fri, 04 Jul 2025 19:47:34 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751683653; x=1752288453; 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=iJ4vVx6OGFN/aARr2osrAhMqjdA1UbDiBblNVXe4yIo=; b=nJf1ypvFb5ehCcxcgA4lRt9nwms7vllSEIRchpZ2hGTTJVWdLhb9rM4F6qgnswGCP8 e2BXtHN5ylG1Jr6e4b7niYy3W0sq4KqJ9fiDLUKMIwbAHa6n77ZXgwrUCQBRsDr3gv0z TTm1xGzAJITHENGGtgp4lJxEJec0owk49vEUgQgv/30gIjPpvOmmnSWXR4veTCxCOQUI ZLdhEB1fwMsfoMw7bkYPN3B6CfrehAHJ2VADm/4aRIlJEG6S2Cch+Rle+q+jlgW8BLr9 N9lOMvTOYGRGBZdAgkF8KYTOuFFzEX3WQhlahu1Cgucfv3+pfG6mN+EPuESS8XEnQlo8 tkpQ== X-Forwarded-Encrypted: i=1; AJvYcCVFgqCsig3ANvTXBPiz5ZLl6Zf3XTP3yCjLXTGbSAY3ywKbfs9FyY92eBLn/uAKBt48Gj8qcr6mqbA8ynk=@vger.kernel.org X-Gm-Message-State: AOJu0Yz50+pLTaN4/uCoVGoz8Wq9l7NkQP+bxXoie6naIRMODbbjPOLB SSo6rU9xXWkeSTkMRFDtCz+4QmPRGG3SsCrXiPPqkD9uCr89nYoe0aQtYrlQxPi+ivr+qQ3YPd4 kFsw8qAY6YLO2H9l75C3MyE6irxsYu/G6XjNlyRyYvp0oXs3YNVx5TodeT/ikgt1TLNA= X-Gm-Gg: ASbGncsL/ICtwgfw13Q4uEGaSOSqmdnw/f1roLhZ7cfh9aYirjVZ0eptw3f2dgNMQvm OxzaJUraHIxIdxEkrygdVV2kwMUhJYK/MHcwPiY4QU7rN2PKvHQv1pYHlR6duQ0BDPd+7/w14jO FhxLBmfH2p1dJZxu/8tsBzQoTD7Y38pwOS2D5kGvyjz+4njI/6hhPx4AHbj0C04/drIfeWp0fkL SWkZ65+K8FGdtfdCQ1gp4LS/rg7tMIlpNdp5g6vk1bkEMLw/9xy2O6vlw0nL7WBBBSaLCQ3wPHV zMfvCZlUPhZSiut8DB1Q/fLgdcuzVA+poEOL55PAnbreyfUWCatV3fK3UES6QgwlWgvfJaWpLcj tJ4UJHZhHnAJaX01Rp4tlNkFKRjA5AmdmWbg= X-Received: by 2002:a05:620a:3185:b0:7d5:db58:cc3d with SMTP id af79cd13be357-7d5dcd07298mr522807285a.43.1751683653545; Fri, 04 Jul 2025 19:47:33 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHb2rVMFMnKID7Poz8TOhF6bpD9xZ/N3zDdd5+/lpzeD9i73vNEC6mlmImN9LTAqERZXQbRMg== X-Received: by 2002:a05:620a:3185:b0:7d5:db58:cc3d with SMTP id af79cd13be357-7d5dcd07298mr522805685a.43.1751683653002; Fri, 04 Jul 2025 19:47:33 -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 38308e7fff4ca-32e1b1418b3sm4092411fa.76.2025.07.04.19.47.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 19:47:32 -0700 (PDT) From: Dmitry Baryshkov Date: Sat, 05 Jul 2025 05:47:23 +0300 Subject: [PATCH 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: <20250705-dpu-formats-v1-2-40f0bb31b8c8@oss.qualcomm.com> References: <20250705-dpu-formats-v1-0-40f0bb31b8c8@oss.qualcomm.com> In-Reply-To: <20250705-dpu-formats-v1-0-40f0bb31b8c8@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=8396; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=8hnAM0lAQzZe6nBJfHjACLVW7VM+NAqqrBj4BkEu3m8=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoaJI8Gew5NVV97vMySFxySmJhHhabCMS6Y+Nbg 2pmezhrrVyJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaGiSPAAKCRCLPIo+Aiko 1TT4B/9wNslGM0i5bR6B9pm5dwtRONclTodij5Lbx8cDKwhwOzkwTBxprVxZ9g7c0cVOO8NWYRb 6Nm2PacperxXpkslGLowvxnRzuqUcpgM++orPu32yC2q6vzIqwymJfIw0lXWWjJlU0K0ANR2v99 XUuofE+68vu9TgwYvHsB1LjqgJVmWpd88T2FTVxvqpYfr8DpilJ+yyD8pDRz2PzIZfy7vyletEU j+YBejfIUW4qhNyTYgHChH5UkRBuREsLVmCboth1mHifw3uJJPvU6RA/YOw0qaoMD8G06plLZFl UUywUi0i0TtEkuGyS6/wRwCo8PAl/zhTItV8lwnlWw3bpaZk X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=CY4I5Krl c=1 sm=1 tr=0 ts=68689247 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Wb1JkmetP80A:10 a=EUspDBNiAAAA:8 a=egvvE6OTd9odGDPIBgMA:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-ORIG-GUID: oyyo_QjW1HToaTwSkDmV-6pYnr2Tq1kD X-Proofpoint-GUID: oyyo_QjW1HToaTwSkDmV-6pYnr2Tq1kD X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzA1MDAxNyBTYWx0ZWRfXwQKcg8gWnBuj YsEwk8UzY+55Tt/OYrF2w3O45fgtjBZ+Ro7RppYR8rx0s7RqM8h2YCMxsCpR0DHjYwvZGvunJ4d eyCwa7xgC33HZMmTPWTa+YSjxgNFVBzTtN7eiJZHk6iL5tAHKfA24y6WtDco6Wz8Fg0UYhqG++U aAcDA/A2QP7OMhIjUGkkcMUr2bsq+qWeK+z4n6NyB3vTIz/hDaKZt6QW2oIiRIfJgQSvLSFxf9j sfNPKku98UvrlEhXKCYcMq7pXqDWXMmGTsjcY9OLfkLSC1rSxK2sqJXA4UyN66ItCoIL4DHK0jm ylymmdKlRGgZyWG/5Vq0fhmhDWaFUinqH4mtIqgCBC4qObZuUJvZijuBVUTC5Uxt2RBaQnbgbTM KI9r792sp0lKG0sWtZTpph8bPTQZ1W+BE4ZwMIylZH5RvxoZsNCS9SiqHOTvkRSDm8O8JzZw X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-04_07,2025-07-04_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 mlxlogscore=999 priorityscore=1501 clxscore=1015 lowpriorityscore=0 mlxscore=0 phishscore=0 suspectscore=0 bulkscore=0 malwarescore=0 impostorscore=0 spamscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507050017 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. Signed-off-by: Dmitry Baryshkov Reviewed-by: Jessica Zhang --- 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.39.5 From nobody Tue Oct 7 21:26:21 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 8369C26E6FF for ; Sat, 5 Jul 2025 02:47:38 +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=1751683660; cv=none; b=Prs+cGtYgLIuEjITlpfvBebIadJuJDNg2fUVcGw6NdLXe4t+3aq2hkUU04CpG5pdJ576p/ICJmKmQAO/bB/1AGJc6p3lClXLf3g4HEyWJDKTocfVfxr0yP4+pZv0uiJATzphGSPtCFJdHLkTPyrOisvRZLchPRoQxf77+HLYQYU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751683660; c=relaxed/simple; bh=JAGOFM8la5DTIWskbTlo0vYXln0WqvrLnvfuKadWghI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=PImYb+HXIP2IoSsCG57jQZaoTKkbHs38EHqNKZyOQbL6VKYZUKs7DgyyI1oX+QhKD+ZcX9GUolkMMzL7Aw2oRnZ0afx+MqaeYir8meg5ft0XKVKWqwlTupQlVwEawKJX5CxoaqXtpn7JwUlXbBP4+AwYjQQWjPYQ58FAaB/EE3k= 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=hdOqqPah; 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="hdOqqPah" 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 564BWUDf010373 for ; Sat, 5 Jul 2025 02:47:38 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= YjJnZnfSPLG4pvx+jZTbK1RNBsIlVDEM9jAJuI18oAQ=; b=hdOqqPahytmRPfkd Hk8x0GJi7DePyJGdAaFoYn03bxn8ZzIATRYUXWg1zt83nuFWRZlKFLKmryvbRh4G 5h/YmYjju5KLTuMeUlXKQDCba/d8x2leE9LP2hIFRwq+5aowdneOXNy4s4QWC8Jp SuZMI3YkRIbk5tX6opzwuW+WfJCKkHtcPt+lAG1M2hbScpzwSLVjDSXkz5QJVHs0 Ty+4uVP0bAAht1XcN/0elm52MJfxrXu7jjgZejHNQ/F2SveTTY17fKj0OyUhK5XI O2rNU6u92Tf8o4q1e5g9U4DBtjLuKS5silUd/eyqu6z0aziAM5XWbQWRDaJAT4ja O/0dtw== 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 47mw30ja46-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sat, 05 Jul 2025 02:47:37 +0000 (GMT) Received: by mail-qv1-f72.google.com with SMTP id 6a1803df08f44-6fd75e60875so26819126d6.0 for ; Fri, 04 Jul 2025 19:47:37 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751683656; x=1752288456; 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=YjJnZnfSPLG4pvx+jZTbK1RNBsIlVDEM9jAJuI18oAQ=; b=HiQ4ZE8oM6ZGtpI1JT1zTbjsQbNrdtXTMWwOrPwNaRhqBcKOz+F9WTh85HB8lfsQhI GF3nbDYh3/rzn1hmHb52so5fWtYfZODeLTtXC9SE3N6T3kKU6/dTIiqx3tGxfLKNrgnt GVWqsKQtklwMo63Wt6HM8h+XIrKzpMHdcKSrWRxAwnenF4CgZ4yPFUbQkMOniVPI2ddr Lch0oM8+1zcCE1FAlE3nrVAvi+vgZW9IUyBCD5spSkCsc3TnodltCGMaiKxa4kcqTXSk qwLO/PZYhXI2SElRFwhxffgN9fchR6VzzfiK7rxBnRSxF6/RMNyDqEN1NjykxW6X9lmE WZxw== X-Forwarded-Encrypted: i=1; AJvYcCVu1kTT5Tb/P9zMMAzEDLq98jCH51SSoHayiMdXlCCfu5pCIybOanQutOF86eOqBR4EMJeo+zxuhguSncg=@vger.kernel.org X-Gm-Message-State: AOJu0YxsaeSzWVjeC/DFrwuEzllEgV6IfQc5AasUl/THL1Qyn4+wU9X1 CPBGXIIcLrFRV7sztxOalDxbTUNGSnzSZm0DbEIxMWdmbWt+T2QOgfGq1Nnr+uTOgPOUDx4Q/rT 3QKz3xTjHkO4ttIBX+URywxcKXJJjie9bUyJn0cbIRQ8dQj6PzT2JUcihU0T+kTTTPWY= X-Gm-Gg: ASbGncvWwywPfUVElNrKPuM8dEuH2Nu1690b7EPFhaa+mhnA6Qq43CjfU/GlLhBZUMg 6UqpbkQwWDuq1wP484Fq6saM7fJ7NoxdbY9gBB7n2eIZ8FmwIoZq12elz0NBgZb4gGnNLUIwCkY p930DTHzVh4IhHcMVFCIhOz4H0FAhlLZpgomJqxEi22nCEdN7qrEDfThh6YPK0/DVO9M5Zr/OHZ sxXrL5W6TnZNX53GyKq2EYiNExLE8oTT6TRYPbbeUAnYSLJqU/tvUo6KmJyxAksRV7liwqFjHDG FEHmAWY7jJYHsgdBRfapgLv9iqJo7E41zL4TMjFv48Obtrt/XSDGetrYLQnACbxlZ4ZPpoqs7Yw 7WNZH3BUwK9WkXIFHHRUUVode86kI1kCVVyY= X-Received: by 2002:a05:6214:1cc7:b0:6fa:c512:c401 with SMTP id 6a1803df08f44-702c6d96b97mr71200196d6.37.1751683656078; Fri, 04 Jul 2025 19:47:36 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFr+zf2cVpxfMVy9rlPRwx88L3ABFyueYOPFJi0i6uvZr/YMhV3c4ZR2j1bn+zUaUufleGxCw== X-Received: by 2002:a05:6214:1cc7:b0:6fa:c512:c401 with SMTP id 6a1803df08f44-702c6d96b97mr71199896d6.37.1751683655542; Fri, 04 Jul 2025 19:47:35 -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 38308e7fff4ca-32e1b1418b3sm4092411fa.76.2025.07.04.19.47.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 19:47:34 -0700 (PDT) From: Dmitry Baryshkov Date: Sat, 05 Jul 2025 05:47:24 +0300 Subject: [PATCH 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: <20250705-dpu-formats-v1-3-40f0bb31b8c8@oss.qualcomm.com> References: <20250705-dpu-formats-v1-0-40f0bb31b8c8@oss.qualcomm.com> In-Reply-To: <20250705-dpu-formats-v1-0-40f0bb31b8c8@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=JAGOFM8la5DTIWskbTlo0vYXln0WqvrLnvfuKadWghI=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoaJI83KT5w00Xayj3fi0EP9gVV0Ausowy6PFP/ 4W2D9zi5YuJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaGiSPAAKCRCLPIo+Aiko 1aALB/0ZCZWX7K2Nz3Qr0BsZs4CKjwKdKp2XY72ADxM43zzerZC+PTF3Es8SKKI5yflSD5FJSMq q2nchnMYD9hyP/3iBbPLEsNS7QZgHDlyxJMkHO5vdhAftifyoW/7EajdiqGM+2CufcM7JiA8I9P mM9he5y1n5+Vo5MSQ+rWiOsgjPPRXyfFKL3d1kLgrZ3baKv0Gk+EKxngrVKc8nSN1+/Nqpeqz6a yCccHJ8gFVwq9iVmPnz5Q0OzifAMqzT932QnBl5TY8GyPK+5ztjwrX2hFN8iDPs8zLtjClzOqQd 0QVNZncfdiqSKndWO4UFOf3YZhatf8gc0eVibLsqBVE1Udog X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=CY4I5Krl c=1 sm=1 tr=0 ts=68689249 cx=c_pps a=7E5Bxpl4vBhpaufnMqZlrw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Wb1JkmetP80A:10 a=EUspDBNiAAAA:8 a=dmvhxJvSUNPaeTh-JWgA:9 a=QEXdDO2ut3YA:10 a=pJ04lnu7RYOZP9TFuWaZ:22 X-Proofpoint-ORIG-GUID: u7w7XWx1kmTzg1GfMpm8ckarAg6-l3Oy X-Proofpoint-GUID: u7w7XWx1kmTzg1GfMpm8ckarAg6-l3Oy X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzA1MDAxNyBTYWx0ZWRfX5ZkX7ncPnoZH VWH0VuZn0lPgJKVkThb2oSEi6CsFt2MvUlQ4LeJ4V4DLbNF2PSRc96WtYuMKtrmsgAtTGVoJQA/ xnrOcNhlqmLno0FkSPE6vO+QfG95NobP8pccQ36Msv34PLOIcECoLnEW6gEqmsOkFZyYti9HfHu v8kFYu/BVh7ONHTQOZFKAWg8ZhP8i8tPClEaYmjYnf61MU0DKpNI9jmZ870Kevnrh380CtUqd6I J0HZhGNjusGFzTYGJJRCMhdbRILmovS52w4W4P6ZYQagZ6k9ZH7r0bAZpoYONB9CXYz02PHZMCW U/drmj32Gqe+PTU43xQH3AFcuvl/z25WK7PtGrtAiVSRCUajDrVA/fFiGW5ufbtmFe7CqWmfety /orrP45Fq64IlaYoFaKEQW0tu3ObZ6xPaU1N8qv6sbM3y1BqSUaJQ4xWBdwpS+8j+lQ92/7k X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-04_07,2025-07-04_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 mlxlogscore=999 priorityscore=1501 clxscore=1015 lowpriorityscore=0 mlxscore=0 phishscore=0 suspectscore=0 bulkscore=0 malwarescore=0 impostorscore=0 spamscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507050017 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.39.5 From nobody Tue Oct 7 21:26:21 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 721DD280CE0 for ; Sat, 5 Jul 2025 02:47:41 +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=1751683663; cv=none; b=ikHLyxzIVY4MYIm1lIfuqEpvnvT9shiA70UdmwTclDe31a6kScd97CQc0fhCbKs3LcEi29axYYRmatzJETpZiOa7yNGuP+wCnxmTkDrS1oaecu7+sJImQr5jJ8T6ZQKpAgiGO4Ap/tNjPm1MKafbUR2B/EDAv2YOgh1m5yyl1iQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751683663; c=relaxed/simple; bh=Ys7Z7Kn7IpicXADUQHFTXSQLzecLxokw83FrLPh30bk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=eqbvimAyIU3vMRWuyXCwMoNftLeZoUQV1PEhqhcHxoASp11IOv/+bdXzmWvv4zhfbLITAdDxGl1rgV/GCpAFF+el1k+494ibf439S0BTFNkN/ZKkjxiCrNhRLnHJdF171pD6luB0mw5c6W8OGPGHG3qqKfsnIPYuMc4yJp1sCmI= 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=CS0qE4OK; 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="CS0qE4OK" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5652EDJ8024445 for ; Sat, 5 Jul 2025 02:47:40 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= 4s+MSjvTA+3MePRTfCYZPmppEZfrFaoQh7M2mpF98gM=; b=CS0qE4OKxJR+8H9L BmnOlW0WjVZgEQLEcQ/c53pZ60fc7h7CQpcDfYEeVOmHgFEgXfm22pdCrRYeuxIU FxQ/b0BrwNp3v8qf7ZZouihEwkBSDLORnJ6rGLiwFtoMcRCF79e4Q/ZLU0+oEdZK uDxjnPDNOKcQXpASAl4cZiDMbkPVlxwNroac8luBdnUxHRL7K7SILt4+njLU6zE1 g7WUkDoNDwQcTvUBAbuK3nA3uLkL4saKHfwkwcXUNPvvn7Hvkt7wftAWiyZbsIcn PFCBQwzDCGj25dNqCD51+rq+qtq80KwY0fI02SV6lNE6/yNX49sTJFMrNx9Q+4vO dzIBYg== 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 47psdq84hs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sat, 05 Jul 2025 02:47:40 +0000 (GMT) Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-7c5e2872e57so220093985a.0 for ; Fri, 04 Jul 2025 19:47:39 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751683659; x=1752288459; 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=4s+MSjvTA+3MePRTfCYZPmppEZfrFaoQh7M2mpF98gM=; b=q43vaQobDe9XLySR/41BkRdmcVKACUkcJvg57+Ma+nhHholgfkLcRLJ/E+KR1q7Y8y lxbHfmWTiXCq9aWE+DTn+jDIcStOjaOTEOAtIqmj5kny02k1U/iaPh2VMnS3phFqtGQU 9f49hIpjBKFk4pi2yG7OZA32UPkdplcVeIlJMVfLnkSALTTQBlirpnjalBYu6LLOiLIK Ehv83xj2gRuGlrjDpPhC3MK5tYKYPHD0DjDkaXmXr2JjRw/kmr4r12GrBjTUAJkJGCl4 0U2w+ggtX/pfVonekNXfphllwkNkoBGvQyKGYhc9p64wAw7dXwuYAH+PgzYDPay2P26N mgNQ== X-Forwarded-Encrypted: i=1; AJvYcCUJTk8zCLOE+K3ijGSylm1D0IJRV3bcEXdtor1XY+DYadpl37xKaJys+ovoHrFuEhBD5mQ8Mx5shKcEYno=@vger.kernel.org X-Gm-Message-State: AOJu0YwkjwBycZ2wltdFe3J42Qmnd09ZejBnzLDkz2RSuNIRKkPsCgeM E+1e6wUFH+Ih7/Gfi5Ld3kE0SjkJPHt37bNftiDj69D2BgxUCGEbmKkPk5/soaRV1ww/bYbuQ57 aUoTQwpeBQT7L93cVT3CRXj+uRqwhmgj08biR6Dh5j6D8rt3bELx6ZgtIr2weQXOeuEmEfnEfkj x/3Q== X-Gm-Gg: ASbGncuxCILgPSlqWQ+0oun5xsNb5Y/7zpRL5SwnFrrf4zen4T0KqHHpdDFJoHexi4G nTZJ7UIMP6NKBcmXu0s5tQe0/J+1b9o7rf1+B14TbETJUvHlo3zH3Ta7BGtO3aV5tLl8esycuWc J4VQJITsngjUWIrj0B24bgN2MJAjv/Nz8NhSft/uVzqzJGs/umfi8ekUrZrLLqXkASBn+L4QLtL CCzUjbv8XHdCmP86pxQ4V3hkw3TS3uZuOPq6gpwit9mm7UqjAG54OMyYxfhZeA5DQ9EodAvLVgV xTamQ10E2FFuyYiy2R+dE4pgVjUQV0YQklA0AqPfzb7/mgdgqJwkP4UrZn4Mn+93gTlh2KTm4Sw +21WIXFXjUKGsAsS5M5qGLWbrDrdSB78JA4Y= X-Received: by 2002:a05:620a:2913:b0:7d3:d156:37d6 with SMTP id af79cd13be357-7d5df102b4amr604839785a.6.1751683658759; Fri, 04 Jul 2025 19:47:38 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFz3mVn+ryYa5afaVTp7LcwhBfN+F01PPD3EQ58QXtfy9B/SKKE3QNU6Pu4gCJujhTtpPREOA== X-Received: by 2002:a05:620a:2913:b0:7d3:d156:37d6 with SMTP id af79cd13be357-7d5df102b4amr604836085a.6.1751683658176; Fri, 04 Jul 2025 19:47:38 -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 38308e7fff4ca-32e1b1418b3sm4092411fa.76.2025.07.04.19.47.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 19:47:36 -0700 (PDT) From: Dmitry Baryshkov Date: Sat, 05 Jul 2025 05:47:25 +0300 Subject: [PATCH 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: <20250705-dpu-formats-v1-4-40f0bb31b8c8@oss.qualcomm.com> References: <20250705-dpu-formats-v1-0-40f0bb31b8c8@oss.qualcomm.com> In-Reply-To: <20250705-dpu-formats-v1-0-40f0bb31b8c8@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=15137; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=Ys7Z7Kn7IpicXADUQHFTXSQLzecLxokw83FrLPh30bk=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoaJI8GKkSFhy7Xtn6tJpCt9lMtAxCXy2+FsC72 rWL+gwkk1WJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaGiSPAAKCRCLPIo+Aiko 1eEWB/9WnofY8sZlQhAZ6/h5NWowFZILMfYcaCVNttD84mGELL7OiG/Z8uFqhhd5QqY0DFCE1CX 4n7/b44dDVexKSeBBXz4QYmPsAwFc/cntmAX/Ey+jG0RWVohV2eONc8X72JtTMMMlabv0bOVwTB GU/95f+wnYNamDe8XVRFpt15CJ0iqZgW4BAHd4EtbZVMX0U2yMIzKy8W13kAIZNdLkAcIEuoB3k R7oGaUAKvGbX0bQ9ojM0qDQqHQrGWg7wvplJSejFF2sT+pAtgoETv/ieuv4QQ19N8ikRZFoKjll YOEGj6E5stkKw4MxZJJA/sq7vfYgZTSS7bAG2hrfDduW1pXq X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=ffSty1QF c=1 sm=1 tr=0 ts=6868924c cx=c_pps a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Wb1JkmetP80A:10 a=EUspDBNiAAAA:8 a=SE7Ho6_bQ6tgKpEGU9wA:9 a=QEXdDO2ut3YA:10 a=PEH46H7Ffwr30OY-TuGO:22 X-Proofpoint-ORIG-GUID: ohxAVIXaQCGmfdKsIgV3Rs9oP3NAmfRQ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzA1MDAxNyBTYWx0ZWRfX8uNXom+JXEFj t+xG+x1YrdGf6/xFRueLRfDheOmh0vXTNieYuNcuD+cBi9N53oBvxFVRz7kTiBzlIOaQfLLH2vz jG2QenmyvMI0RiULiScr26anHQvgM1jhVlwQY5uunOOPHR4PcBE1TZds5UMypjXqrFjXfQelX2h XiXnYNQFHJzPgnYCRQjf/rKElL6XEqNl3mNrbbWnEiywlGi8R+Xksuy+t+8XYoxxrhYsXBZaDWU 9nsRjnpuzPIevoernPYJwdkvvrtBH9gCA96a3iCyxTMkC24Yqbkrn0K3YVhopRlxrvnkv1jbPXa kUU/EKH+17Y7JiLDjOIQlKEgXoso0m2pmf730mwgfQdIaCvvCJLOdElPJosOD5MIPtyU2lSHTn0 vGU/rZYjONPKz/NRZa1QbH6icLSw8GhL40FX8p/IfLaxeq1UeuwNwJSMAsFZjK4uw/si+Qk+ X-Proofpoint-GUID: ohxAVIXaQCGmfdKsIgV3Rs9oP3NAmfRQ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-04_07,2025-07-04_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 mlxlogscore=999 mlxscore=0 bulkscore=0 priorityscore=1501 phishscore=0 clxscore=1015 suspectscore=0 impostorscore=0 lowpriorityscore=0 spamscore=0 adultscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507050017 Define several additional macros, capturing RGB format classes, in order to simplify defining particular RGB* format. Signed-off-by: Dmitry Baryshkov Reviewed-by: Jessica Zhang --- 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.39.5 From nobody Tue Oct 7 21:26:21 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 8FEB728688D for ; Sat, 5 Jul 2025 02:47:42 +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=1751683664; cv=none; b=SfbMh/aLOOQPGMWGPy0vq6EeOQT6rxH8Vm5pw1LcXOLRlsPGU/ifJasRqTAomZg79kCKSV3n9vPgvxbAwc/9X/KdCS0j8uwRfw+e7C4WpoLoTwR4wkVnQdVKc71oUPW1DvwwRkfZALqEcQOuR2j9VEOESMPFLPk+k+TFMywc0Yo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751683664; c=relaxed/simple; bh=Sb1qbqPfpeBQHLvvRmH0mQcObhTRza3WiqOCZtRU5nY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=HIEa9A3N/lzX1Yl3+XqcXr30d7uD1mo6e/dPcx1QXS0TFQdKtslq/MqQ9a3Mozd6GJ01u9mbNBOac1e9L3X7nHZifKyLkz9MoholHy+JCe4RjO4Sxy5qSOuzcHfwwSiB4lIRdycFikuKvlZyjXi94LKpLxB266K8N/5szInxf/k= 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=XTmFW+gh; 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="XTmFW+gh" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5652C2ZX028454 for ; Sat, 5 Jul 2025 02:47:41 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= i2ctqz8C7Fv58oSozKmoJbscq9Is2yiOi+8iK6eGMbo=; b=XTmFW+ghyDk7TLHR epoaKIjmPjSlcE98Sdc45wgMqA5lYHidLTU2MCMNSRcI3CWmdxj5Ywi7xPOZk0Xz jjSXqopd1aFXrR1Du+A/37IIfEylbUQcuoe3xe1ciwZfPj09X7rn2QVujh/V3ixB ciBLJllh8BwgcyUsj6rSMsB4wqL0N+5CVdPGj12gz3k259m1L2RbQWjMO/fAQY9+ pT/fhplQJ6YXJhcWAZ31rHDfjXlzM0yDHRFwyaLjEJjoalOkKYLcGR08SV8+RxTL SYA7CEJxZ3AuAd2dxsuILB81fbRAWB5IvF6vgAszpYCCSPFxGHlRGzo/ve6t6s7/ eTT3xw== 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 47pu2ag136-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sat, 05 Jul 2025 02:47:41 +0000 (GMT) Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-7d399065d55so172816585a.1 for ; Fri, 04 Jul 2025 19:47:41 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751683660; x=1752288460; 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=i2ctqz8C7Fv58oSozKmoJbscq9Is2yiOi+8iK6eGMbo=; b=Ik0dKK52uPKaORALZXq9x5RcRTk+FvIoyQFjh5pr3X8A4Eyd3nyzaXLIABC6vwEnGi 5++2WHZGZ5DOaZ2q02eZ8mLr4fWooufZxLlCbAcjY2F50CWHFpaqJ5GVaioQWFMrvj+C xw458OyLumWuHXQpzx++9xVrVR9xOfF5rD+IqELL6gDNrsBgwU0PmtviUOsvgSmTxjWs mEYujWIfrVuk1TyOPOqVGUu2W3jToibcHxZyADVDn5SiX4Whv8bserD8C1ZTpkSmd3PN XEVG6eMJ6hfw1K2XxBiMRkB1K06AQbeku1734uUqPcfYjcfZheJbftclasSuBaaJpuAs CUKA== X-Forwarded-Encrypted: i=1; AJvYcCUfjNhNPr1SeChl9pv5liEzpcbs2jjWbniQJSExqW2+EZioj0saXihVQU+V3j7FQ4FzJrwqq3MI//y+2DA=@vger.kernel.org X-Gm-Message-State: AOJu0Yz7Sjep9clPGXXRFQkn/V0B0zN+Tr88EMnhMlaXcehXbwa+lhb5 9hpBcGfCy2CdGKOb+koGX+PhmEbwxjdwTYM7UHyUnPf1KBPrOUSlpGTWM7Co+ExmZThfW8AbMNc eUFRMoTmiItlZBBGSSQA21qq+JBUGkqNKm2A02jfUGul3bavxyMse21rYpFISZfcr+npueCpntm UU2A== X-Gm-Gg: ASbGncsqXBy7Dc9efPpjoxIvxjZIYYzF40ve2hYtL17GywcUfpqTdeo7U4HYTn6rsu0 joob0KwK/97oea++XJb2IYRb7HEqLZxAJL6Udpe6wJ4tAYCTJASfhGOeSMAZ+c6ZO3o5gFgYdxb klf/aeHQLYjdsPQY4LZq+nmvsC1fDck1VIDajdnOUQbv0fdR0jtYVmnB8AH4P/JPS7mDXhfiQkd AbCx9CvsTmMc5j3rorgKWevjK4om0b2Pc0JDIEBdJ0vBoeL1NpLItEGbZOHKQ4d6XET7EW9hnFu XWwnoDos7+Al2PIfrjumCX6VcNSfDkRslqnibAiK4LfxR5NZAstynVSAk58a6gpyMSzNLr28f9/ vPz2qc9w+Nys5VnxcFzShczDLGAApkAgLtfU= X-Received: by 2002:a05:620a:5be8:b0:7d5:d2ac:bbf7 with SMTP id af79cd13be357-7d5f14ee3dfmr154599185a.36.1751683660183; Fri, 04 Jul 2025 19:47:40 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFvQf4vFSIOxg2wCCgnwprnE70FE9+wlp5S+oMHsCgXpl0NmhjkZssFI2yJpD1cnIfQXIJRIg== X-Received: by 2002:a05:620a:5be8:b0:7d5:d2ac:bbf7 with SMTP id af79cd13be357-7d5f14ee3dfmr154596085a.36.1751683659694; Fri, 04 Jul 2025 19:47:39 -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 38308e7fff4ca-32e1b1418b3sm4092411fa.76.2025.07.04.19.47.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 19:47:38 -0700 (PDT) From: Dmitry Baryshkov Date: Sat, 05 Jul 2025 05:47:26 +0300 Subject: [PATCH 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: <20250705-dpu-formats-v1-5-40f0bb31b8c8@oss.qualcomm.com> References: <20250705-dpu-formats-v1-0-40f0bb31b8c8@oss.qualcomm.com> In-Reply-To: <20250705-dpu-formats-v1-0-40f0bb31b8c8@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=9162; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=Sb1qbqPfpeBQHLvvRmH0mQcObhTRza3WiqOCZtRU5nY=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoaJI9MF4P/GQytOow2EvJc/dGCvpDmGBAcsCKz VgdwTRSziSJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaGiSPQAKCRCLPIo+Aiko 1YG6B/9NAUZAdE6RbK9jU9oBkFgimA+ochP46ux+4OOAmEWItMSqNpDYWKjtf2Z7deovMGT+XnP P6uHBhPbAcoEMPKHH99+toNYXPokrDxj7u90XdOYRISCQMi9njwA1fcZWuLU0gXzhfLGVXNeCl0 r2oFIDpCN6uL0ASgXi45Sexgb3KgULqT+rKlOZ488hxu7nsO+aTt4QLVdr33B20pB3Luj/WM1/5 MCLhA5THVwT5ZB8ywcaPv+2s2IqG5xQCZFQtox7mtY72xQO0sTxNlwMSmh3R/HZWnH1KRB+z0Ow or4GHQUvjsrEkJ6ceq7A4mdQSRxx6wqDa00VlUDk/WKIlTcH X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzA1MDAxNyBTYWx0ZWRfX6BkyxUNjq+51 ty4LCl30U5O1PthH94rn6OHE4APttmulGJ+7YBlvbVJo3PChfXBUoSWXOjRevKPeFXWCO41ofKo Y5n9qQwYzHzZMCJMM3eUDceOW8jaLsTKAZU9PJRo4w4ztl84OcNuJrVhTbs6I6CPFUuTNubDnln jZLX193RUPG+dlPSMceVRV6f0Ub7hvhF2ecDuIii7Popk6bjM8Vd032gcGbSTYGCqOClY41zS4+ mU+BTduclR4uHWkiUk9/ReH4c5jVNC9KvPqaHHwQ8D+iVqH4wY3H2QOxUDfOQQmExUkiPFVsYxo ISr9ygPcoceLT9G54Qz8e+CeFD08cSoZ20HhqZ7NgaYvVEsxRiJnjb9gKcdecNg9eNVoY2VL5ps ceRuh7TrViwsrxARmVnpMDVX0Kyid9zrJK3Ed4kTLTRcr+GAeZ/yfCV592EPlJXz3Rm9soe6 X-Proofpoint-ORIG-GUID: A4P6sPqjsyPb3Lrp0IU6G-A99x-_k7Ob X-Proofpoint-GUID: A4P6sPqjsyPb3Lrp0IU6G-A99x-_k7Ob X-Authority-Analysis: v=2.4 cv=erTfzppX c=1 sm=1 tr=0 ts=6868924d cx=c_pps a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Wb1JkmetP80A:10 a=EUspDBNiAAAA:8 a=BVuc22GF84-4pAHDYacA:9 a=QEXdDO2ut3YA:10 a=PEH46H7Ffwr30OY-TuGO:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-04_07,2025-07-04_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 clxscore=1015 impostorscore=0 spamscore=0 priorityscore=1501 mlxlogscore=999 bulkscore=0 adultscore=0 malwarescore=0 phishscore=0 lowpriorityscore=0 suspectscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507050017 Define several additional macros, capturing tiled RGB format classes, in order to simplify defining particular RGB* format. Signed-off-by: Dmitry Baryshkov Reviewed-by: Jessica Zhang --- 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.39.5 From nobody Tue Oct 7 21:26:21 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 EC93C2882AF for ; Sat, 5 Jul 2025 02:47:43 +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=1751683666; cv=none; b=ssK4OVKoZLVcaPrqlcb59LYL62q9F1Y2GsyFdXSRaP4mhIIUn2k4JUmnb1Jl14wSZAz/ZuIey8vKk2gnm7H/xuaP1OaG9vxWR/qFHnw39CPS0OM5kL876kdiVzAqGbohW6HGmIKs1tP59hBlFe8eO0JWGLEL9lw4IMqFW/xiNnk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751683666; c=relaxed/simple; bh=W+WRtGTmctGrtw3/m66JfBKmA9pR1W/PsjD+devdzIU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=LNiPiLtu9edMkq2LacPatNeLmQ1S72fmLkv9A3hPHPMkMUJT8q026PBQiPC1Pna5VfIb+vlPFCm/mqCizeeSCrB1oLH6kwStQk+jUtNeREMRah9KpFbIPGYezyLQGT7V47lSO3Z9RXhXD5jGDMcFvBbDquuoQt47PcKzfjrq82k= 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=NU8lhkVj; 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="NU8lhkVj" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 564Nnfc7029918 for ; Sat, 5 Jul 2025 02:47: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= oZtASNSKNmQD1TnWT9EC/LsaR2+X6zAje3f7Jf4pays=; b=NU8lhkVjp4lPN3jh blozh4p8oAwEgrkAs+6KkMBJUUDw41vBRZPEuyImeCpC8TZB3Yrg+v98bPfyrF5G B+heNsixEK4b4eInAw+8sAbW4ueWGpNU6+wyzbF7QYrCnOvm+eehhKmDQnk8v7+1 yEKY52+lOLG7udLX2Th1DCHAmiaMOY75gCoxgRIu/gNwBzA3VM8ruBKGTYc0fopK XXFqbF3IPMDcI44q2ViPe192FkuchbuFfXs+gkIRafTfB7Lo6U7j1JwZxJo0dIiV j73tQcBVKM3oJEFqLGc+CCBpYcerAtjRRnZWXj2TG/kDgaSYdQTQbOdpbJatsZr8 oeU6Tg== 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 47j8s9w7mg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sat, 05 Jul 2025 02:47:42 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-7c5cd0f8961so258646485a.1 for ; Fri, 04 Jul 2025 19:47:42 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751683662; x=1752288462; 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=oZtASNSKNmQD1TnWT9EC/LsaR2+X6zAje3f7Jf4pays=; b=n7rkWVtX8VO8+7xpU7LstGkCRxuEYn9joRiWNUxu4wT0MAo38wLwf6MW5CopCQXh3V xtmKVNhPOOZ7JNuzWggsYSlGub+b0XGx6bs3X5r2O2Ndk1vYT5yqUyiU+gnxFQgmSzuC SwQhpWDz+huxcNzHrhkb1o0WmG4JGUMP/YWac/iH/9s9iCtS5Y07GKFY8XphXP9hKKsW N5URp4MmoJCqrbBghG5yFaItkT7f/OJa6NJ/nl4TpEGuTYDcXqv2nqH15zXfS7csbjg+ MXlimYDyrkgBMEQFeCm0fHRXc+bGU62QtOxjd+DOHWiJQnz1WasktQeNIhQw7OzdPOcp lNOg== X-Forwarded-Encrypted: i=1; AJvYcCUuhpU5+MqoIj9vqOfdlgcuAT+o7sjGLmVUbtjw1dESxYpvEJ3py5HxWgve+Zi1FS5Nl7Oqa4zaJs24yog=@vger.kernel.org X-Gm-Message-State: AOJu0YzrFUx+LvwpyboUY2BBm4H4NscSD8xhi+fqBfv4Nj+hWxoRtwji kcdr3yYhdtIzXE+ZjqXB5D8mBzUXL++2Srm9jw/ayUhVhFjossJVxOuNiXYQQpJ2ojj6404hM+E hDDG5fBHkfZ9jx2AqPee4NdhDG8IC2DtePQy7yJDlF9BoMbLqU8olDujP3sdExTSMQ4s= X-Gm-Gg: ASbGnctThF5cY7Sk6c7G8emxQB0qmwvFehOqffOJStJxbA3bkGAGh/6EJyWRA/4xN42 8X1a+7PucKGybdlq6zSHEVeuHftdMKEep2VwOI801up+B0Q0Fy5ATPCqg5FtdVghccpRzBuxMkp DB0VyNY6bnSKXux7f5AcmzQ8Il07MpQAk6sk7wIwURqzSprg+GIdmh/T4gL9MUdUT9uUEBumcSX Rnb3eECzcvwT9odQcPspyji91CxH53hl7xZtQ1FiFPWU86+O/XkMqXvKVfMuVelVAIvRA64Ct6J nKq5XcXwq9LjiwmaXVqWWulL+2TiNLkM4KWlYmIkMH5DranXvtZ13QG7wvPrLd2Z7/fU9+j4NNR 1iz+IM1cdt4gexLFT4aVgyxB8hu5cymq3pdw= X-Received: by 2002:a05:620a:bcd:b0:7d0:9ebd:821d with SMTP id af79cd13be357-7d5df0f57a1mr642847985a.23.1751683661939; Fri, 04 Jul 2025 19:47:41 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGdbuHlLJELfruSS+SxxynLXNdqJY020a17c77f5wQOJdlZWvZKI1XK3A3BOmEPeNcBY+YCVg== X-Received: by 2002:a05:620a:bcd:b0:7d0:9ebd:821d with SMTP id af79cd13be357-7d5df0f57a1mr642844985a.23.1751683661501; Fri, 04 Jul 2025 19:47: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 38308e7fff4ca-32e1b1418b3sm4092411fa.76.2025.07.04.19.47.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 19:47:40 -0700 (PDT) From: Dmitry Baryshkov Date: Sat, 05 Jul 2025 05:47:27 +0300 Subject: [PATCH 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: <20250705-dpu-formats-v1-6-40f0bb31b8c8@oss.qualcomm.com> References: <20250705-dpu-formats-v1-0-40f0bb31b8c8@oss.qualcomm.com> In-Reply-To: <20250705-dpu-formats-v1-0-40f0bb31b8c8@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=10545; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=W+WRtGTmctGrtw3/m66JfBKmA9pR1W/PsjD+devdzIU=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoaJI9lSJypmT/pVMDGKaKDEoyU5tP54H8Fnpex IMJ/07rxIWJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaGiSPQAKCRCLPIo+Aiko 1eukB/4vqUjqu0wnNFoF2VUO1FFVEqefOHJ8Tu3Xc9DodXc73Z4W/nw7FwIF0PzFWKkCZAMKPAG qwtbubcPasPJV3bbffZReb1cAwP74H78S3Ir5PLC97oebpFBVXrKSo/nF+uPOhcK1VW1CgvvjIo 0iPSo88/Z0WEjJ7cc9M2PFGJ0LaBH9O9qTyVvzsi5TY1vogEJJN2MqN8ul/988WCQ37+mlBVmQz Pr/00/P3e8AMK1okAn74MR7DlAzfJLJwTJ4Zhe3Z/cmxJHP4EzywkBl1ddg+y45ljEizXMq+5Dx aq7icbiFI+TG4YNT+u19u709MEAcLtcQCjobzMuaoaMcwc9q X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=H/Pbw/Yi c=1 sm=1 tr=0 ts=6868924e cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Wb1JkmetP80A:10 a=EUspDBNiAAAA:8 a=J-CC3KfA7NYzMh5jGAsA:9 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O:22 X-Proofpoint-ORIG-GUID: su9qubpd7CDYZflRooOgo4T4VF2NC1CT X-Proofpoint-GUID: su9qubpd7CDYZflRooOgo4T4VF2NC1CT X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzA1MDAxNyBTYWx0ZWRfX19FPqmtz4M59 yJoUVgP88Wzj/P5MqYqMSD1yhpIC4yd/FYxYCY2/4V015kTlBn/leJo57b8ecfFBZrrRGJh1dCM g//vUzO9PBsiqcNJuT/aEgmayNAcxuu84d6ApL76P8RoDsCshJac7uQrwQmXcKQSxtwBaRTPPYY sEGS8btT2DVmVEJZ75rGSUtHWaYoukC4OwXs2ML9IoTnRK63d3jotbRlB3hRxZtgFKzqjovVKfG JeV5HmOx+16iiSoadnVubeQeQJQPmc4jyO3OAlG4bliRuAgKiwANqRBfCuTi4OA2c9NM7f+XiOr BtRwaHjaVUpnHRQTeKAAQVY/epMY0i3MffTyr8+kpgTy5EBVssyOzTGWrVVL4zWQUzclJn0jWL8 63blwnzYCc8t45M/V+dCGQ3XzSoxxlI4qUvBdXteQIr+J0l4d1+ZoL9miMzH2SuwmcXnm/JU X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-04_07,2025-07-04_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 suspectscore=0 mlxlogscore=999 priorityscore=1501 clxscore=1015 mlxscore=0 lowpriorityscore=0 spamscore=0 adultscore=0 bulkscore=0 phishscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507050017 Pull common params of YUV formats into corresponding macro definitions, simplifying format table. Signed-off-by: Dmitry Baryshkov Reviewed-by: Jessica Zhang --- 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.39.5 From nobody Tue Oct 7 21:26:21 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 967D7274B35 for ; Sat, 5 Jul 2025 02:47:45 +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=1751683667; cv=none; b=LLim/NdcRYQDbBNqa4LqMRbdENSrfMx4/b5WSVaDlgrvBsSSAx4QAJY0ngPvtZa5pEYvz4Ipd1UbDDyXDeRVLfG1G7JDV1EH2pYWT8nlKokOVARESqWz0Brfmn+LPi8iLjm+TlA60npk9NtJxvBwBnqmuamKhOAzitG1K7/4E9Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751683667; c=relaxed/simple; bh=tBTRVQReAX9n9KrkvZb4yrkMs88kXRzSL6ZE6wG1jPw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Q/7UoUGi3mukU/LcKU+I5rhmY04TS8jfb2fHEWa4h3FI5VpEMY43b+45UcbBW0Suchc5P5BOG7j9mS5/n4TFXG9Ln5E/mq0qo9PpQzDJAw2QN8q1EjCt1gVGOd0eN9K3cyyaj0tpF3amqwRlCMpbDGXSwVU+em3JpbZ5OCpeDPs= 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=bE30fd7f; 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="bE30fd7f" 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 5651Svdf001018 for ; Sat, 5 Jul 2025 02:47: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= HKzndPu78T9KD6qlOnp0vaK4lOncIgXRX0HdtczdfIs=; b=bE30fd7fNT1EQ728 mx1VRIfChUrqBb9fDLkhcfaFEMq5OsGiWcweJYEVc9BynSVTExFOdNQpxvl0nhEx huhS+7Y1215Qnh61TcYytp1PEYFg3Le12WowqqKAy8c2gXOiu80Jx0weg7dcI5hJ oQV8js6mk4x84gNc0bvRLZT2N/yYmB6LtM29GoZjxoVaUmFglmT7wcIkY3DG1qtk DxGuTsqXcte8+NFYwho22nIJJKhDroiiH3USR3I5hW4sL1dKqLcawl7RglK/S4x9 WrhOdvqeuH2DN1wKN+59jV8OJgnj8xbKfBBMmg69xQsZtVjYbMIG6PYsin/CTKwO 3LtyUw== 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 47j802cx10-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sat, 05 Jul 2025 02:47:44 +0000 (GMT) Received: by mail-qv1-f70.google.com with SMTP id 6a1803df08f44-6fb3487d422so20090996d6.0 for ; Fri, 04 Jul 2025 19:47:44 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751683663; x=1752288463; 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=HKzndPu78T9KD6qlOnp0vaK4lOncIgXRX0HdtczdfIs=; b=RknZPSLtkFkNmJpHh0iMrGUAiHc7q21u9keTFWLOJeFQ7iIflIaTquAaHw+MSADE+B aDQBlRyS/oPTVr2WMysNC7c3KPuRYkbEi5uSNFcENbzvSLBGCLpt2TCreJ1ZAe4kAQzt eY3rHNI60YJAEa+8L209Yw426p9cBbGzwJx8yqmu0HRRtXM7T2bzTKxaFwYxPMYJgkUV F2TZqeqt22qU9UFlu4/jVKAl4y/lTyPVKYk1SenP0fXx5VSV6Egw1ERYPNCnTViagEKh mZb1oItueqrzQmQ6HGLAY1fUnnI/+jAc+9VQNKr2gyDgIbATBy45SxACZqxw7Yqc92BN trlQ== X-Forwarded-Encrypted: i=1; AJvYcCULxjid8LWKHoeRBnu6UdfErbCO+1fHDHCShOq2cs+41EnusDK1zDDE5EKhHOsFBfMbn+aecULiAabTSYQ=@vger.kernel.org X-Gm-Message-State: AOJu0YwS3Le4+jGhF7/CFbs1uc6C26raCFcQ7sppiiQKB82w7BkHyK/u g0VAibapGHUJUr7X7xre2ZzFXM8R50zkoEZONl+UQfgo4cNQ84PPXplXiibQ/DPBbb7mIl1X/n9 s4hV+Vz4kKe/Fs4z+dK3bbbAPkWznzGrQuKV21CiRooiM9q3fCJLPyOjadmXO5s6e6dY= X-Gm-Gg: ASbGnct0r4zkVi0CuIw5aVzEmwmDtehDB+RbnvxSSeS+0u5askSrNCCU7iKKHN61M+E 6w1YPN93Hw2WNsQSOncnfUyBauIKdUt1dYOZArLNyhXalFORRyp8cqj0ceh5UuoG/5Tosaw9B7h vTVKwBXj/7IzCAfqZ9ASgwg7QdYy+4SgJMsel5wUpCdTSxiwryo4bg50KbaD9IH0UGLCZD5CYGE jwH8xcZK2I4SYOyWPKt27AECnVNfELpiR26Kt77Ygp0kE8Hu3JhVAXYsxip79QQKkfQdHbrMVgc L9PqfYAltrfiP/FLbVaOUfAm9/OE7EBmShbcXSr9Dfecbz0XuSPSAMq4j3Ts0ySfbz7Dii3BTv/ vodyNjCPAFrXlX4gVVAxFbLvTWnshCnaDi0k= X-Received: by 2002:a05:6214:590a:b0:6fa:cc39:ab with SMTP id 6a1803df08f44-702c8bc0d61mr59982476d6.24.1751683663517; Fri, 04 Jul 2025 19:47:43 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFhsBwDPbjwXmMNVNZnztP2icDidDytd6L4/eciNVoQ94oT2wPJEDuuw5S3YagbqjaeFDqrEA== X-Received: by 2002:a05:6214:590a:b0:6fa:cc39:ab with SMTP id 6a1803df08f44-702c8bc0d61mr59982236d6.24.1751683663082; Fri, 04 Jul 2025 19:47:43 -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 38308e7fff4ca-32e1b1418b3sm4092411fa.76.2025.07.04.19.47.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 19:47:41 -0700 (PDT) From: Dmitry Baryshkov Date: Sat, 05 Jul 2025 05:47:28 +0300 Subject: [PATCH 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: <20250705-dpu-formats-v1-7-40f0bb31b8c8@oss.qualcomm.com> References: <20250705-dpu-formats-v1-0-40f0bb31b8c8@oss.qualcomm.com> In-Reply-To: <20250705-dpu-formats-v1-0-40f0bb31b8c8@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=3285; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=tBTRVQReAX9n9KrkvZb4yrkMs88kXRzSL6ZE6wG1jPw=; b=owGbwMvMwMXYbdNlx6SpcZXxtFoSQ0bGJNv7nYwCLTtEXDvuV3MHGbXqX/+37yGTBafoY4WMT cGlRTadjMYsDIxcDLJiiiw+BS1TYzYlh33YMbUeZhArE8gUBi5OAZhIfAX7/7jnPW9kAh70PpKP nZOoLn+ritHDPvy9r11DBQPDbgP5U3nzK4/dT2VNUfRYv+3s0vgVPaf+TLoatcy54JJbuuLaXMO 3vybJeXv77YkXaH/L8+JdxUPf63anXBMTki07xXff534bs2BySm/CA+9187hvej54Fz3vaN/hF+ +56i3Xt7DuzwqyYs9b8pPjP089y4nYQOdo6b0aLa1t/Q9P57stZf7167rnXA//X4v688NaIxun3 Oxl4+H+WiJcFHU6cqnJ4d6Gc3WMPF9+FP83Nl7wpPhsJWP6yqMKXKs/1jEceaVjesk3d6L987c7 t9+1mpNVedbDsaX3Xoy8hbarFf8y2cOHBc2LVvx22pYLAA== X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-GUID: L1_k6aJ1357o6rASCDRLOBF9sxdWeuS- X-Authority-Analysis: v=2.4 cv=YPWfyQGx c=1 sm=1 tr=0 ts=68689250 cx=c_pps a=oc9J++0uMp73DTRD5QyR2A==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Wb1JkmetP80A:10 a=EUspDBNiAAAA:8 a=FCw1dLDEiFPyt24oSuoA:9 a=QEXdDO2ut3YA:10 a=iYH6xdkBrDN1Jqds4HTS:22 X-Proofpoint-ORIG-GUID: L1_k6aJ1357o6rASCDRLOBF9sxdWeuS- X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzA1MDAxNyBTYWx0ZWRfX6RT2eQvO1Zv6 QLEBkeQIu2EaTLf2lBd0pk39CV/BcrHac2zmKYmI8teUDHmLZMFbA4Dia03u4NXqxNdfKSnXeA3 cvF6Z6HJ9wNm10Ieu7uO13UZwqVPLvnDPQFpgD1sUmGTS5SZgNmBHg/0i5cXh/ZT0A88vv4oCuT meBLOLfAixRet3cgy0R+bBvO6TnMvXMn3dWMYsWE9k9IUlpUGu5JUXpVL0tgBst6idRJ2MAplp9 JrJDnerOhjKa459l6FCCTT9Mb7qYPVrfeTHHGsf//UjTXEgfOXXjj5Te7buZJxtdrfkG6+SFBpu TltsMuaR0jbMya8/chWl1NW3AJXFn2nhdYIq9Y6zbOdfITZXXNIFWTWIiAWBUJ4XmpI/BVGwWrq Nzrw7vGtNptWw84ttkb8pjuRqg2pVkGSuyt+bfVNVVVwVh2J5mQ3kJHKtgzPqDgo8AQcYCXA X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-04_07,2025-07-04_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 mlxlogscore=999 mlxscore=0 malwarescore=0 suspectscore=0 lowpriorityscore=0 clxscore=1015 impostorscore=0 adultscore=0 priorityscore=1501 bulkscore=0 phishscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507050017 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 | 28 +++++++++++++--------------- 1 file changed, 13 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..6f5af26d4e2d43414281197bf54= 1e1ea3fe211f5 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,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_TIGHT | flg, \ - .num_planes =3D np, \ + .fetch_mode =3D MDP_FETCH_UBWC, \ + .flags =3D MSM_FORMAT_FLAG_UNPACK_TIGHT | \ + MSM_FORMAT_FLAG_DX | \ + MSM_FORMAT_FLAG_COMPRESSED | flg, \ + .num_planes =3D 4, \ .tile_height =3D th \ } =20 @@ -623,19 +624,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.39.5 From nobody Tue Oct 7 21:26:21 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 094E128C2A4 for ; Sat, 5 Jul 2025 02:47:47 +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=1751683669; cv=none; b=mrEaa0cHm661xDtX4sJ0/sFae1lopA9y5ed/nM3upNJZ+mZvrYk/aqvJLrpQh5tVtY1tK/F1WtmojKyKz5g4euUydZYZYazAWxPPaBm7/CkN0YCh7TU1htHFhJqXMaZ8INaO0nkHIMVDn/0hcv+dhEZ6nFnIvivvh2gv5iDkYPg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751683669; c=relaxed/simple; bh=zQGn21STxoD+LHqL3zqFBJZONXcRVa5w5iB6awPjCFc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=twBnZVaXeHipCr/SU6EacwL35+7W14FJD7+PwfUnFKELlaiWvfynjRIfY0FA4Z3YqR9Am7044xn/Ysd7GJYtbCup+O1q1su5peZDf1U99OZ/I0ANYcAcEPi+8m4exGbB7celnbTFh1nW9qrmtQJRTZ8g/vIXCQX7cnhUPx1z5P8= 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=EQHeq+9u; 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="EQHeq+9u" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5652CND3029409 for ; Sat, 5 Jul 2025 02:47:47 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= ySsi3WA2KAoPFxgbMTzbgUKuNpVxIGybMd5gyhdvsL4=; b=EQHeq+9uUm4I+8kk MRNOz7ewTCu4jmPtca70FrKykBzCfHT5mjeHnXt/UynFLXCNGezgON4tXtkGnn7h 7wgUwXOJHNVo1p4Rn/f26RFxtGmiDeGo1ToA7uzLMgkaCS6/Vr/zhau71UaZqrQw 9C2OuCW8PJcvfxClT5xEgEjgSdqOh+/772BvuF2hAsqhhwsbxNoY0OKlv7Skn3/6 I8bHkr63lbin0bIEQo2bo5IQOtLeCrtTljIO5J38mUeBRZz2jAP3IqG5B1CjxVNK AsWXCpq1SL9DOF49A/SuuVcs03Kk2OfBKGPmGIf7ErdXZ61XOLdSDPtOPJk0CXNf pGLdBw== Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47pu2ag13w-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sat, 05 Jul 2025 02:47:46 +0000 (GMT) Received: by mail-qk1-f199.google.com with SMTP id af79cd13be357-7d3e90c3a81so108880985a.1 for ; Fri, 04 Jul 2025 19:47:46 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751683666; x=1752288466; 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=ySsi3WA2KAoPFxgbMTzbgUKuNpVxIGybMd5gyhdvsL4=; b=Xc1TAInbWhEuopE85qOwpjtrbqpbhX8KzpaRFxabckafzONfShE8iNy6edNvH3UnGp P7CZCNyxIW/h/LoCm4cNlYWu0VKapTv0KGu5h5do6E0FEtdvO4CswItkekiJ+35Wpx6W 75AAPOoVcFORqOFMGEcI/LftWODw4wCfJNHWcHyikGGLmAzAsy6xYGU+q/lPhtX0Dfc0 wk8/GyGhHWniKm5nUVr/GqZKa/da92o+FtqcCLGUeNmTo4reZ/JFKecO1AbrR9H/4wjw Ps67yf8xv2WB7El4XimiO5Nk+M/WfHlKMBEV+/tX59cx6/2k0/02oirL3ctIME8LOoeV 2ycQ== X-Forwarded-Encrypted: i=1; AJvYcCW7FM59ffzEKcKp/QetH8Smv60jhqL0nR+pYoLz+J2zJcXHpzHMaqoBVo983LxTybwHfKfv0upRasdqAvs=@vger.kernel.org X-Gm-Message-State: AOJu0Ywxjolu0jALIavAXr/F3q1hYf66U1WoJG/DFaM/J8sol1YvLlme 8nAwL+JN4ptvxJdfWqHDrEStJWeUfW7NjurLh1yEv76z1mAwti5X2soO+qE4iNiCvV4/e/nAvD1 39xu45uZig+nTlq0NxYrD5lbPI7xhhtcZyvsqxuEe/oYE6JK0/Lw9vCp9e9Q3YtE+Rwo= X-Gm-Gg: ASbGnctK+Bmo+V0CW81d+EPsdPHmfN/sEeTRyhC58ye+CP0w559zIPydQ3hDAqdCkRG k8IqeYoBDfD24mFl5yf4fJXmPDqS/8kzkd09+eFq+kgZ3ViDFRWgkmroU4FwUbhhELKK6A3cEms dsQzeplaLiiCYxlbwhR3TvNp3ExYQ2XqIojZLG4VH/t2Q1zScF6GWJmFyXJmFpSRIF6pPNoewjf TCbPA29IugWy0b6r3TjOKX5Ag1f/5FkXDX7OPQSNiPYkeKRv2sEJ3JE86dKAfQjaST+Go4yA8t+ iCrfglvp0delCOZ8SvNEnII6SKS0GF2UIBmxxe7Nc7EkVEdZvmhLdX4bIjSNribE7OgBOxkcwdY nN7UQrzvztXrtqsZw1/rlS/JOyPwsprVI2rk= X-Received: by 2002:a05:620a:270b:b0:7d4:6473:5649 with SMTP id af79cd13be357-7d5df11decbmr535125285a.23.1751683666023; Fri, 04 Jul 2025 19:47:46 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGtwtMlsGQ5e0xwgineScuK7LVo81xSUUNyI9wwOwhzVC0LLgubWDgPwYkzeO6ONeH2kkgrTw== X-Received: by 2002:a05:620a:270b:b0:7d4:6473:5649 with SMTP id af79cd13be357-7d5df11decbmr535123585a.23.1751683665639; Fri, 04 Jul 2025 19:47:45 -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 38308e7fff4ca-32e1b1418b3sm4092411fa.76.2025.07.04.19.47.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 19:47:44 -0700 (PDT) From: Dmitry Baryshkov Date: Sat, 05 Jul 2025 05:47:29 +0300 Subject: [PATCH 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: <20250705-dpu-formats-v1-8-40f0bb31b8c8@oss.qualcomm.com> References: <20250705-dpu-formats-v1-0-40f0bb31b8c8@oss.qualcomm.com> In-Reply-To: <20250705-dpu-formats-v1-0-40f0bb31b8c8@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=2209; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=zQGn21STxoD+LHqL3zqFBJZONXcRVa5w5iB6awPjCFc=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoaJI9LZKmNcw7tV7+z+ODXvY0qjWWZ8WxZuq4U lsCFURThMCJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaGiSPQAKCRCLPIo+Aiko 1W0MB/90ovalKVq+VIoaoxKU3yeK1DswGCM7wY5lnI2NRur9dWGNgY0nHwTqDBm7S8m9OP2iGfX LUaxcE43Btwkuu1QZ/Ql9T/kA2y9cwfK1mdQRkn29D6VLuHEyyFd997n1SloMJKaObGiNvEjmvU ODlS74FSwptlfcY4nHWVkX7pBMkCjOKl33Eot6m+qVWMgzwji/QrYdsrw3CfGP2EK/Chkk79NDx NhTrO0gaSwvDeSC/CESh8k+43yhRb8DalR3oAvzJvJ45qea6SJIBjmxEoh/RqPB8l2a6hiyYMvh 7kWrLUljb0S50hVIc7pM+OM78+tPblfNSkIwVhsmrVpMx9Fh X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzA1MDAxNyBTYWx0ZWRfX9msT6YLY4xVW B5rsmyBv1wfDROiOboSqb8hG5kvYxlxHd+ZpgOyFw1M31KVe80ZC8UGajg2nHsS9Gwy4uV6yUBY DQ6oGMzfr7DkIV+b6615SjagWOIb1V8Et3e1jNES7U17N6LANbSGl21In/dVJw6okgU6bR1v5GZ bqk8APeZI+pjL/JfvVeHxdaEAkDGUTQjbQR9gsWYHoqMTwgx/Yc/mw6MJJEJjn5ItLyCbPGdeki eKi0v+rX4ahytVBvBpvHWzCLVV33HM6a0vrBPaQ6QIT11SpSiaxEuAEdL3I3t3ZwR4ewxCIlLeW W1g3ZLro/kHqwb54Ptfm+5rQQY8M2qrPgkkN9+5KGkVat4ABiMmeuNvmnV1+b+mJsfhCF+yDk8J i1SRzJxRTEp3k60Txlyl1pfKw6CXjBw0VT9UY/8oKeugzRs+bMmCaTMQzsXFciTanLIhNHiM X-Proofpoint-ORIG-GUID: YEUYEmY66LyChSwbCPnLjaC7knzXOobm X-Proofpoint-GUID: YEUYEmY66LyChSwbCPnLjaC7knzXOobm X-Authority-Analysis: v=2.4 cv=erTfzppX c=1 sm=1 tr=0 ts=68689252 cx=c_pps a=HLyN3IcIa5EE8TELMZ618Q==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Wb1JkmetP80A:10 a=EUspDBNiAAAA:8 a=dG_4ntQBwjiDuco-PWEA:9 a=QEXdDO2ut3YA:10 a=bTQJ7kPSJx9SKPbeHEYW:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-04_07,2025-07-04_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 clxscore=1015 impostorscore=0 spamscore=0 priorityscore=1501 mlxlogscore=999 bulkscore=0 adultscore=0 malwarescore=0 phishscore=0 lowpriorityscore=0 suspectscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507050017 Drop PSEUDO_YUV_FMT_LOOSE_TILED(), the macro is unused. Signed-off-by: Dmitry Baryshkov Reviewed-by: Jessica Zhang --- 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 6f5af26d4e2d43414281197bf541e1ea3fe211f5..f949810567d83c5924f9dd12726= 1e7d523921724 100644 --- a/drivers/gpu/drm/msm/disp/mdp_format.c +++ b/drivers/gpu/drm/msm/disp/mdp_format.c @@ -326,26 +326,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.39.5 From nobody Tue Oct 7 21:26:21 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 F2CB228D8DB for ; Sat, 5 Jul 2025 02:47: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=1751683671; cv=none; b=nSP9Mn0K7eJzuWqoyZq9ZqbrpFUOV50c3osyHCnOMVAMaxMKcEjPHtvaJpCCwYS+7Go/ydYN0IUgOii2F4gb/HFoL7MgYmbAXnTb8yJbGIFMKaLFcbkK9uxB7FuZXPJ9Ik1gDWnRdEzyOexf+8SbyBnAW9AoJR6wJCN59uaWjN8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751683671; c=relaxed/simple; bh=DW4Sf0tr+opR2OUJSjiXEm6tu/MiyrcROuHNPuR3uTM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SObPzr9WQ4DrjLtV7FSbiCJ2Qlv692M9qDCw/+RXP/lJt1787cqPAdrY2o4hEz9KzyYrsA6S+1eQzPWOYV0FaSFx2RHFOBRhSR9TEjJO8tDSuuJdORpFovPC84nME2/N8Ssf9sLFXkVXNDq1K2WnGy2idVO9fivwxs7e5K/c/cc= 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=PZPoAGJe; 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="PZPoAGJe" 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 5651tHD3004592 for ; Sat, 5 Jul 2025 02:47:49 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= DsxNnig03igp0yVOfI6tKLCmpj5w+U2k2ajZF4YWfO4=; b=PZPoAGJeZGfCR9mV 0iCVrfmV6+JUjcMK7WNrMx4fgYpz0bczAJwpKWzgq7bgImXr8IJ3M4su52r6V+6i zI40I032smCZgdpnDnPyoPAkPSekv6ozUYm3pXoLaVcEY1N+TLpk2AB55xbK3ODA s4pe5Dwk7qClY2n9DEkxPnlMVi42+KaMtoOfH4+UNbMrkQQv+FYyHzHQapk9nraj 9lVPdZf7/6M0PwzrXZrLIIWwwd+bVluRMGl4fXmkYITtf89I56jQJwtmPqW9q7nJ BamITs8fRhiCuugMoxphAl02oN1yqz41+aMP5+PKpQrZXbQeePUjGevb9W3KlVHa PgbDdw== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47nh9s6mqc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sat, 05 Jul 2025 02:47:48 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-4a587c85a60so26253441cf.2 for ; Fri, 04 Jul 2025 19:47:48 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751683667; x=1752288467; 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=DsxNnig03igp0yVOfI6tKLCmpj5w+U2k2ajZF4YWfO4=; b=EZ2iuWYb6Ef2qvl+tTa2/EyGNQKNaDI15ROzeS8G0td/GexrFKwaGJQiDWjt6Ri58w fGudOnSOJ8yn8zY1CHWg8x/qtqUcnAvikUOF8pBiSLPb718C7HDOsIFHH6MDMBtr5NKb ZuC9mNNGz08PLrf05MNGfiMFc3I4ch8qvU9D+bVs37dZ6aWpWaSFMAADmCwwgUQGQLPl gg1tHaDUdyXvQg16uBN8DoIcswlLC6ww5Vy4mpzJkBBZbZSe0W4pADbYScU+jdiQK2RY aILw5rMcMF054lQFa7ChM1V3qBqagJHUyYvqyx+JRQwHH0qhtyF1S7oFK0vVaUTXKTUa jTJg== X-Forwarded-Encrypted: i=1; AJvYcCXukApzBacC1AKeG58WBNzoeCi6NsWdnXtdDbc1dg5vZh2ls82xKYSv6gPVxRQ5vZZVNdW6QJMH+9Bnb08=@vger.kernel.org X-Gm-Message-State: AOJu0YwxDKv1PSyORQL6khiQOJHVR/TGqAixCXdI757gN41IR3D4ZU1C 71/zgV1L5FRSL2n0C8sWePt9bsu3tbqs3gLMVv4RvbGlOPiMst/UiCFfRPZCzs2PpOfW0r4TZTA CFRp6jvWCjpZnZuQVdyDWDXp32v25jKPM30Ccm0zmi1oST9goAf0OFsDbHVszSZ3MfJs= X-Gm-Gg: ASbGncu+pedh7RsElCFJqPVWOHV2w2eR9EC/bJQcZckDCJr6zdzU4JJRD8Y66bovUhc OPUlLygzCsNKrB2wCNYwN+C1rUtbYv+ix2OSh8szvY57V8RjKpz4BApK7QaghPknkJSrWDVP1Oz 8KmEGAPeE4goEVsgXOBKUtGvurxvb+ZvY77rOI3hJ5G1XrBVFSuILz7gaskDIOx5fZ90yXyWkSh /kDZlL98akE2cwTerMUE3uRMwe1lLqbM1x2PcOT0cq1S6gXTp4zUXPlEr3heQWe132BI65LrA51 XW7U551E3b3vB+iBKUgCaNFO4aZaXgFRciBqKc/7wJzDxAIAP9M6GNiiWcBw9MXBRDC7FY1WdWa ff4uNbuEK20aJqH3l7tBoaecPqr7BKOvBQuw= X-Received: by 2002:a05:620a:408d:b0:7d3:a66d:4f3c with SMTP id af79cd13be357-7d5ef0fe619mr170044885a.7.1751683667566; Fri, 04 Jul 2025 19:47:47 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGiYqdfjL7Rn1SxBAuEeKUyyr6SwsvudYw1VMr9DlWZRcvbzZcnGwoHupwmPfh/gZLRwrzYuQ== X-Received: by 2002:a05:620a:408d:b0:7d3:a66d:4f3c with SMTP id af79cd13be357-7d5ef0fe619mr170043085a.7.1751683667029; Fri, 04 Jul 2025 19:47:47 -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 38308e7fff4ca-32e1b1418b3sm4092411fa.76.2025.07.04.19.47.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 19:47:46 -0700 (PDT) From: Dmitry Baryshkov Date: Sat, 05 Jul 2025 05:47:30 +0300 Subject: [PATCH 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: <20250705-dpu-formats-v1-9-40f0bb31b8c8@oss.qualcomm.com> References: <20250705-dpu-formats-v1-0-40f0bb31b8c8@oss.qualcomm.com> In-Reply-To: <20250705-dpu-formats-v1-0-40f0bb31b8c8@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=3740; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=DW4Sf0tr+opR2OUJSjiXEm6tu/MiyrcROuHNPuR3uTM=; b=owEBbAGT/pANAwAKAYs8ij4CKSjVAcsmYgBoaJI9rmMP3gq4UEySExej8M9BSExYQdJGSXRnL CmDHN16TrqJATIEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaGiSPQAKCRCLPIo+Aiko 1X4uB/dCXfk0D0p0vS2Zp6nbCLQR+AhoBVHk795IPjRAMJ4YsMi8FHpaPRmWJakqNpGevfXgrU9 fUNyX8afIXDOs8j3pL9OQE3mQQY6183ogr4HfT4zBxV2ftowdVhu58xzAWkZYqFzh1s8ySi0/Ry fdjLfkM+LkJwpITKi6Kie51fZbQ4TgVXq7A26KdN86WN08U/QXqGCJwDSADvlNAnPebdXAgU6GC TAXimEsAJ4gkjUe4CZz0C88YNgS6cSS0Da73LQhaM+4yjq6nE1qAIzJNAqZXIAkT6+EE+paF9GE 1u7rxzblO4O3zryC98asbDGHG2um+iTJcBlELR3F6MYhlzM= X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=frrcZE4f c=1 sm=1 tr=0 ts=68689254 cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Wb1JkmetP80A:10 a=EUspDBNiAAAA:8 a=uxSOIRPgPw5i5GT2uqUA:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzA1MDAxNyBTYWx0ZWRfXxeW45R4N1tBZ HCiuFnoll/VMLH2u8bNbRpxzO4Cnj9phRi7iCQ94QH16ThxzJ6KaXBCAWEml2FBvjclMNYQiypn nCuWovudoPiMALExvbfy36lXYZQAVuQoMEFTQvfJmLp8hIXcQ92fP7tuUejPq4kRpRj3PQ+1JrU jQGF+FhnpBGeBwbbhaahsyQaItDyzKUehi+eOhceG2HXwO4wLhYL2Z1vFW6OlwOGnmLL7om0Gc7 EfqCtGI64BCLWjNuOoCA0eFjRPQxAaXEvEImJRa/6fovUde5oTNhtV9lf6AQYMp72wmK6rRkHvt j/zvYhv3nWRDuoPioIaGd0sKtRzse00rLtDx/j5BizfHkfIzBJZu6Qpn7sKgiPi80iCG6gFHGkL TDwQfMOlSJzCn0dsQ0orBH93nzKK70sDm387+5dl/gMcRi9CYVRqhuR9V3AHsmJdCBpvgm/F X-Proofpoint-GUID: ZNNYQOc7cUvybF0_TTLXz2M2Sesf8CPI X-Proofpoint-ORIG-GUID: ZNNYQOc7cUvybF0_TTLXz2M2Sesf8CPI X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-04_07,2025-07-04_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 mlxlogscore=999 bulkscore=0 spamscore=0 adultscore=0 impostorscore=0 clxscore=1015 lowpriorityscore=0 suspectscore=0 mlxscore=0 priorityscore=1501 malwarescore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507050017 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. Signed-off-by: Dmitry Baryshkov Reviewed-by: Jessica Zhang --- 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 59c9427da7dda07b8e8ee3d070d2dfb3c165698e..195a6b7c4075eef40e7a5d0fee2= 08168421cee35 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 msm_gem_address_space *= aspace, --=20 2.39.5 From nobody Tue Oct 7 21:26:21 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 D651B2750FD for ; Sat, 5 Jul 2025 02:47:50 +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=1751683673; cv=none; b=ubH5CNlJMNu61PZxb/GXSZ4A7GIi0yPrVFehU1BZvFoilk++duci6ClMOF8VyplhYZxuqZNjtZTpdL86Xg03vbRkb/2uhlt2rNA9VMAx4+72d5+kQQDnTMyjS1ZA6JcQpIP9crUOFErLwlFvkSP3HAyRVtmavL8gA2Z2V+zKOMk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751683673; c=relaxed/simple; bh=hhBaxxZmnT13WRs7rFTvlNBQVmnytMkWjXau7MkDvsE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=R/L0LyfhBxHPSJhsDMdeiFppymlxVeXiNqTzFuLiaWmDZRmxzt2kkl52+xeHYOuLxLIE1W2aQK6Nb48bo50RtaTT6pBLyWJXlr6Sp5m1HpW0WScY5y8m0uBhtaJMHZkwDhMhIbvRbQG7cpZo1RhJZWggU3ARZM/8lPdJx0xKepc= 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=WgOECNSY; 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="WgOECNSY" 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 5650hiLt013739 for ; Sat, 5 Jul 2025 02:47:50 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= GPNRX6kvlGpl11U/TVdLyTY4+QGTQbEIYlMOf3sbM5g=; b=WgOECNSYRBpkJFSq PXfO0eYc/wLmnq5P9Md7nr4Rgratd0h8EPQu+jyEv4aoaPa4AGnrYKL9xcEf6ZyV wRjiYI98SbgrHr/AF9/8Z3AVSt5ldGHtx8TbvVGinWfLNxMAT55BeM/4BpqnecKm SDYIp7cVdedEocLvzXwKdUcJs7pb+ZO5VDMjFtxP91xljVK+lDIEOdJ5KJAEW4Mc 5MZp45v2RofqA00ksmDigmGCv4m5VeOsBKw6L7+V5wWChlJUC83+XD6DAuRECDkK 4QjOjaKhA1TFZdIshu4UgNz5vdmp5tz0lWANYk/6K/xsaxIojxcumNLZZKkSt3JY IFtMrA== 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 47j8fxw9yy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sat, 05 Jul 2025 02:47:49 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-7d460764849so419006785a.1 for ; Fri, 04 Jul 2025 19:47:49 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751683669; x=1752288469; 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=GPNRX6kvlGpl11U/TVdLyTY4+QGTQbEIYlMOf3sbM5g=; b=MITSQm3w5VlB10Vfh8E+64tgQyiI3zeNAL9mDzX4w+lG2qcgfisEi72zrhEDTTkxJ1 yONPgkMNZm6rvsLOKs3Wx8XkSwOXpTe7yT8gYeIMOO/gP+wmlmcBAvRPAa2yDSUI6O0U 0aIzJbqS7kRgbwd0y8Kff658kMGPzMHKpUmpaQenxM5cQN+iXXMzEIbVvNnunAJJNA8S WOXXJhiC9FxdPgLNDP8fxUmJ5kTDKfwtMzGdk8K9f4VR/dOJuisQhPAtT0Z5JJys3liW cfW/S9+iDGwmKW3gKIQG9hEBnDhXItANI6zHhc/1yc3EDbkqK9qRves3EHhGNUgj4YII Iccw== X-Forwarded-Encrypted: i=1; AJvYcCX4UeO2mgG2ZowJzpu6FSz7i7lsgotTstfsk+9InuxLPvnvWAGIvcBtE5M5g8fGEegGiQSR6j4dE13QKGQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yz2YLb0nMX/g31vAGDpCzSIxUxKjPLY5FgO9cWGoIeqOUjuTHcG n8AzznmhrMcJGJLH++tz3/W3TTYaX8paHg3dpP8+CsWyQNm77OIqoS4ZZeM3DK/jD54lNYJPBhz qHwct0YBqaBJevoH2SXKC2yjUQ5nPTK2jlPvqe/vq+aD+8e1keoR9vNvZdkTktn4mrl0= X-Gm-Gg: ASbGnct2zyRrQ+Vm2sEyB/BDjxCUmsBQpivxBRsE9BOk5DC/oCRotgG9SRdvz+KuWNy Mtv7CaNu+pK2hC01wRYKllx27lo6u+x99SjSswwVINOXdAfq3vdi3+0CWJgTMOMLCJVE0xSYh5J ScNmKxw4FnjrS6b1K4zKX7683VDmvDebkjA3eeYXNb7ZglQG4PDlB9ViNDTGCE/ZZntqfZDg0PL ua35VM7nvX3TRbNk998QuSzS5aEVA4VAEDUSgCu+N2KxifbjohI1O99az8A3ej9SvORqGB6ncR4 UtSoaBuF0bbHbjv/fJlCUC0VERKiyCMrjwZZB9w1yWAVKhNb1Y/YKwXQZu9kudGUot7J+uGCwc4 Y7/GjJeXN/P4sbvtYiUSs/8YJxa+4StItDXU= X-Received: by 2002:a05:620a:178f:b0:7ce:eb71:f500 with SMTP id af79cd13be357-7d5dc6e4290mr791402685a.28.1751683669022; Fri, 04 Jul 2025 19:47:49 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGJGzWE8i0pf3MCjcA4rpy8Ez0BO+QTKJR3Oss+otwH7sOxSUybDGPQWW0T6gEwmm6vgWjfSQ== X-Received: by 2002:a05:620a:178f:b0:7ce:eb71:f500 with SMTP id af79cd13be357-7d5dc6e4290mr791400185a.28.1751683668595; Fri, 04 Jul 2025 19:47:48 -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 38308e7fff4ca-32e1b1418b3sm4092411fa.76.2025.07.04.19.47.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 19:47:47 -0700 (PDT) From: Dmitry Baryshkov Date: Sat, 05 Jul 2025 05:47:31 +0300 Subject: [PATCH 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: <20250705-dpu-formats-v1-10-40f0bb31b8c8@oss.qualcomm.com> References: <20250705-dpu-formats-v1-0-40f0bb31b8c8@oss.qualcomm.com> In-Reply-To: <20250705-dpu-formats-v1-0-40f0bb31b8c8@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=3000; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=hhBaxxZmnT13WRs7rFTvlNBQVmnytMkWjXau7MkDvsE=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoaJI93Vo2NjfFVLXURfm2DWRrzoITsNvbcjjtR WLL1k60AW2JATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaGiSPQAKCRCLPIo+Aiko 1TuuB/9+9r8SQ53CMiMyOptheGx1W8C1fndkh8MksuIN/2D562HclCnxV61eA87X3N3cMyd7Ll4 dkLWdX8kUHZUFYbD/g4ElGKqKlM/koSanNwns8MyCIPsyJLpz+MTmULcxS2RxE1RETCClc0SEOw xhtSRtXImd1nk6YYFbNSuiXWjhszBQAfYBJwSm+9c4JoCmLizFqjtakVaea91FEgXjAU1w24D3Z XgHd/RRZc8MMzqvIj0YbceWwAj9i+hPySayXXD3+wtuEqco7kkRNj1WWOPqkHroKPCMnamj7yFF qupDYNKFsuJ+6mE3cI8ZqIBKQORQjez0JhDJcGDM6hVos8/i X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzA1MDAxNiBTYWx0ZWRfXySbT/lwEHvNC P7iHHo2UmBofTp+O8DldqvAOhb4/YVveIDDuwcSotCQ+UcNMuwI5BYKEllAELwtH6xPOdRatzSL RjOMppT4XC9kphgo0uJ6u521mXY4g0ZCvjOgT4Xfnlk0oOJhLY5G/a07/XMN4+2MF0sPYpx3MgN Uj/lkddqLlIIozDVlimrlvr/Xwj2SMyrc0M5q48N4goV8fXeMZwieIyhlnjA/yWzcFe3UlTd/SM lAKSs90tL3Mnf4E689OhVYeLm4mvZ637kgJnaaymjQOmqy2F+ZNHqSEF78UznAuNcBojwNUzRsz I/7ifAbAwqvGjNGT31JqLapbzgNFslGKtiaaZLfpsYsjRlsyFb6m3Ed3f0rsRLYS07sUD/bDror 7+xvzVQt8qXeGpteoP/qrNZiwN49F8fzzV06DW3KwPY/qAOeBVLleyyiC/IFYhzEWC4JoNAH X-Proofpoint-GUID: fq1sNHetJX4neTdk8LNhnd_5dtBivRNH X-Proofpoint-ORIG-GUID: fq1sNHetJX4neTdk8LNhnd_5dtBivRNH X-Authority-Analysis: v=2.4 cv=TqPmhCXh c=1 sm=1 tr=0 ts=68689255 cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Wb1JkmetP80A:10 a=EUspDBNiAAAA:8 a=VIt9t0sQHfAwVTtMwRsA:9 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-04_07,2025-07-04_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 mlxlogscore=959 suspectscore=0 adultscore=0 phishscore=0 malwarescore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 spamscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507050016 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. Signed-off-by: Dmitry Baryshkov Reviewed-by: Jessica Zhang --- 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 195a6b7c4075eef40e7a5d0fee208168421cee35..e1fb7fd3b0b97a38880bc80aec2= 6003d65a3a310 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.39.5 From nobody Tue Oct 7 21:26:21 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 EB2D5293C45 for ; Sat, 5 Jul 2025 02:47:54 +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=1751683678; cv=none; b=SMO/pRbqxPYKMlN9R8gN3x97kp9J2/J6cR5Mb11gBU7ie7Sd4MlNgz/RsaDXfV9Wl259ki4dntcxibnMLv3fpPDqK8gEBsbwwXvKZTTWDV6sldcghtcIoBnJiXY507A7467BUr+ZdGIHKF/gxk/L4mWQID3KsK81MasK8kUggfU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751683678; c=relaxed/simple; bh=coMBzmxV3g8KpJCZvcMn12gkE2xPWYbuyDvVXG/7x50=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=naPxpWb2DlW3b86+nI6yfkd496Z8U+iosqs+Nthk2GoXSnv944/agoCB9GKiUMSyBLWZNw2FZ08q2GTmi40mpHXj7luUFqp5xBIJ4/gI0PwOdBzhfoQ2KaKZpbJpe0kPOC6ZfjvfcnMJHIPIyenSXtUaQYN4dsgtvN6ke+mMSuc= 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=GOjKpc9X; 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="GOjKpc9X" 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 564M5OGO011258 for ; Sat, 5 Jul 2025 02:47:54 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= mPdweLA7FPyIkpCFNmnXxeGAqvTbA1f8vu74lAadJhc=; b=GOjKpc9XbAoA05dc iGAtmtglDHZws2xHp8nnS5OgkZON7+LmXXX5Taat56JW++dIF/WP9zTbw4LHd/Y8 bpF2o0JYw1xUuaZai9t5fDQP2xBHgEWFWSvumb48hghTEIHbiSHaGU4o2sVvNBPZ /GqpKneIcHrybSPSf1GfMSXuu5oc86pyJSS+eYzAyTG0n0fu7h6nvumzLFOshYcg FwRcUjTJLcKLjwn3ABNdefiwddQepipCOffndeS/BuGsdN7J5VJdTekMtKialmAB HDNXWlKCplU51wf9Qpl36VnRYqNGYta9GLlgJmkJQBrPF278UrPtGengD73I0oaI jXy93A== Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47j802cx1v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sat, 05 Jul 2025 02:47:53 +0000 (GMT) Received: by mail-qk1-f199.google.com with SMTP id af79cd13be357-7d5077ef51bso183484485a.3 for ; Fri, 04 Jul 2025 19:47:53 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751683673; x=1752288473; 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=mPdweLA7FPyIkpCFNmnXxeGAqvTbA1f8vu74lAadJhc=; b=FguvZut0LB6zQbWaVJpOQvul1vQ6cUz4dG3oXFOYRxEtroknygtYVOZlD3+PiV1psn 5Rm8z3Ej924wywY24I77x7I1PgVhSOduZwBScOQjk4/HVt16FATQ8LerAbfKdASsYq2H Qh9ynAni/cJ4FzT7WvvIRZmkJWrx9Edi/BnihvJV19JeFFbiUylHxGQzyJzl5FKQ5SNO M3e6bZ1NUtKFYu2PMdaG2xjfeIiWvx7ZtrMi+42sFQRifweB81FftsP1G0dlqk9CQbBl qo+kC5FC9Wn45Ra20HzyZo260bz0R4rXCvW+h39ABua2nzYKDM1xH2I3ruZHjJwUTB/0 Fxug== X-Forwarded-Encrypted: i=1; AJvYcCVhmiBt5UyYRhR0cD4UOel65kl1UkqSGSAMFTAI+PmOR7Zq6r/xr4BOFbRayod3r4ZR/bKk/dK/B1A5H5E=@vger.kernel.org X-Gm-Message-State: AOJu0YxFMLiYVBX+N1C8BW9+ELFixPO3DvuqQ5mFK9MVBepZdKxkO+Wu WSXhG9adHrnTfOdZGf/S5cPog69LUqah5UlAhAUl0wNEbcsok+C0zmU6Qi8JDt3X2oWv6g9CnHL Us3PpHzOMc/cNw7ecSEVYb1/14jACUqiB05mqR1kuXePoeK14Nj+PbwQk7vMpesgFNA4= X-Gm-Gg: ASbGnct7YH/toz51+fFoHABH+op+jXP1SEEaT/P70+BExvhFittJtVTfVPgK5o3wz7p XoEEMh/fqC0eYauz8sHe5TyiT/U2spdc9FDeMhQlV1kxX9yJfHTPKLx4lL4DEEHaujJEFetdRIQ IAYx9HyHpcKJI4VDxNSJresJ9eDf81SoR5fAjG98fW4hp8AlIGo11OJF7//UkM6xqoXiCaofTvM PBVg7aJCbec6Fe0N+x8BjzleVoSWXT0tLHFbEMqYhTXGFR7oVKTt9BFm65bSgHPZeiGwBbibIg8 Yojrp6cbtBKvnfIsqFbRdUzS2UVByeIREiizvBy6o6FWZRMDBGlq80PWVZBU+kU9KxJorVwhw79 3jSwwvrzNAf2evQ9h9goHtwPouJy7cTfU29o= X-Received: by 2002:a05:620a:6011:b0:7d3:8a6b:d24d with SMTP id af79cd13be357-7d5f14eddd3mr140643085a.24.1751683672208; Fri, 04 Jul 2025 19:47:52 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFAuHixLkZ/p64/O+elwmVTQv75n56fJXaXRZNt4RzYjco6O+60LkaZ11hq06oOa0xGb248RQ== X-Received: by 2002:a05:620a:6011:b0:7d3:8a6b:d24d with SMTP id af79cd13be357-7d5f14eddd3mr140640285a.24.1751683671425; Fri, 04 Jul 2025 19:47:51 -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 38308e7fff4ca-32e1b1418b3sm4092411fa.76.2025.07.04.19.47.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 19:47:50 -0700 (PDT) From: Dmitry Baryshkov Date: Sat, 05 Jul 2025 05:47:32 +0300 Subject: [PATCH 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: <20250705-dpu-formats-v1-11-40f0bb31b8c8@oss.qualcomm.com> References: <20250705-dpu-formats-v1-0-40f0bb31b8c8@oss.qualcomm.com> In-Reply-To: <20250705-dpu-formats-v1-0-40f0bb31b8c8@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=52506; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=coMBzmxV3g8KpJCZvcMn12gkE2xPWYbuyDvVXG/7x50=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoaJI+NS6md8HE09RhPruq8LjWc7F0DvcFYhaz+ 4w+MoBjouKJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaGiSPgAKCRCLPIo+Aiko 1X4ZB/9QxfVW4mqKLzhg7iWNgtKM4F00lpVk8wKvP0XfeHN02+9NBU6Vvni/GExBvYVwDrmJBCE vDdLqg//30kLEe+AYaoqHXvUVTlhk71NrehW/PGKnoIjqj1yHkDjaOB0Jt3oyYyDJBvBYRI3CTp jGInIwBcolwZrcn+evMOWIvpAxQeVzlsonCTewow+1N8obA7bcJxZ04Luwd/L6w6V8QPkPQFnyD uern5WUR0CXK/6e1MEhLo9Ni4h8gWeqUDpyfNrUDwTZVQnYbgDZ4xhayZ334re8JYDY+2C5gtkK tNMojWkFmPYsrI+tQ65pFs/GFrUb9ru7Yn62M3MfrS6czh50 X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-GUID: BEA2-lVq6cJN_MohLoiS0zjzv9018wqr X-Authority-Analysis: v=2.4 cv=YPWfyQGx c=1 sm=1 tr=0 ts=68689259 cx=c_pps a=HLyN3IcIa5EE8TELMZ618Q==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Wb1JkmetP80A:10 a=EUspDBNiAAAA:8 a=6iusXPdm3c8emWAo3PYA:9 a=QEXdDO2ut3YA:10 a=bTQJ7kPSJx9SKPbeHEYW:22 X-Proofpoint-ORIG-GUID: BEA2-lVq6cJN_MohLoiS0zjzv9018wqr X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzA1MDAxNyBTYWx0ZWRfXyb97bR2kSY58 C/RdsxvLaSLcBxVrVpULjZKcTA34nljVW8B813Kn+xfB/wQu5k8yLcXzIMLa9GNt/abLyeNHCYu 9LUdDne8AFVuToanyAev+1zy7KEqw/SW56wg46HRBph48L+Hwu383od/gM45fUx0KvBC5OUXGQ5 q1Rf7LaKVIRqJZEmYvgVf/m+2v9FNPULyX/CbxpiAEM584Sd/ptFuD34s3+OFXlqO3o4ExXs6Vo a7YKXowTWfU0MacKhKrbEBVCrM8K320gfql+bzIIWecF9QLG6aXHVuoZ7E4/LAjnZLX/OHWfRLl DLXlTL8EN4x9RNbPPfM0/CuQlaNKcs8Efj7ELrwH78rfxwsjrXYkls3EiyQFyqeyBTy1k2rWqQE EKb4w+Qe+8f8e9MMPQQW/saU5IfBLZ1dwR4T/2SY4b7SgcnuEfA2R1m4JxUQ6p6rtoOyDZUD X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-04_07,2025-07-04_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 mlxlogscore=756 mlxscore=0 malwarescore=0 suspectscore=0 lowpriorityscore=0 clxscore=1015 impostorscore=0 adultscore=0 priorityscore=1501 bulkscore=0 phishscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507050017 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 | 124 ++- drivers/gpu/drm/msm/disp/dpu1/msm_media_info.h | 1155 --------------------= ---- 2 files changed, 60 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 e1fb7fd3b0b97a38880bc80aec26003d65a3a310..67bc5a6eeb43dcf113dea9eccdb= 778cd52b1ad40 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,73 @@ 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 (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) { + 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 +139,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.39.5 From nobody Tue Oct 7 21:26:21 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 0AC4A290D8F for ; Sat, 5 Jul 2025 02:47:56 +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=1751683678; cv=none; b=gl1yySVF/GqX1fcZgX4PUhj71Gh+/AqlSdzPXYhHBDcP+2ZCdwoqj9O8EfYkiSaMkYaaHIqaesRpOx9MO8tyn3+T55nP5KkWXIe+lPRVQX1mSd+PCu7KijkM4xrbI+J15NBn8Oj4Z+s+qjeiomiYB9ERBC1mVFQk/AobXI8xnBE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751683678; c=relaxed/simple; bh=fDL72GPzQmQB76txcVyhanNjbzZhYEM9L1c+/7lm29Q=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=meH66kPNUFwli86PZOIkVAGxrrOPd65EJNdQwdJ98NFlhOYlFL9K1jzbTE+APMQyRBiAjS+b3UupfL3mix1hZBxXeYgqmcumcMwsbyFL2TOmEZ/hhPRiJGiS3GwDWNXbdXmJgGDWQNGn8aeBvaA2pxiwaDZwi1xTAzQDOG8QUXs= 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=d+N3218N; 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="d+N3218N" 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 564M1YX8026531 for ; Sat, 5 Jul 2025 02:47: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= zTjSmwSAa6yTDqMZc38W+dUQ/0/X4lOOL/yJxyMBtv0=; b=d+N3218NNejs10ER xkaXR+AMbEGoc8x3xWcwANSFngm7DXtl6DwrCqZTCSrof7+J/26cB9iAxeu7W7bZ wdH405mBgioJ/bGKBkU/JBWqeh1AU+m++kZe/9/W/3f8OO5nKgv0nrSKVL4XGETd 8YavyJStBM1mgOs24uZzbYYwU0BamBN9ByZaXcP/1fkwqBwgduTwdHRr15VCeuKx ooqXHUIv8RZ0e59YfjHELuCeJ7+v3+klsGq2g+T7rYRzUtryC8gxiLlT+P6ovfsw QY5Y4KldLdlzSKh7nF6QWeUjujse5esW/viyEZyDmgULjRIK5I/Y3wfOK0F78JIw +diPPg== 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 47j802cx21-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sat, 05 Jul 2025 02:47:55 +0000 (GMT) Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-7d09bc05b77so225222085a.1 for ; Fri, 04 Jul 2025 19:47:55 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751683675; x=1752288475; 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=zTjSmwSAa6yTDqMZc38W+dUQ/0/X4lOOL/yJxyMBtv0=; b=stf+7+WIpaH1c3+LOjkw9zrom/z9lM94u52jHCB+LUNzvY2ddd8D11I4uDutUAo32r BZqpeFZQlvKdA9Tq0PvbJbV4WJvpQG1ROOXgrVxumo4U7ank0vjCePKqo3QzlUy7PS8l VZXrM+BqjsOyRJq6niQDY+xgN0Vtd0gbDi0q1Ca8jex67SQqe/1qbq8e5EATgYjySedv mTDNDD8xURysGBynwX9t59RlwCPpQZYxIgra19Hw43SH+a2awXuOq3FSSTq5zsKLcwQE 9airlgEgTsofexNwpRmSR271WEz2mLZ7LuJ8E0SB5CfEok6x2c072jVQ0wJcdhuAo0aD yKiA== X-Forwarded-Encrypted: i=1; AJvYcCUe3IuirU64mCjW+IrQFy8yBCdeN1xqHuHX7KxavlFlIjZkDUYuWOLaz4qH4kSpHEleviEcgBLbYMectWQ=@vger.kernel.org X-Gm-Message-State: AOJu0YwqTRHPJGmNEpDcAKjnUKqTCnvIWLZLDJhVTJi+gpej/NBPdZyQ zLV4Ujlg3LqpcENW9rfN3D3lQl8TR9jaQ/BpTZs3oqm0LME1YR7YhmhAX8WNL0WDRW/bMpkSE4F 7nfCjRyx+2qyBmXEhy+15T9+BcHBEcAwEsi1rOSH6/Dyl0d+bPuJIj01atx0w7SkQV6c= X-Gm-Gg: ASbGncta1qV6p242zLXZkNwGpUuCpVrdEqm4Adg1VPj23HLEjjpuJjLGCna4D8XXAG9 bVFouCwAOL2/Kf70kBuxIbq5thX3X88TljLU8Msjd0XH4YvaDU5fNgnXNpjAYCbU9QHxwGexdvH 6zAF2MG8ITgdEUUIY38GVJUMdnNhdrLPeruIUsFYyjmaPDYDhGe827FgaKKLltTaXbxMXttrg7p V/q5Pt5TXdnjcA8RszeM3lwRWEG8twr2SayQ9VeCG/VR442F+V+gXUkUGh35zr/T994n8RKhxeg 26nDbfbKf5+RVow4+JLw/XcaaEuN3daaN2vsCL8f3/RVZuW6/C1LBEI45vGGbVilo43h9HFL0E7 Ml06eF1CFytiteCPNEEE62W4aYKbli34c2Zs= X-Received: by 2002:a05:620a:700c:b0:7d4:4073:426 with SMTP id af79cd13be357-7d5df102dc3mr488419185a.10.1751683674750; Fri, 04 Jul 2025 19:47:54 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEZWoviTs93gGJ+j/GTAGiXhkZfv9KNLnpOmGgLc0uLOjEpatwqwW7S5NrlY4NsvIhmzhe8aA== X-Received: by 2002:a05:620a:700c:b0:7d4:4073:426 with SMTP id af79cd13be357-7d5df102dc3mr488416485a.10.1751683674335; Fri, 04 Jul 2025 19:47: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 38308e7fff4ca-32e1b1418b3sm4092411fa.76.2025.07.04.19.47.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 19:47:51 -0700 (PDT) From: Dmitry Baryshkov Date: Sat, 05 Jul 2025 05:47:33 +0300 Subject: [PATCH 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: <20250705-dpu-formats-v1-12-40f0bb31b8c8@oss.qualcomm.com> References: <20250705-dpu-formats-v1-0-40f0bb31b8c8@oss.qualcomm.com> In-Reply-To: <20250705-dpu-formats-v1-0-40f0bb31b8c8@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=5448; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=fDL72GPzQmQB76txcVyhanNjbzZhYEM9L1c+/7lm29Q=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoaJI+JuKKpLrS7xPn6yJjR0fiUzSkxZGXAE5hY 2m00hGjZ/6JATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaGiSPgAKCRCLPIo+Aiko 1dwhB/4sk6Yq70mL9wXivdqGs5Qn4wnldjh+wbzSZ6uuue18KtdcnB3r8u3Bv4r112p2874eJWG n/CYHtGwynhj1QEm0BkY36zZt/76unRomMLpNBRrhiDpK4TI2966d9If24rOK5CkpuWyh1io3rR pnTOTQ/tuVwk3291FcTKgqsydYA7E+c3hst5AgsB0pWOaoO5YxKxKpZDIFpA6ePVoyQDfl7fQVQ Cglxpo948iTaQciBbTvnM+zMdfxgJYE0N/G2xb25CwC6prGS+s35pNxJG1NNHsEpWOg6pcnMGkO vd0zXX923CQCPw/lrqSX3evS1Tej+R7UOBkt+Wxg0jERyFMb X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-GUID: MowC6cS_g0H4z5NrFPV3CiV6sG_myrfS X-Authority-Analysis: v=2.4 cv=YPWfyQGx c=1 sm=1 tr=0 ts=6868925b cx=c_pps a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Wb1JkmetP80A:10 a=EUspDBNiAAAA:8 a=TEkP_0IIR_zyBM1EGkkA:9 a=QEXdDO2ut3YA:10 a=PEH46H7Ffwr30OY-TuGO:22 X-Proofpoint-ORIG-GUID: MowC6cS_g0H4z5NrFPV3CiV6sG_myrfS X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzA1MDAxNyBTYWx0ZWRfX93PNw2bpI2lk AErgtebEIni7dVgZUePqNk47m0HWwHeleWxEWonMvTlaLvqqc/IlPr9X5qLDrb6p9DzabAC5uxp snKCB2S5IZTGlXmFL/onSbJ1ptf2O3j8D0REYsF2yUmgVj3i12k7Iflbjx6kRM2jXY6TEz47zNe rSxKvSbL7X/giycStCJIiq6edOk29If48zsXfpmLWse79EDsMfRu/9wb1+1dpyEW2EgIXSedWBo gdq7obkBDFnBEM2ADx3PwedifaH+nUl1R7i70pLMM8UueQj0LUSr4UQqIgqmempJ7NI2pwbmseU gRWHcr8WDhckL5OSASxG/XLOO3oQagOgHZTnzv8jtyNBT38LbSEzz7HHJYMb+dTIggOn6p7ibYT FsILW5IIJL6+S06Q7F6kcUpju8gtBuimqrW0eERtlqtjoU8HkKPfgiALIAmbQSsV7mzuYkFc X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-04_07,2025-07-04_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 mlxlogscore=840 mlxscore=0 malwarescore=0 suspectscore=0 lowpriorityscore=0 clxscore=1015 impostorscore=0 adultscore=0 priorityscore=1501 bulkscore=0 phishscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507050017 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 | 62 ++++++++++++-------------= ---- 1 file changed, 26 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 67bc5a6eeb43dcf113dea9eccdb778cd52b1ad40..6a0426ed1460c5af4822844d7a7= b0c51739df875 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 /* @@ -80,57 +70,57 @@ static int _dpu_format_populate_plane_sizes_ubwc( fmt->pixel_format =3D=3D DRM_FORMAT_P010) { 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); + stride =3D round_up(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) @@ -139,13 +129,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.39.5