From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A545F105A59E for ; Thu, 12 Mar 2026 13:30:12 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 048E110EA19; Thu, 12 Mar 2026 13:30:12 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.b="U48nWBVH"; dkim=pass (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="JIl7FJKg"; dkim-atps=neutral Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by gabe.freedesktop.org (Postfix) with ESMTPS id 42BB610EA41 for ; Thu, 12 Mar 2026 13:30:06 +0000 (UTC) Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62C9nAQL263530 for ; Thu, 12 Mar 2026 13:30:05 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= ibXJK/eidhWImTas3nSeFi3FQ09IZIZ6J+RmgmMVE8E=; b=U48nWBVH4h9ccIGx G5G9l+/VMgyjuh5ma+kKIydrM2tmHFnmH11tmPWqFdTqAainp5KKANP0w3kEoJyo 51xLDDT5z7xL0441yX4uOQLBGTCovR3vH02ZmcGY7Uj+heD/jeLu92Nff4x4MVVm da9xGv0HRCuIJ6hu/+QC18YJazkJqOaX8pqj6cvZpsWI7bFqU3HA9gJ31Hav2Ydb /DqdeIIBIMgci6piqU0Q75uuo4h55o9UcjQyeEHNqOyp0Q0Ra3n9Mp1dTm25HsBz AZZ9oQs+IM0NPeTIOVi6u5rT5ELcAhNw3OkCzN8hR05xWdTeDTFFzVBAxz9k4sQn P28mwA== 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 4cuh4yj67s-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 12 Mar 2026 13:30:05 +0000 (GMT) Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-8cdae902bccso302112185a.0 for ; Thu, 12 Mar 2026 06:30:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773322205; x=1773927005; darn=lists.freedesktop.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=ibXJK/eidhWImTas3nSeFi3FQ09IZIZ6J+RmgmMVE8E=; b=JIl7FJKgefVIzvwdb7J524GGSo2/dt+/p49bHmDBIGs1WOlbp6O8r4jwhLzgrvzB9p hqt/nwxIIn/JqLdjE9ZUUHV+mdwGUMEcbftEdZMJOxnnc7GtnIruEliWkonVy5N1k36U GK+GuloM+Yn7+gmrAZQSoJPXQO/o2Q5yYiGB2RhDaMNdemWoZqpdRbvJ1E1SNSEtCrsq UMAzRRc1f1QqMeuuVLIRMEso8W+5/4DzufHzNqXJlyFK/CLEefKnheAWN2iqUTu42/0V kBEy8zEB/xQ3g9DnyHOl+EhZayretVBkbNx61Xkpu1RAIF9/TBsDszvWe8Dq2CwWty/J P0Bw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773322205; x=1773927005; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=ibXJK/eidhWImTas3nSeFi3FQ09IZIZ6J+RmgmMVE8E=; b=oO37K6FIvHw4+ezgo033Lr2bw/Q1RrQ2hDdXC5rxc4X/hl8tUk382rEzJjltVN3JTx Eq/Aws6MoKJ0DEe6Ylz07DFB3Kc4gfEI2W6LPVvZrwmUykC+6ZWok/5THLPcc3nSDwBA Rs6HPnDiItt8FbHGe9OO/ECn6LeOMx2gtEsY3MRKdaPVa7bwRXaOtG8RZ+goFZP15UUf UlL5QBL/ZdGBnETIZMt0o3HtMsaRBkN7VyVvPK6moDCD63s12Oql1m47jrVPoi86A8Lj NsMN3x873EWE52+HN+rd4bPpK67SxbJtvNlaUNlQ3UWNDeMxRPOtsUpf3pO2bF5TpJYj MVDQ== X-Forwarded-Encrypted: i=1; AJvYcCWov8q5mZxEyrBVVFBLUvN3JrlQYbRwPUaFzPqsMaitxltNp1733Rnuwj+OpMyDmf9iJ+oSeBqF9KE=@lists.freedesktop.org X-Gm-Message-State: AOJu0YzMKDG3xa3vYDRMWtSq6fbtpr2y8gO2xWcKrqiANle1PDQ9ZsWT v/Abdk6j1NMMs5dMDTGb8HTJN3vFYDsuNkPv3R4oyU0HtMwEU7r8R5HgVaK3sAErx9HZ4imj56m F1MLAvkSWzeCJ6JhveguRHDPM8mjZLBzatRnsfDHNOV1uCQYQUviS/Le5+i+zw0euwrieE20= X-Gm-Gg: ATEYQzwIIzUqDnlR/NX7r/6zxPslCd/MEng/dhLPvNmiOeyXK9IApZ28Sc5QpzrJcSb ra95hLfLm/K35On6fh2WJa2nkXoIlwlLdA5Rph2fh6HapXYR1F1eFVnX/qXHRcH3pdWj5S4rm7I o8Hl4WcCGwNUPgOXt2dckP9paRcVw4azkMJAJLWhHnSoZOdZ0HaLSpmPdIzRLUpLYJZYFCU7fYC 0ZA41Ms+VGSQ4WO4uPWIQj3ykqdk0+CvG9+RH/RDZC44W1gbSmtDOfXedTEdDud1cC3fqHWZQIT tB3DvcYazMdaPQn4BBXUFc9YsbJRMzim/18MdUAWKE9svr41KfFQs/cjE+hem2WRHQgnX6eELg/ tb1VBc5+OwOCwIV76/t3tcBdOEqqyPhIrE0lkRL4JqpRS5r/cq3srJypCRINLoV+LJgW19Sw5FN hXJymtAFHWNEOvmADKZd5g+R6YmgQmRS1nS7o= X-Received: by 2002:a05:620a:4413:b0:8cd:917a:2026 with SMTP id af79cd13be357-8cda1a8a5ddmr897756585a.79.1773322204415; Thu, 12 Mar 2026 06:30:04 -0700 (PDT) X-Received: by 2002:a05:620a:4413:b0:8cd:917a:2026 with SMTP id af79cd13be357-8cda1a8a5ddmr897751985a.79.1773322203931; Thu, 12 Mar 2026 06:30:03 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-38a67d617e1sm8646671fa.9.2026.03.12.06.30.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Mar 2026 06:30:02 -0700 (PDT) From: Dmitry Baryshkov Date: Thu, 12 Mar 2026 15:29:40 +0200 Subject: [PATCH v3 19/27] drm/msm/dpu: invert the order of UBWC checks MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260312-ubwc-rework-v3-19-b7e8f800176a@oss.qualcomm.com> References: <20260312-ubwc-rework-v3-0-b7e8f800176a@oss.qualcomm.com> In-Reply-To: <20260312-ubwc-rework-v3-0-b7e8f800176a@oss.qualcomm.com> To: Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , David Airlie , Simona Vetter , Bjorn Andersson , Konrad Dybcio , Akhil P Oommen 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.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=3131; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=OzjscEd17vm0sEmzoIKCQmPPncmXbh08UBSisc3cBL4=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBpsr+31jp24c7kNb3Kn/dSjdS4l+mxF8W1rI8aW F/HpdgD36qJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCabK/twAKCRCLPIo+Aiko 1YtBB/0drMmDeVpRsOqPVuUA9kPWhmGIlenEluBir77EGPRRGSpKMOnfXzFsdoDCU6u7C+1NXdV e9FMebCHKxWML6QKtiBZNGLOCuRzB/h4Q+ZlOKLSyazTVaTkv2eKpy3bR4tWABzAyeDVkitQLBX 41+S0155PayZa5CCA//b5wFm6s/MRpPcUVWFJbFjBEqz6AJNVvBDJ6xAj1q5secQEGB4WTtLiIO u3GfRz97H3+/jJ7JWGXGQh1XNu4nwMIfrT6iBMY8MS/n81lZen2anVo/Q86THWuhM14Vm044UtN GQSEMwM8Y7QZGL/UwTiIACMoGDJwQ4C2SKW+OEeG2m+mPjdr X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzEyMDEwNyBTYWx0ZWRfX7j6qnsnVPp52 zsOj0Pwg9o4rvuoNtR/IcwHz2LL0e1lVOGVek79VI4HtClwQIhjyAMRrVAhjnV+Z8JNEdrNuJFK AOxyqUT8tonTZ/tXN3KdhKC4LNjoOBR+pyH0hJhx28H08x6EUkt/HsrUFLgcg8nyC/L8qR5taGK Xh1qtx5zgD+7WiBcCac969ZYlUf3MVYG+hk9X8S5uy47eykNo9/RC8kL3Tvm/9eNxwgKpae0oNi ErKFg/N/puFoeaEqf6ooP+bMYHYfYZhkJfxZXToiSiCDfPHBliTzDcoK1z3Vr++G9p63BNnHPoC kkvOxQ5SgkE71i9HU6Ghp1nWUpI+EloUONMx8ARCvS5VnIKTN1mXKiSrcjmxgZHzr07JZ2nbjuw Gx9MJkT4uip2NYPLNEtajnlP0EmbZxn9XL6NmPaYEjvWQRez1oANFyrA6evNweMEHXJg9vWbWg0 Q+Q4jpAu9/0PS3vCmvw== X-Proofpoint-ORIG-GUID: mn6RGsYQopJ4sZAlnJD0_2Gq7YzKnG7Y X-Authority-Analysis: v=2.4 cv=C+7kCAP+ c=1 sm=1 tr=0 ts=69b2bfdd cx=c_pps a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=l4KHnsLLE-ungWRp-RkA:9 a=QEXdDO2ut3YA:10 a=PEH46H7Ffwr30OY-TuGO:22 X-Proofpoint-GUID: mn6RGsYQopJ4sZAlnJD0_2Gq7YzKnG7Y X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-12_01,2026-03-12_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 priorityscore=1501 phishscore=0 adultscore=0 suspectscore=0 bulkscore=0 lowpriorityscore=0 clxscore=1015 impostorscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603120107 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Unlike other drivers, the DPU driver checks for exact UBWC version, making it hard to add minor versions if necessary. Invert the order of UBWC checks, letting the DPU driver handle new minors transparently. Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c | 36 ++++++++++++++--------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c index 6089a58074ac..b5e50fc1916f 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c @@ -310,35 +310,35 @@ void dpu_hw_setup_format_impl(struct dpu_sw_pipe *pipe, const struct msm_format if (fmt->fetch_mode != MDP_FETCH_LINEAR) { u32 hbb = ctx->ubwc->highest_bank_bit - 13; - u32 ctrl_val; + u32 ctrl_val = 0; if (MSM_FORMAT_IS_UBWC(fmt)) opmode |= MDSS_MDP_OP_BWC_EN; src_format |= (fmt->fetch_mode & 3) << 30; /*FRAME_FORMAT */ - if (ctx->ubwc->ubwc_enc_version == UBWC_1_0) { + if (ctx->ubwc->ubwc_enc_version > UBWC_6_0) { + DRM_WARN_ONCE("Unsupported UBWC version %x\n", ctx->ubwc->ubwc_enc_version); + } else if (ctx->ubwc->ubwc_enc_version >= UBWC_5_0) { + if (!MSM_FORMAT_IS_YUV(fmt)) { + ctrl_val = BIT(30); + if (!MSM_FORMAT_IS_DX(fmt)) /* and not FP16, but it's unsupported */ + ctrl_val |= BIT(31); + } + /* SDE also sets bits for lossy formats, but we don't support them yet */ + } else if (ctx->ubwc->ubwc_enc_version >= UBWC_4_0) { + ctrl_val = MSM_FORMAT_IS_YUV(fmt) ? 0 : BIT(30); + } else if (ctx->ubwc->ubwc_enc_version >= UBWC_3_0) { + ctrl_val = BIT(30) | qcom_ubwc_swizzle(ctx->ubwc) | (hbb << 4); + } else if (ctx->ubwc->ubwc_enc_version >= UBWC_2_0) { + fast_clear = fmt->alpha_enable ? BIT(31) : 0; + ctrl_val = fast_clear | qcom_ubwc_swizzle(ctx->ubwc) | (hbb << 4); + } else if (ctx->ubwc->ubwc_enc_version >= UBWC_1_0) { fast_clear = fmt->alpha_enable ? BIT(31) : 0; ctrl_val = fast_clear | (qcom_ubwc_swizzle(ctx->ubwc) & UBWC_SWIZZLE_ENABLE_LVL1) | BIT(8) | (hbb << 4); - } else if (ctx->ubwc->ubwc_enc_version == UBWC_2_0) { - fast_clear = fmt->alpha_enable ? BIT(31) : 0; - ctrl_val = fast_clear | qcom_ubwc_swizzle(ctx->ubwc) | (hbb << 4); - } else if (ctx->ubwc->ubwc_enc_version == UBWC_3_0) { - ctrl_val = BIT(30) | qcom_ubwc_swizzle(ctx->ubwc) | (hbb << 4); - } else if (ctx->ubwc->ubwc_enc_version == UBWC_4_0) { - ctrl_val = MSM_FORMAT_IS_YUV(fmt) ? 0 : BIT(30); - } else if (ctx->ubwc->ubwc_enc_version <= UBWC_6_0) { - if (MSM_FORMAT_IS_YUV(fmt)) - ctrl_val = 0; - else if (MSM_FORMAT_IS_DX(fmt)) /* or FP16, but it's unsupported */ - ctrl_val = BIT(30); - else - ctrl_val = BIT(30) | BIT(31); - /* SDE also sets bits for lossy formats, but we don't support them yet */ } else { DRM_WARN_ONCE("Unsupported UBWC version %x\n", ctx->ubwc->ubwc_enc_version); - ctrl_val = 0; } DPU_REG_WRITE(c, ubwc_ctrl_off, ctrl_val); -- 2.47.3