From nobody Fri Dec 19 09:46:08 2025 Received: from sender4-pp-f112.zoho.com (sender4-pp-f112.zoho.com [136.143.188.112]) (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 82A5F276050 for ; Tue, 9 Dec 2025 11:15:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=136.143.188.112 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765278934; cv=pass; b=fn+wsi1SuBhJXdHVEMGsAGPqJJwIxpKL9ys8Qk6v0WmqUNTTofXloGFAxTvSSLwMJ6ipccSsCv1IjGV+cXDKnbYK1DrimOF1YkK1xJQEkMez9woKcjG+89WXM05J/KzSZyqA49cp4VO3B/7kl46mW4fohosBdSppHEvJ+VDXK+g= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765278934; c=relaxed/simple; bh=6E18dV5zOcIIOGTLCMr+qSBcDG6bvbXnDI+YtnfYsOI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=UuhEpGkTIq7SHsJ7GpecAUUYqUcVC0kceOg9ixRkzi+g3UCUsRmLAQPcwBwJblupmw8W+gtOpkUus7pED1ucdk3fRww+wXhLhGmLH02fYQQz8TLy4drkMpSFVQvvGZZ4nb+/iszzbMA60jv+mxEkF8cVh+1mmmTPjWXhjjMQsZM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (1024-bit key) header.d=collabora.com header.i=nicolas.frattaroli@collabora.com header.b=kI+f29ce; arc=pass smtp.client-ip=136.143.188.112 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=collabora.com header.i=nicolas.frattaroli@collabora.com header.b="kI+f29ce" ARC-Seal: i=1; a=rsa-sha256; t=1765278893; cv=none; d=zohomail.com; s=zohoarc; b=eEZNGIJtKeP67NSw2lOuxu0zvU+Sv6FLpNuoU8UHJ//dKfUQahi2kqqrp57Y2jYWAXy7gpppu7tDRYxQwxF2AKDS+/f50eqflugZvuqGgo2XG3j3sNJjQ2DfjOzPLIkmMx2QvOez7vmOoQuY1FubEe6whWd/bAqiaU01GVBg6lg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765278893; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=Cg4WUfMDQUwvwvbTJsa9XBH4T44qYNwtUMAw30CfLvQ=; b=iqn96Oh7vG0MxJEq0vEole2StmszatnCtBfprwo+SlhXnoFbzGgyCnrWff2Q62fFr/LUUzPEnzpAS20WspFnIU+XATqR3Uxj5okYjYL89JSmTapz2rNXEbN1h9k8NH2BqK4EPs/o794VWz2RoIxa3xnI/K3HWft462Y9tWHXQ2Y= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=collabora.com; spf=pass smtp.mailfrom=nicolas.frattaroli@collabora.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1765278893; s=zohomail; d=collabora.com; i=nicolas.frattaroli@collabora.com; h=From:From:Date:Date:Subject:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-Id:Message-Id:References:In-Reply-To:To:To:Cc:Cc:Reply-To; bh=Cg4WUfMDQUwvwvbTJsa9XBH4T44qYNwtUMAw30CfLvQ=; b=kI+f29cemP/nKIWH4glFjpkkimX11G7DmPWs9qgbks6DokueOayvPgF13hpE02PW SKh+pa/jYNzzl78Gmkvd/NQs/FvcU2p0eZOyekmY759lb8Dg8iAy48+e0oQ+1BLwJmG iaPTG0L2Jufp7HsTX6PSwjYunGk+Q0A4+krKmn1I= Received: by mx.zohomail.com with SMTPS id 1765278892854392.0031445733065; Tue, 9 Dec 2025 03:14:52 -0800 (PST) From: Nicolas Frattaroli Date: Tue, 09 Dec 2025 12:14:14 +0100 Subject: [PATCH v3 1/8] drm/rockchip: vop2: Switch impossible format conditional to WARN_ON 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: <20251209-vop2-atomic-fixups-v3-1-07c48f0f1f0d@collabora.com> References: <20251209-vop2-atomic-fixups-v3-0-07c48f0f1f0d@collabora.com> In-Reply-To: <20251209-vop2-atomic-fixups-v3-0-07c48f0f1f0d@collabora.com> To: Chaoyi Chen , Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: Daniel Stone , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, Nicolas Frattaroli X-Mailer: b4 0.14.3 From: Daniel Stone We should never be able to create a framebuffer with an unsupported format, so throw a warning if this ever happens, instead of attempting to stagger on. Signed-off-by: Daniel Stone Signed-off-by: Nicolas Frattaroli --- drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm= /rockchip/rockchip_drm_vop2.c index 498df0ce4680..20b49209ddcd 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c @@ -1030,7 +1030,8 @@ static int vop2_plane_atomic_check(struct drm_plane *= plane, return 0; =20 format =3D vop2_convert_format(fb->format->format); - if (format < 0) + /* We shouldn't be able to create a fb for an unsupported format */ + if (WARN_ON(format < 0)) return format; =20 /* Co-ordinates have now been clipped */ --=20 2.52.0 From nobody Fri Dec 19 09:46:08 2025 Received: from sender4-pp-f112.zoho.com (sender4-pp-f112.zoho.com [136.143.188.112]) (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 12B05320385 for ; Tue, 9 Dec 2025 11:15:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=136.143.188.112 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765278952; cv=pass; b=NzdgaeTtjA2Aa0PEUyx+pRlLJZeb8yvLF0WpomdJtzIsqpUnjUPLctTAq0Uc/vT95FnVQgQpoNIcUtsETXVHk54v4ri00u0glDILpiatq8HpBiImLGV0o/80fAMoc/H9LMJ9c3JpAl7iqSdZ43An12kct/pK8tMkeSj7Ifrcx90= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765278952; c=relaxed/simple; bh=82uMyyiluSqW5YQumbrtY/eXvv5KG0Qv+Rw8sfrSY5w=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=moj1wDR0uPGjz/T4JP+Vqe4G99YGtc1LaGAjvGyPmDKx/Zr6nBGJGoZqalYn7hAXRrruPvRrK5VoRrJ1Kvo8SGc7ed0eqCk5LtdaT+40JfMDLjoJK9pEDSb7qmfVmV9ks8KwDlyTRvuYyAiUpUif7eGymiiDIE4pAJ6miFV60ec= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (1024-bit key) header.d=collabora.com header.i=nicolas.frattaroli@collabora.com header.b=i5s03aRo; arc=pass smtp.client-ip=136.143.188.112 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=collabora.com header.i=nicolas.frattaroli@collabora.com header.b="i5s03aRo" ARC-Seal: i=1; a=rsa-sha256; t=1765278898; cv=none; d=zohomail.com; s=zohoarc; b=QskNeIHmyxkW6r7hOymCTgi+3yBDAaGfXYsugs7RhCnkc/IN8QBZo6IV+8iSf3rX8TNAWhrftNkK2h0DennWRnPOPcmVBsAR7kbTKKP38pdL6i3tOXbM93zC9KN+a+B0dacjTxBSoY32D3KjWiFIZW24/JXJeWTA6S7Rxh0efT4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765278898; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=p8rzuw22G5hQ+PO+mu50soCKPQPRHc3OuYqSu+o6ifI=; b=DG/qRMP8xBpdSQ0mAYHGfXdfhOSy8t14Zj3CPtvR/0oQ+6uVd1jU+LXPH1TU3c4Jp3b4pe6FTYCqDedLa6B9h+fJxgqkpMxCHiGNN4NRWl9rs1eqJCO+NseoRCBvclb4hz5l0U5IAAgTuUDdFQUrj69vfd9VzboBN29zS2TsuuM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=collabora.com; spf=pass smtp.mailfrom=nicolas.frattaroli@collabora.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1765278897; s=zohomail; d=collabora.com; i=nicolas.frattaroli@collabora.com; h=From:From:Date:Date:Subject:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-Id:Message-Id:References:In-Reply-To:To:To:Cc:Cc:Reply-To; bh=p8rzuw22G5hQ+PO+mu50soCKPQPRHc3OuYqSu+o6ifI=; b=i5s03aRofoas90ahcKcXbhprV3T/54RghMwPCIYArQV80zMmASbFC0r4ZkmOtDv7 aifwkcKLeBagqzZnLmL2EY9WtlURfFKp2tf6KRrDmyEhw4GzyLUQoOE76JxVTX8BXNf wQqFMaCv2QvWxo01RIdX/fGoYn77Z5EhAkZKaMLA= Received: by mx.zohomail.com with SMTPS id 1765278896958713.6182319686611; Tue, 9 Dec 2025 03:14:56 -0800 (PST) From: Nicolas Frattaroli Date: Tue, 09 Dec 2025 12:14:15 +0100 Subject: [PATCH v3 2/8] drm/rockchip: vop2: Switch impossible pos conditional to WARN_ON 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: <20251209-vop2-atomic-fixups-v3-2-07c48f0f1f0d@collabora.com> References: <20251209-vop2-atomic-fixups-v3-0-07c48f0f1f0d@collabora.com> In-Reply-To: <20251209-vop2-atomic-fixups-v3-0-07c48f0f1f0d@collabora.com> To: Chaoyi Chen , Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: Daniel Stone , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, Nicolas Frattaroli X-Mailer: b4 0.14.3 From: Daniel Stone We already clip the plane to the display bounds in atomic_check, and ensure that it is sufficiently sized. Instead of trying to catch this and adjust for it in atomic_update, just assert that atomic_check has done its job. Signed-off-by: Daniel Stone Signed-off-by: Nicolas Frattaroli --- drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 29 +++++++++---------------= ---- 1 file changed, 9 insertions(+), 20 deletions(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm= /rockchip/rockchip_drm_vop2.c index 20b49209ddcd..81b3eba07095 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c @@ -1214,28 +1214,17 @@ static void vop2_plane_atomic_update(struct drm_pla= ne *plane, src_w =3D drm_rect_width(src) >> 16; src_h =3D drm_rect_height(src) >> 16; dsp_w =3D drm_rect_width(dest); - - if (dest->x1 + dsp_w > adjusted_mode->hdisplay) { - drm_dbg_kms(vop2->drm, - "vp%d %s dest->x1[%d] + dsp_w[%d] exceed mode hdisplay[%d]\n", - vp->id, win->data->name, dest->x1, dsp_w, adjusted_mode->hdisplay); - dsp_w =3D adjusted_mode->hdisplay - dest->x1; - if (dsp_w < 4) - dsp_w =3D 4; - src_w =3D dsp_w * src_w / drm_rect_width(dest); - } - dsp_h =3D drm_rect_height(dest); =20 - if (dest->y1 + dsp_h > adjusted_mode->vdisplay) { - drm_dbg_kms(vop2->drm, - "vp%d %s dest->y1[%d] + dsp_h[%d] exceed mode vdisplay[%d]\n", - vp->id, win->data->name, dest->y1, dsp_h, adjusted_mode->vdisplay); - dsp_h =3D adjusted_mode->vdisplay - dest->y1; - if (dsp_h < 4) - dsp_h =3D 4; - src_h =3D dsp_h * src_h / drm_rect_height(dest); - } + /* drm_atomic_helper_check_plane_state calls drm_rect_clip_scaled for + * us, which keeps our planes bounded within the CRTC active area + */ + WARN_ON(dest->x1 + dsp_w > adjusted_mode->hdisplay); + WARN_ON(dest->y1 + dsp_h > adjusted_mode->vdisplay); + WARN_ON(dsp_w < 4); + WARN_ON(dsp_h < 4); + WARN_ON(src_w < 4); + WARN_ON(src_h < 4); =20 /* * This is workaround solution for IC design: --=20 2.52.0 From nobody Fri Dec 19 09:46:08 2025 Received: from sender4-pp-f112.zoho.com (sender4-pp-f112.zoho.com [136.143.188.112]) (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 9EF3E320A30 for ; Tue, 9 Dec 2025 11:15:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=136.143.188.112 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765278955; cv=pass; b=PSRkvkH63sU5MNDfsUyVudxoLjvwnx7DD/Xs8t5jraUeIxU1ljMecN2kFFQ+NBQf2fH5h1S5abLJKltFVeneGNKeu3F8KawX8PyXZ4V18JgapYwAcZAreg/yllOGFuPadULtVKsxSBNkwNjt0WcYRmAEaaziDobcEVF/kRxL+a0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765278955; c=relaxed/simple; bh=hoxTyLouUCCqOV1h0WsnRKoR9ie67oP8zsPO9XsAo8c=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=HkLNZOd1h5SDSiBTPR2sTImDhJM5yk2sYXQNWr8CntVCrd9O9aQnk632BA7joFaNdpa931LI0Q9YuB4qkjMCqeQ0FH5txVzNuvWT+8etTaTMcJmsi1UH1QY/Tg7EKYyAH4hU9+bf1xzYFAWPxmrJsCeX7Ok+QYcZ+ocQ2nTUoG0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (1024-bit key) header.d=collabora.com header.i=nicolas.frattaroli@collabora.com header.b=hgfjnUwK; arc=pass smtp.client-ip=136.143.188.112 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=collabora.com header.i=nicolas.frattaroli@collabora.com header.b="hgfjnUwK" ARC-Seal: i=1; a=rsa-sha256; t=1765278902; cv=none; d=zohomail.com; s=zohoarc; b=XC4SC3KkKQ7GO3dIKZW6VrkIe5LB95jLxGpeMIq18SM3ZtChpHATaju+CTP+QRZ4mHgQqaIOX6lSOO+EBhKmR+hFdrgIozll6wtPMzj+gfUwLqf9gPYunNtJlPBor2RA2lomDipvREAgb1hIdi0Oz6BygQAT1euBfIUNsA/qD5A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765278902; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=Yix2VtVAthNOkhvZWCl2bJyUJbLX6oYb/22YOA7QIzE=; b=OTs1CxtkcufyquRlMA3AhY4I/ehCeO8a77ex6dECwBRISDWtDwMTUTKevCghOje3b6F7GsxEA82+HmIxIYFVov8Ts7oa5IT0oINklAD4YrReKq99NQxkGMrcgxoggqECn3JLvk1QcXAWv6nPhEGOx9Uj/86BqCsRaA5ZbNH4WNQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=collabora.com; spf=pass smtp.mailfrom=nicolas.frattaroli@collabora.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1765278902; s=zohomail; d=collabora.com; i=nicolas.frattaroli@collabora.com; h=From:From:Date:Date:Subject:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-Id:Message-Id:References:In-Reply-To:To:To:Cc:Cc:Reply-To; bh=Yix2VtVAthNOkhvZWCl2bJyUJbLX6oYb/22YOA7QIzE=; b=hgfjnUwKg4ZYtlC9LS6jxO/Qe9EYMeD+GLooSCAcVT65Ywz65E6T6IM/gmlj6pnj XZAw1w58abuhIGuIxy3Hl+2vj/UdDTdk/oyqX9kypzHB5jT7OensadB3VBFj3ITu8K6 iZiayudZcqRaQlCM4Fbl5cpEIgDwzWghtWidITKw= Received: by mx.zohomail.com with SMTPS id 1765278900902951.2741005817111; Tue, 9 Dec 2025 03:15:00 -0800 (PST) From: Nicolas Frattaroli Date: Tue, 09 Dec 2025 12:14:16 +0100 Subject: [PATCH v3 3/8] drm/rockchip: vop2: Fix Esmart test condition 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: <20251209-vop2-atomic-fixups-v3-3-07c48f0f1f0d@collabora.com> References: <20251209-vop2-atomic-fixups-v3-0-07c48f0f1f0d@collabora.com> In-Reply-To: <20251209-vop2-atomic-fixups-v3-0-07c48f0f1f0d@collabora.com> To: Chaoyi Chen , Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: Daniel Stone , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, Nicolas Frattaroli X-Mailer: b4 0.14.3 From: Daniel Stone If we want to find out if a window is Esmart or not, test for not being a cluster window, rather than AFBDC presence. No functional effect as only cluster windows support AFBC decode. Signed-off-by: Daniel Stone Signed-off-by: Nicolas Frattaroli --- drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm= /rockchip/rockchip_drm_vop2.c index 81b3eba07095..9d715d7659af 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c @@ -1230,12 +1230,10 @@ static void vop2_plane_atomic_update(struct drm_pla= ne *plane, * This is workaround solution for IC design: * esmart can't support scale down when src_w % 16 =3D=3D 1. */ - if (!(win->data->feature & WIN_FEATURE_AFBDC)) { - if (src_w > dsp_w && (src_w & 0xf) =3D=3D 1) { - drm_dbg_kms(vop2->drm, "vp%d %s act_w[%d] MODE 16 =3D=3D 1\n", - vp->id, win->data->name, src_w); - src_w -=3D 1; - } + if (!vop2_cluster_window(win) && src_w > dsp_w && (src_w & 1)) { + drm_dbg_kms(vop2->drm, "vp%d %s act_w[%d] MODE 16 =3D=3D 1\n", + vp->id, win->data->name, src_w); + src_w -=3D 1; } =20 if (afbc_en && src_w % 4) { --=20 2.52.0 From nobody Fri Dec 19 09:46:08 2025 Received: from sender4-pp-f112.zoho.com (sender4-pp-f112.zoho.com [136.143.188.112]) (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 D80B7270EC1 for ; Tue, 9 Dec 2025 11:15:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=136.143.188.112 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765278949; cv=pass; b=HUdsxwskLpfuEGypoxzhNI5pYHyCU6PXO/TkoOtamKkL5iQPs1ScaNjZ/oefoLYC0rl8f9l7RtQ+QRvbxbLeVWK27pTJO+0uA6t3pn8JGD+Rc67YYWmE/1Niw2rBvNVD8gSq+17Iw8rvQLIHC1Lb8a4P/zz9rc3pjKgNhAmdw4s= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765278949; c=relaxed/simple; bh=w60TlGu/HbwiQT7TsAxKJ6Tjmf+z/UOiszujtwkutFE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DSW5TUjO8QesASK/LoUsnh+di5zG3VY8DgzqFq3OiJeREqUxsV43sW8aOmB9ZEgOzH9bOg39VA4gcGfbmIWWRLVhooFaFIqeJXYVt64WhoC4YsFlkPs0wleztP8GZeJKsB+9ksyMLKMYgNIuaNQrOhfcz9SauTaV3EJZinxUGgM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (1024-bit key) header.d=collabora.com header.i=nicolas.frattaroli@collabora.com header.b=B2tU8ffu; arc=pass smtp.client-ip=136.143.188.112 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=collabora.com header.i=nicolas.frattaroli@collabora.com header.b="B2tU8ffu" ARC-Seal: i=1; a=rsa-sha256; t=1765278906; cv=none; d=zohomail.com; s=zohoarc; b=hmQ+WDrlK20PAVuSXqU9VsKpW6ennsTdRbnnsMaTnj7l3Qgjj5wGuvPQqyUjkrIJGJVkspCW5ZZN2zDGQU4cr+aT8kjDXGo2WM4L7TZKC58tSJOduuT/3MPPeIasUbLM0AeILL3iUpx+3wxZlTdpV6pBU5VMQD4Byzvp4palFr4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765278906; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=JBSVTApRGFO6ipPPb6rgBGPYE/Z13lbAZXToGPqvWnU=; b=PomfXWwZPYsN+7d0YF77fIqkQX4nUzNNJ4PnRRJgJPOjcVrVTHeMWmH+vcpt9nojm9/+r995FK1MWrGwVYU0LzqTHgt6izYW86LjLESsVo/pWEE/7jpn4yTaqosflYABrx8s4LM11lbEAryJWvmqCv8brlit+Bv7OGfb9T7leow= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=collabora.com; spf=pass smtp.mailfrom=nicolas.frattaroli@collabora.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1765278906; s=zohomail; d=collabora.com; i=nicolas.frattaroli@collabora.com; h=From:From:Date:Date:Subject:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-Id:Message-Id:References:In-Reply-To:To:To:Cc:Cc:Reply-To; bh=JBSVTApRGFO6ipPPb6rgBGPYE/Z13lbAZXToGPqvWnU=; b=B2tU8ffukWTB0ZZ5SJzDsUxs01CxzlPgG9k6FYC4sLl3eFBAh7v7CE3hhM4iGqbD WgUinyR+1HsIBtJ7wLcX9kZjRi5713GFNS7YUprWOIxOQ/0vNb21Gvuz67SBz07pLbf gDApTE/8G/prcPq38o6IBGB2PdmjYgC3k/zi9xRk= Received: by mx.zohomail.com with SMTPS id 1765278905191300.842301852009; Tue, 9 Dec 2025 03:15:05 -0800 (PST) From: Nicolas Frattaroli Date: Tue, 09 Dec 2025 12:14:17 +0100 Subject: [PATCH v3 4/8] drm/rockchip: vop2: Enforce scaling workaround in plane_check 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: <20251209-vop2-atomic-fixups-v3-4-07c48f0f1f0d@collabora.com> References: <20251209-vop2-atomic-fixups-v3-0-07c48f0f1f0d@collabora.com> In-Reply-To: <20251209-vop2-atomic-fixups-v3-0-07c48f0f1f0d@collabora.com> To: Chaoyi Chen , Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: Daniel Stone , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, Nicolas Frattaroli X-Mailer: b4 0.14.3 From: Daniel Stone It seems only cluster windows are capable of applying downscaling when the source region has an odd width. Instead of applying a workaround inside atomic_update, fail the plane check if this is requested. Signed-off-by: Daniel Stone Signed-off-by: Nicolas Frattaroli --- drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm= /rockchip/rockchip_drm_vop2.c index 9d715d7659af..6d4f22872e67 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c @@ -998,6 +998,7 @@ static int vop2_plane_atomic_check(struct drm_plane *pl= ane, struct drm_crtc *crtc =3D pstate->crtc; struct drm_crtc_state *cstate; struct vop2_video_port *vp; + struct vop2_win *win =3D to_vop2_win(plane); struct vop2 *vop2; const struct vop2_data *vop2_data; struct drm_rect *dest =3D &pstate->dst; @@ -1065,6 +1066,16 @@ static int vop2_plane_atomic_check(struct drm_plane = *plane, return -EINVAL; } =20 + /* + * This is workaround solution for IC design: + * esmart can't support scale down when src_w % 16 =3D=3D 1. + */ + if (!vop2_cluster_window(win) && src_w > dest_w && (src_w & 1)) { + drm_dbg_kms(vop2->drm, + "Esmart windows cannot downscale odd-width source regions\n"); + return -EINVAL; + } + return 0; } =20 @@ -1226,16 +1237,6 @@ static void vop2_plane_atomic_update(struct drm_plan= e *plane, WARN_ON(src_w < 4); WARN_ON(src_h < 4); =20 - /* - * This is workaround solution for IC design: - * esmart can't support scale down when src_w % 16 =3D=3D 1. - */ - if (!vop2_cluster_window(win) && src_w > dsp_w && (src_w & 1)) { - drm_dbg_kms(vop2->drm, "vp%d %s act_w[%d] MODE 16 =3D=3D 1\n", - vp->id, win->data->name, src_w); - src_w -=3D 1; - } - if (afbc_en && src_w % 4) { drm_dbg_kms(vop2->drm, "vp%d %s src_w[%d] not 4 pixel aligned\n", vp->id, win->data->name, src_w); --=20 2.52.0 From nobody Fri Dec 19 09:46:08 2025 Received: from sender4-pp-f112.zoho.com (sender4-pp-f112.zoho.com [136.143.188.112]) (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 228E52DF13A for ; Tue, 9 Dec 2025 11:15:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=136.143.188.112 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765278947; cv=pass; b=dO3TFW6A83sTV2X1LGO+x15FT92YQRyCqSRnyQsa9+THQ3vk86mk9K1iidRumdDUedZ8KT6V3BpwlVRR2XcB9LsC0GPhssKNw4zck+DFxwMZ9UI4+4UyFYHzhkyBsI6axJYbo5TAz5MFGZqBKgEU6qsq8n3Rwk2iFBaCsMgLSHk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765278947; c=relaxed/simple; bh=1i/VvpFv3OHpkZ/UFayV4vxxCehO6OHfeU8jFMrOxmA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=YjXEOBDUfeW3UrUeYoCXVlbJn1wBBXJj3+4QugwvtQr9i2RFFT6SjUn9zATZ6ngpB9zAkKuUqCLvOzrfq5wnm8qOWJ92hBazoi6oL5H48/UF/Lg4I1/dU8QrpJASd7C/Yu3BBVadHmE4iQx3SWaEBwTsitW7Ol1rZA/kvMfTHpY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (1024-bit key) header.d=collabora.com header.i=nicolas.frattaroli@collabora.com header.b=AvEef7IF; arc=pass smtp.client-ip=136.143.188.112 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=collabora.com header.i=nicolas.frattaroli@collabora.com header.b="AvEef7IF" ARC-Seal: i=1; a=rsa-sha256; t=1765278910; cv=none; d=zohomail.com; s=zohoarc; b=EG0l7NEOkFy/3D2p1fbSjykkavUC+ZqKuSinMrdKzBQP2ximO5LswyX5QgwfaH36NprG7X+ui3K2rtSqMBJGV4G9owp6/DXAgmoDnQzsHQ+X92Ab+yB4fMkOn72AyV38bx6k0qpoESfm2A95N2GMqTU/KwksuHBqopgWZiNI2/k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765278910; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=ZLt345x+m80QdbohyKM4Hq5RZfs7ADEKLCvNEvG5VIo=; b=X30pna4CRhCeVghT3Z3hxgmWpJLW02BL+z8Hk9y0Q73d0zTqPxXuKhLBN6wF2Z9FAI/NY8pW2UncGJ3wiTLf4LOhtc+89hPP2n5ndj0zTBLxqCMsVy3wS0l5HmhlgrvBxpNuygqzoSuMpWlslFaxn1uNlmzBUQHXJ/MDwPoKgnY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=collabora.com; spf=pass smtp.mailfrom=nicolas.frattaroli@collabora.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1765278910; s=zohomail; d=collabora.com; i=nicolas.frattaroli@collabora.com; h=From:From:Date:Date:Subject:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-Id:Message-Id:References:In-Reply-To:To:To:Cc:Cc:Reply-To; bh=ZLt345x+m80QdbohyKM4Hq5RZfs7ADEKLCvNEvG5VIo=; b=AvEef7IFkZ5K82IYQ6lqWENvOWNwwxBxpM2bo99abRJr4oahnTfaN5wGHaLY2gGZ VEKGdmgVpiXeYBOdOrJwBF0ygTq9OrF4Wj9qpqzo5NqHmA5S356umczo5tdmEZPbrBj p5/vOJNA7h7apQ9+IgWgLu5dqWiddvz+bZcyRIFQ= Received: by mx.zohomail.com with SMTPS id 1765278909282948.4385184735341; Tue, 9 Dec 2025 03:15:09 -0800 (PST) From: Nicolas Frattaroli Date: Tue, 09 Dec 2025 12:14:18 +0100 Subject: [PATCH v3 5/8] drm/rockchip: vop2: Enforce AFBC source alignment in plane_check 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: <20251209-vop2-atomic-fixups-v3-5-07c48f0f1f0d@collabora.com> References: <20251209-vop2-atomic-fixups-v3-0-07c48f0f1f0d@collabora.com> In-Reply-To: <20251209-vop2-atomic-fixups-v3-0-07c48f0f1f0d@collabora.com> To: Chaoyi Chen , Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: Daniel Stone , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, Nicolas Frattaroli X-Mailer: b4 0.14.3 From: Daniel Stone Planes can only source AFBC framebuffers at multiples of 4px wide on RK3566/RK3568. Instead of clipping on all SoCs when the user asks for an unaligned source rectangle, reject the configuration in the plane's atomic check on RK3566/RK3568 only. Signed-off-by: Daniel Stone [Make RK3566/RK3568 specific, reword message, s/byte/pixel/] Signed-off-by: Nicolas Frattaroli --- drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm= /rockchip/rockchip_drm_vop2.c index 6d4f22872e67..a029ed73dda7 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c @@ -1076,6 +1076,13 @@ static int vop2_plane_atomic_check(struct drm_plane = *plane, return -EINVAL; } =20 + if (vop2->version =3D=3D VOP_VERSION_RK3568 && drm_is_afbc(fb->modifier) = && src_w % 4) { + drm_dbg_kms(vop2->drm, + "AFBC source rectangles must be 4-pixel aligned; is %d\n", + src_w); + return -EINVAL; + } + return 0; } =20 @@ -1237,11 +1244,8 @@ static void vop2_plane_atomic_update(struct drm_plan= e *plane, WARN_ON(src_w < 4); WARN_ON(src_h < 4); =20 - if (afbc_en && src_w % 4) { - drm_dbg_kms(vop2->drm, "vp%d %s src_w[%d] not 4 pixel aligned\n", - vp->id, win->data->name, src_w); - src_w =3D ALIGN_DOWN(src_w, 4); - } + if (vop2->version =3D=3D VOP_VERSION_RK3568 && drm_is_afbc(fb->modifier)) + WARN_ON(src_w % 4); =20 act_info =3D (src_h - 1) << 16 | ((src_w - 1) & 0xffff); dsp_info =3D (dsp_h - 1) << 16 | ((dsp_w - 1) & 0xffff); --=20 2.52.0 From nobody Fri Dec 19 09:46:08 2025 Received: from sender4-pp-f112.zoho.com (sender4-pp-f112.zoho.com [136.143.188.112]) (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 8B056320A04 for ; Tue, 9 Dec 2025 11:15:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=136.143.188.112 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765278954; cv=pass; b=T/MCgK8EkVP1TYboIp+u5DsD9+mxWn6U6QTRydq2IV2SqQfiFM/2w1D6vf2CG0Ya3YI36nDObCLgRHbH266ECWorVc7o6pDatWpPw7Jl1wHwwmkSNzw3D+T179q4RfzH1KjR2/BdWAAXC5EZXcK9rEZjcI3TbX8FKt5JtyXlG/Y= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765278954; c=relaxed/simple; bh=0uAye479NTwWEEonMt13GlT0Bhz+YRlgNiFyfQTHM8Q=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Pr/pUFB04sCk3d8Dz6aUD8s2lYXIEk7zU6Fk9peYuD/ABB6+By4JbUWyDQk6P48NSWxROa5ur3zJnfdvbZvbRQQVx4SeiuqoepA5wGTVKdXX9BLk94a0Rps68klqZ1PlEVeKOifPDoE/U0/l0SybNF6ZvjT17aQReGwGUwX93L4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (1024-bit key) header.d=collabora.com header.i=nicolas.frattaroli@collabora.com header.b=BepV4pyN; arc=pass smtp.client-ip=136.143.188.112 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=collabora.com header.i=nicolas.frattaroli@collabora.com header.b="BepV4pyN" ARC-Seal: i=1; a=rsa-sha256; t=1765278914; cv=none; d=zohomail.com; s=zohoarc; b=VRwlubZnlCsEB3gByVYJMAVc9MPJeR8jF9uHx+qhzrzu6qaSAwt3APM+nFxJ9Cc27WssQwl0aDTiVPySbNdJRbLDzqrRMIr8LtolyFwYlZrNsKY9Igmoq5gMRe0gIsIca3oemHFsUj6YeDrFTGyvNkisJBXRe0j4SWPpcYzuIOw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765278914; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=Dc/9047WZIfthGrC5w9XvBmK2nntzK36OcINQIL7+aQ=; b=OEnnukIzUPUdcrateJRpJN1F87/btsJ8w65xaf/ig2hgK7nIgDh80IZ4+ffuxzGwLWoqu1prSXqm6Nqxamwe4lTMnUBRmLpfVPCd9TZhVvwoR3AWN66FIt0THx+pjj8lRJJZ0/hm1zqnEWGzYScr6nB9BTftwWOwlpvQ+Hi5s3o= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=collabora.com; spf=pass smtp.mailfrom=nicolas.frattaroli@collabora.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1765278914; s=zohomail; d=collabora.com; i=nicolas.frattaroli@collabora.com; h=From:From:Date:Date:Subject:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-Id:Message-Id:References:In-Reply-To:To:To:Cc:Cc:Reply-To; bh=Dc/9047WZIfthGrC5w9XvBmK2nntzK36OcINQIL7+aQ=; b=BepV4pyNErFKMl+Bpo87+6PAVX5DCwibNKEiHV02sHM6Vm0+MFZ5B60AeCwzMbjN imFPUAK/f1ByOltqyPUyBcA6VKlBLqore8T2bjo2/vspKBwpGDAg6A82Ydp4rpHgKQt SAwpRtspcFvWaFGGNcKtY9UQvav+Y9D1F/15ehxQ= Received: by mx.zohomail.com with SMTPS id 1765278913254748.0512620367256; Tue, 9 Dec 2025 03:15:13 -0800 (PST) From: Nicolas Frattaroli Date: Tue, 09 Dec 2025 12:14:19 +0100 Subject: [PATCH v3 6/8] drm/rockchip: vop2: Enforce AFBC transform stride align in plane_check 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: <20251209-vop2-atomic-fixups-v3-6-07c48f0f1f0d@collabora.com> References: <20251209-vop2-atomic-fixups-v3-0-07c48f0f1f0d@collabora.com> In-Reply-To: <20251209-vop2-atomic-fixups-v3-0-07c48f0f1f0d@collabora.com> To: Chaoyi Chen , Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: Daniel Stone , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, Nicolas Frattaroli X-Mailer: b4 0.14.3 From: Daniel Stone Make sure we can't break the hardware by requesting an unsupported configuration. Signed-off-by: Daniel Stone Signed-off-by: Nicolas Frattaroli --- drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm= /rockchip/rockchip_drm_vop2.c index a029ed73dda7..337b01ed29a6 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c @@ -1083,6 +1083,15 @@ static int vop2_plane_atomic_check(struct drm_plane = *plane, return -EINVAL; } =20 + if (drm_is_afbc(fb->modifier) && + pstate->rotation & + (DRM_MODE_REFLECT_X | DRM_MODE_ROTATE_90 | DRM_MODE_ROTATE_270) && + (fb->pitches[0] << 3) / vop2_get_bpp(fb->format) % 64) { + drm_dbg_kms(vop2->drm, + "AFBC buffers must be 64-byte aligned for horizontal rotation or mi= rroring\n"); + return -EINVAL; + } + return 0; } =20 @@ -1290,9 +1299,6 @@ static void vop2_plane_atomic_update(struct drm_plane= *plane, * with WIN_VIR_STRIDE. */ stride =3D (fb->pitches[0] << 3) / bpp; - if ((stride & 0x3f) && (xmirror || rotate_90 || rotate_270)) - drm_dbg_kms(vop2->drm, "vp%d %s stride[%d] not 64 pixel aligned\n", - vp->id, win->data->name, stride); =20 /* It's for head stride, each head size is 16 byte */ stride =3D ALIGN(stride, block_w) / block_w * 16; --=20 2.52.0 From nobody Fri Dec 19 09:46:08 2025 Received: from sender4-pp-f112.zoho.com (sender4-pp-f112.zoho.com [136.143.188.112]) (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 C8A0C320A33 for ; Tue, 9 Dec 2025 11:15:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=136.143.188.112 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765278955; cv=pass; b=ae/hsakjui9mqSyRg/7POjluv/rX/oZ6M2go3AbilX4h0LZpMfqrr/Rdsohif9Cv/g6YR2n3cTPV2MidpvVFcuXsmxrik3PgV6SaVsSGqPNTvmDGmAnSo4RAcBhia6BcksoAAB1UufenZaF4Fyn/Qgt0qVcOLCXt1Qt4pRMOzkA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765278955; c=relaxed/simple; bh=03EUHfIpKzr+iPxx6hcoJbl5V/neOQM8VWwzUOdTH4k=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=i3sT9ci5IplMPol2jTxrRtxvBvvDiNyZy/59r2QYZQpt7JObGsK1l3u10Cb8CRGGNt8BCx9daQK+nr+FQNAnDiFl10be7sQs/GnJqJ2lMpFDPPci4YVP9ACVk5sGjh9wyR6u877+ktM8Q9T0eIdcZtpL5iBUPvMGKkg5DHon53I= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (1024-bit key) header.d=collabora.com header.i=nicolas.frattaroli@collabora.com header.b=jSBSe9/b; arc=pass smtp.client-ip=136.143.188.112 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=collabora.com header.i=nicolas.frattaroli@collabora.com header.b="jSBSe9/b" ARC-Seal: i=1; a=rsa-sha256; t=1765278918; cv=none; d=zohomail.com; s=zohoarc; b=M/O43k2hYGpfnvnTH3+QLd+z/1WOPyPdc8xtPcABXMwiYkaq1g9SqQEaquGczbpdeL2uKrjarGrx4MAU1Pavo7YZ48dj6GcLyP652BVHlS1Nl4PZz8/UHfHQQwYl/b58Qy2Dz20KgbfEUDaBLytPOW8kGtT6lT1Q9skhmuC8yOg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765278918; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=CS0QxKNP3vOnv8q3yaF11BPDVZZzculrxSbgljutXxk=; b=YbVx0fTb121vjUNWXOPU4JAHzUqTS51aW2mXln7st6qrYiOQwaHcNqwSXyZfJXrovZFW4qIagRZ9KRKY38S+fRIh/cNrcKsQ+y0NV3EchdfLYHJgADAct4HKQHywG95QUBtHdJyn7qBjL7lkr/1oCbK9iaR5SBbCiHiz2Akq1Fs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=collabora.com; spf=pass smtp.mailfrom=nicolas.frattaroli@collabora.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1765278918; s=zohomail; d=collabora.com; i=nicolas.frattaroli@collabora.com; h=From:From:Date:Date:Subject:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-Id:Message-Id:References:In-Reply-To:To:To:Cc:Cc:Reply-To; bh=CS0QxKNP3vOnv8q3yaF11BPDVZZzculrxSbgljutXxk=; b=jSBSe9/bwG0kWjdRrLCBGvuWjTMaTDv9/2AGOnZiW6rT7zcKnH217cm32MPYKOdO 4AsftTnRt1S4CaVYdm8ZYe0DiUUtuuQb/n/LIuQlwCYfNmgd4bfE/mdvH1cQx70JD/7 M3QrWRPqliYlyc5eH5xt3VUvpPA13/gZ3N0mfjQg= Received: by mx.zohomail.com with SMTPS id 1765278917298884.6425701616823; Tue, 9 Dec 2025 03:15:17 -0800 (PST) From: Nicolas Frattaroli Date: Tue, 09 Dec 2025 12:14:20 +0100 Subject: [PATCH v3 7/8] drm/rockchip: vop2: Use drm_is_afbc helper function 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: <20251209-vop2-atomic-fixups-v3-7-07c48f0f1f0d@collabora.com> References: <20251209-vop2-atomic-fixups-v3-0-07c48f0f1f0d@collabora.com> In-Reply-To: <20251209-vop2-atomic-fixups-v3-0-07c48f0f1f0d@collabora.com> To: Chaoyi Chen , Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: Daniel Stone , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, Nicolas Frattaroli X-Mailer: b4 0.14.3 From: Daniel Stone We don't need to do a long open-coded walk here; we can simply check the modifier value. Signed-off-by: Daniel Stone Signed-off-by: Nicolas Frattaroli --- drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm= /rockchip/rockchip_drm_vop2.c index 337b01ed29a6..ea84aa5c625e 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c @@ -1207,7 +1207,7 @@ static void vop2_plane_atomic_update(struct drm_plane= *plane, return; } =20 - afbc_en =3D rockchip_afbc(plane, fb->modifier); + afbc_en =3D drm_is_afbc(fb->modifier); =20 offset =3D (src->x1 >> 16) * fb->format->cpp[0]; =20 --=20 2.52.0 From nobody Fri Dec 19 09:46:08 2025 Received: from sender4-pp-f112.zoho.com (sender4-pp-f112.zoho.com [136.143.188.112]) (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 D5EF7306D4A for ; Tue, 9 Dec 2025 11:15:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=136.143.188.112 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765278951; cv=pass; b=l9TyRvcdoPRgo/GjZt9as8JAU92z2hbrvI44+vgYb6LASbAUgpDa7PvZXPyV0XEVVfAe6+siQILyP2FNJKvLPN4O9IbS9Ae0/3wBGLDKHEabTl8lWZDy2r6t9XC38xxeoizIT6Milzz8/+DUe8AtN5IkNFBW9Qcu/7CwQ7u52E0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765278951; c=relaxed/simple; bh=+E46UnC5uj1s7eImoS1s3DWeqpOnsi4UsbyNVrwJZxo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=gsR+fzlh7/sPggb02P9yzPPLXPchei1JRyOcIJvNDGa/4pbTyLWKKdsJTf7ag2WE4upCZBMYckOdg6Tp8oNq4HPkdbJbwOZsKnlMphI7hgvhvnYf0NHfzrtZl9eARJvxmEXdoMrxP56pVPf0/xfYuQYghkMYIGZwsJmlSs4DyvQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (1024-bit key) header.d=collabora.com header.i=nicolas.frattaroli@collabora.com header.b=dkjT+MfY; arc=pass smtp.client-ip=136.143.188.112 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=collabora.com header.i=nicolas.frattaroli@collabora.com header.b="dkjT+MfY" ARC-Seal: i=1; a=rsa-sha256; t=1765278922; cv=none; d=zohomail.com; s=zohoarc; b=GPcL+MjKcBMHlrIKVNKofQP1mh/utPQFrrfz9+8DwsC2UJFE+hsbaLmAgaTfS6sqky3NrQ1Stmbg4Q8IQaXfnk5qXgzRFB7RqYOT5f649U6K28GHEot2NL0m9zwqV6Qk+uA2f8SNdIF7tjT+nWfUq1S4omINI6VuOtGfnP/JcuE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765278922; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=wBZjRDp57sjQw7FDNiRJSgPgPYjOshswlUZYljLB89Y=; b=dlOKeZJ3/C615bZ7DhWyEdczJV/ALrjOsZK0ofeoILHEuBCcKc0d4v01aSWF1fTlLUgH8OyiSyqhqgTUHDDL7wXQVUsyYDwWpKdZzrnIVyF4HAU6iqe9iNfrCe1xM2NcQ7EOYBuoHhof/JetJ3N3yeJMd6/NFW32aGuW50i0iB4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=collabora.com; spf=pass smtp.mailfrom=nicolas.frattaroli@collabora.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1765278922; s=zohomail; d=collabora.com; i=nicolas.frattaroli@collabora.com; h=From:From:Date:Date:Subject:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-Id:Message-Id:References:In-Reply-To:To:To:Cc:Cc:Reply-To; bh=wBZjRDp57sjQw7FDNiRJSgPgPYjOshswlUZYljLB89Y=; b=dkjT+MfYaywsF2ZQIdvacIxNP9ZrqeP2cQY6kqzkrTCysWeATySEAXYq/EUlRhi4 ZG+Wb6Xdp4S7vwk9znMV9TwQ4kXFhSohRTGg+ZR6ypB++8p4/PQ0YZlTFOKc3oSjKy7 b1w+DnYgVWp6K0LrDzaz/opFVFcT76yrnC825FvQ= Received: by mx.zohomail.com with SMTPS id 1765278921243166.8176139031351; Tue, 9 Dec 2025 03:15:21 -0800 (PST) From: Nicolas Frattaroli Date: Tue, 09 Dec 2025 12:14:21 +0100 Subject: [PATCH v3 8/8] drm/rockchip: vop2: Simplify format_mod_supported 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: <20251209-vop2-atomic-fixups-v3-8-07c48f0f1f0d@collabora.com> References: <20251209-vop2-atomic-fixups-v3-0-07c48f0f1f0d@collabora.com> In-Reply-To: <20251209-vop2-atomic-fixups-v3-0-07c48f0f1f0d@collabora.com> To: Chaoyi Chen , Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: Daniel Stone , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, Nicolas Frattaroli X-Mailer: b4 0.14.3 From: Daniel Stone Make it a little less convoluted, and just directly check if the combination of plane + format + modifier is supported. Signed-off-by: Daniel Stone Signed-off-by: Nicolas Frattaroli --- drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 56 +++++++++++-------------= ---- 1 file changed, 22 insertions(+), 34 deletions(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm= /rockchip/rockchip_drm_vop2.c index ea84aa5c625e..579fe794a0b9 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c @@ -367,59 +367,47 @@ static bool is_yuv_output(u32 bus_format) } } =20 -static bool rockchip_afbc(struct drm_plane *plane, u64 modifier) -{ - int i; - - if (modifier =3D=3D DRM_FORMAT_MOD_LINEAR) - return false; - - for (i =3D 0 ; i < plane->modifier_count; i++) - if (plane->modifiers[i] =3D=3D modifier) - return true; - - return false; -} - static bool rockchip_vop2_mod_supported(struct drm_plane *plane, u32 forma= t, u64 modifier) { struct vop2_win *win =3D to_vop2_win(plane); struct vop2 *vop2 =3D win->vop2; + int i; =20 + /* No support for implicit modifiers */ if (modifier =3D=3D DRM_FORMAT_MOD_INVALID) return false; =20 - if (vop2->version =3D=3D VOP_VERSION_RK3568) { - if (vop2_cluster_window(win)) { - if (modifier =3D=3D DRM_FORMAT_MOD_LINEAR) { - drm_dbg_kms(vop2->drm, - "Cluster window only supports format with afbc\n"); - return false; - } - } + /* The cluster window on 3568 is AFBC-only */ + if (vop2->version =3D=3D VOP_VERSION_RK3568 && vop2_cluster_window(win) && + !drm_is_afbc(modifier)) { + drm_dbg_kms(vop2->drm, + "Cluster window only supports format with afbc\n"); + return false; } =20 - if (format =3D=3D DRM_FORMAT_XRGB2101010 || format =3D=3D DRM_FORMAT_XBGR= 2101010) { - if (vop2->version =3D=3D VOP_VERSION_RK3588) { - if (!rockchip_afbc(plane, modifier)) { - drm_dbg_kms(vop2->drm, "Only support 32 bpp format with afbc\n"); - return false; - } - } + /* 10bpc formats on 3588 are AFBC-only */ + if (vop2->version =3D=3D VOP_VERSION_RK3588 && !drm_is_afbc(modifier) && + (format =3D=3D DRM_FORMAT_XRGB2101010 || format =3D=3D DRM_FORMAT_XBG= R2101010)) { + drm_dbg_kms(vop2->drm, "Only support 10bpc format with afbc\n"); + return false; } =20 + /* Linear is otherwise supported everywhere */ if (modifier =3D=3D DRM_FORMAT_MOD_LINEAR) return true; =20 - if (!rockchip_afbc(plane, modifier)) { - drm_dbg_kms(vop2->drm, "Unsupported format modifier 0x%llx\n", - modifier); - + /* Not all format+modifier combinations are allowable */ + if (vop2_convert_afbc_format(format) =3D=3D VOP2_AFBC_FMT_INVALID) return false; + + /* Different windows have different format/modifier support */ + for (i =3D 0; i < plane->modifier_count; i++) { + if (plane->modifiers[i] =3D=3D modifier) + return true; } =20 - return vop2_convert_afbc_format(format) >=3D 0; + return false; } =20 /* --=20 2.52.0