From nobody Fri Dec 19 12:49:00 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 596DB27B32B for ; Sat, 6 Dec 2025 20:46:15 +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=1765053977; cv=pass; b=DL6ZG1djZtERpWo2zaF16iTsQYqgwWouzKWWfUYLPcv51UzMLswPznAlpxhINpiKLfw85prDRhYpIZYVtu1uWUmKeq7hes7C7r0jeVLvQ6N7b11S80JzH+KbeI7qGtGw3Vu1ZA9xjuADQyB1eMpDwlewgboLVRXMI7zDdjOcvsc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765053977; c=relaxed/simple; bh=6E18dV5zOcIIOGTLCMr+qSBcDG6bvbXnDI+YtnfYsOI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=rCr3e8b+nEM3rGjWU/2WnQ0Y2w4fLevVPD8fPbSIFIwLRJbh/nyKYySdg/lppm1sUwjHAmAXdTFR5svPLHN9jHE+Euv0p+W+QiYqE6p7wUi7EdSyt2pnI8+N6eMwLUGR1sJqYBB1TT4L1RxvPlua0FPGW5CU3ZBFPiSBXzdValg= 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=dGlxK8TY; 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="dGlxK8TY" ARC-Seal: i=1; a=rsa-sha256; t=1765053942; cv=none; d=zohomail.com; s=zohoarc; b=bxKxX6bz3DVF7YxxfRqjfwVgFsHjh0zZMWFwX02HAjgyZn2nVlVT+AYF0JJKUNMeBP3dZL+NrtGkftpQgR3x2Op51YmqZzuT36XqkOtjhdZSLZBbIgHnSmvf8ZMWe9zaDcyfixpa6856V9yXEsKbBOncuNj6vyCn2fBtKaIryBw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765053942; 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=PjBXyb9SRnT63beS2uyQjY+xkQ2a46zTQRJLrMdt4PC02LhuR1qTcJ9BQHzJKbHTUeZbSkdZJuV3C+ms1iP8K3QdaDtdGSx1fZgiylYr6KJ3W5LRpl3l8aXk4es7VnvkGQSfV6eZ/ZF/oLK/Hu6sof7HwhRqNb4HpFd1i8hytdo= 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=1765053942; 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=dGlxK8TY+xA/Dg/qdYMwl7T2Kg0iLNu73rvjEY0NROd9EnRzBsoMkXsbfcW9B7vp Oq8qeP+5KUk0FFX+xkNE9nsbsFtg+S5DJz9M1KbXuqX3eSmXr5GIVVj4Hqk3JneZoZv /qL9yzB7ICQtHlckBINWsAbwzZdkjV0VaCfAaULs= Received: by mx.zohomail.com with SMTPS id 1765053941764885.8345194629629; Sat, 6 Dec 2025 12:45:41 -0800 (PST) From: Nicolas Frattaroli Date: Sat, 06 Dec 2025 21:45:11 +0100 Subject: [PATCH v2 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: <20251206-vop2-atomic-fixups-v2-1-7fb45bbfbebd@collabora.com> References: <20251206-vop2-atomic-fixups-v2-0-7fb45bbfbebd@collabora.com> In-Reply-To: <20251206-vop2-atomic-fixups-v2-0-7fb45bbfbebd@collabora.com> To: Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: kernel@collabora.com, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Daniel Stone , 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 12:49:00 2025 Received: from sender3-pp-f112.zoho.com (sender3-pp-f112.zoho.com [136.143.184.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 6B8CD21E0AD for ; Sat, 6 Dec 2025 20:46:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=136.143.184.112 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765053977; cv=pass; b=t9dv5Hps7KFn1ZX5Itl+T+qNpBYPE/zvkxQLbnqk03XWTxKWg3o+2q2B1aQ2cIcg21HKnqEaWIq0qv/uJLA32UAcUYKDeUjwJeiXc0mgAjowBlFDyarv7yWu3HOfeZzzGLxJ/lbp/NQLflb90oUF0pOL4Bz8+qe/d0RSxL6pxWw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765053977; c=relaxed/simple; bh=82uMyyiluSqW5YQumbrtY/eXvv5KG0Qv+Rw8sfrSY5w=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=fF5a4ypaPf+VTY50HF0rL0beBoLQE00IMZcJoTislrO1lsvAnYaYGnBAyDBUinHFeQC4NRaxOFVgPV3aLKyHCkkJW88S7/zbb+RVtZ1X55pZny+AhXUSnfvgne8TMcBvUf5nRCblqc8Rst32BiKYN/WnE4sUJuT4bZlxXRzOCds= 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=V8c8JVch; arc=pass smtp.client-ip=136.143.184.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="V8c8JVch" ARC-Seal: i=1; a=rsa-sha256; t=1765053946; cv=none; d=zohomail.com; s=zohoarc; b=bD5fcC8ts8h5ZfA5QkIjEJ/ChgPMTTwuY8euU3wHhgQzmxWgJRUXyca9KpJ/xKjpeHEdonL7T72utxsc9SE5oY53ShCD9IoanfEzF48BXVERH5bnLUAPxe5+sSQxDzLYLRzRdn2nEeycWZORJBDB/+o6zbZmo+Hh32e52m1DOHM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765053946; 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=NgalSxS3pnR66klEJJjZgdrSIU5Fe4lzj4nfVNpCSthkotUS35SlQDXIPXyq2omXPt1DVoO9j7+i6+2PAo7UoUM3v1L6uT6IhfbeNlkmf9cyCjVJDX1L1nb0Rm0vFIxT/LcYyiYyJ8aazBreKDkJQGvcg9jGhQZWa+a6nskS0wU= 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=1765053946; 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=V8c8JVchdq4FF8QQWXkF5WbinnsMUXxbxqBuYuzqzTZ53V1qDwii6UI8i/nIs38R tQ440YkyxyJfAUb5tbZLhJFbK3M46N4Qqxh2hhd45vOSBd2ATBzdL7Ra/rGYNsBYYBP RR9une20Lr/kxlh7x84KuP9VqFuw3Ui19TaT82IQ= Received: by mx.zohomail.com with SMTPS id 1765053945136258.821617888442; Sat, 6 Dec 2025 12:45:45 -0800 (PST) From: Nicolas Frattaroli Date: Sat, 06 Dec 2025 21:45:12 +0100 Subject: [PATCH v2 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: <20251206-vop2-atomic-fixups-v2-2-7fb45bbfbebd@collabora.com> References: <20251206-vop2-atomic-fixups-v2-0-7fb45bbfbebd@collabora.com> In-Reply-To: <20251206-vop2-atomic-fixups-v2-0-7fb45bbfbebd@collabora.com> To: Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: kernel@collabora.com, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Daniel Stone , 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 12:49:00 2025 Received: from sender3-pp-f112.zoho.com (sender3-pp-f112.zoho.com [136.143.184.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 DF0002D97B9 for ; Sat, 6 Dec 2025 20:46:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=136.143.184.112 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765053984; cv=pass; b=p2qsx6asBPV2JT1Am2UHoqAL5I7NNWDSRYcx2/y0wKA/z1K4Ueh0ONaQ1M91Tu0f7lGzU0UrmCxSsAaxhCHy6BIAA0tzCQqxPyyuw8vg5acCk8p5741AQpwsG4fDUksFyxBRFFx6L2LI2RTC2cb5bnHgu4t6aJ/4s95RKA5SHFQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765053984; c=relaxed/simple; bh=hoxTyLouUCCqOV1h0WsnRKoR9ie67oP8zsPO9XsAo8c=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=nXtzkjcu1KEXlm18F7l565cSZ1H11tbiL4bWHMNk25+ajSL2Q0MmKdJl7qBmkK3YBqdve/OZvpNuJrA99Bd4/NuvfEKH7G/VBRFAMRYYu/dhHLvWWW481HK/1Uy7GPmVg+6iB6ykYo0Kx4XvnkC8dIDk8P/s8JCr822pjoL50bA= 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=Bp916Y2L; arc=pass smtp.client-ip=136.143.184.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="Bp916Y2L" ARC-Seal: i=1; a=rsa-sha256; t=1765053950; cv=none; d=zohomail.com; s=zohoarc; b=SkL4KxKm+YI7wvX3aiDPUHWHM+8knSDvWuRjCA8UTMK9wvJSjSHGui5g9qZ2V+371rO7j8rbmQyYzttTiDpZUg9zAycSFj1LQ9LZTvPVOaY+rWeLeZ4L9Rlu4qcevVf4V9fggtXlpiE7rKac11N1svGTzn+4NoJQ05FhDos/EnU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765053950; 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=fp60g4Urhrql8vq7ZX7p726eIv57UCX11/qkm0O2cRfFrnFWVCn8/YilWgtVj1SJWD2jZCl+H3qokhGtwFzKGoodafxSDzfFjZFpHOkadOy8xzSmXEL2Db/YU82vCoWxy1ZE4P973IvKTN38WabAyONrhm8HegnEUZQjlINdwg8= 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=1765053950; 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=Bp916Y2LODD2d1wnzNSKfaRFVyuzMTdNir66+wSirTi3v+1Pe+AUFfTp1juo6xkG Ij/7TKr0HR2xx6VIqrZlPx/Wpr79Q5Pw4SlFhs1BG8WQC8/kzgZqsr8IldWbtWk9FW8 8QFYkwh/Zwu30hzf2fFi9tUtD8JExifYo/9BvJko= Received: by mx.zohomail.com with SMTPS id 1765053948520766.6119631195057; Sat, 6 Dec 2025 12:45:48 -0800 (PST) From: Nicolas Frattaroli Date: Sat, 06 Dec 2025 21:45:13 +0100 Subject: [PATCH v2 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: <20251206-vop2-atomic-fixups-v2-3-7fb45bbfbebd@collabora.com> References: <20251206-vop2-atomic-fixups-v2-0-7fb45bbfbebd@collabora.com> In-Reply-To: <20251206-vop2-atomic-fixups-v2-0-7fb45bbfbebd@collabora.com> To: Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: kernel@collabora.com, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Daniel Stone , 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 12:49:00 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 1D35D2D877C for ; Sat, 6 Dec 2025 20:46:18 +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=1765053981; cv=pass; b=l/eAN1qEu8kzmsarpcKUl3docXSlmgJcn41TAojKs/7kBZhfnVdjaVv8N++TbpqNxjMlQk9QIrLak4ESeUmAUlkU+XlybeaP/bluqJblUMl80dy0RcbFx1s2GJW9OYy0WPQMWG+8iQbOBxz1C2Qf8YprNfeKi+8GPTjb3ZI7zKs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765053981; c=relaxed/simple; bh=qXE5LhM6iSNg485hQXPiKU/8V9xmLOfcub8MBixUei0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ItvubumYjbnaRhZxZ7iPnFhZ3IOQJ9c/qmMx2Do8sWOfwSxqG1UuH1WWArX4go6yEiKEGEznSw0bHef74zUDbmqOp1Pk/s6YY7dIHuMofG7cO7e5I9BMv2gdUUkfHX/vZeOUQONnHC7BTdc32YlFN+8KLJ7q8O2sHOgCq6RoEfg= 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=aTyfgzyK; 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="aTyfgzyK" ARC-Seal: i=1; a=rsa-sha256; t=1765053952; cv=none; d=zohomail.com; s=zohoarc; b=kbaWUB1PCJgkXehwdOxd353El/GAykILQlBOFl+lWSuhXiIwzoXIwPYiS8BT0pAytMXqU012w+NkRKAdG+aMFxEj7C5UKLChZQ6nLIqGztmoJ+UfouGXYBYmqKTy/w61KG12dj/RM/QzV7H1omi1eZ5WpVchtIfCqqv/JlHm78U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765053952; 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=G0aqthGYccBDaPtwYeA4PF5vLiTR97ZedQGGVTxxz9Q=; b=cSR8ERIVx2tHdMREAFZYtHP6SY3jl/CJ5y2mYqwyLGQtLyCPdKNa75TypoxXOWpJY3hRkjNN7Csbeuj4FFThPGR2uzOHNY7+wAbnOVLc+IxKDMMUYJ8Gr+aT6utNjdz6TA5rDxrxr4sz9ttcyx6EZxrFTc0es+Z+1/iq7XlwEfM= 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=1765053952; 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=G0aqthGYccBDaPtwYeA4PF5vLiTR97ZedQGGVTxxz9Q=; b=aTyfgzyKGnXfRTuJdzCV7aKoniLCMwC/BIinK4PTLHvPG63CSWdKjiEzlqfnsNim Pji2aEnq5ozhcw3MWyfIYNsFMhqDx+YcGGLY9u9/dVK3Eo5MELFPjS9GRRrP4DlvoRb SOHaI0wS4l0vSgiZr3Fqpok2yCXU7OV6JBOSlxM0= Received: by mx.zohomail.com with SMTPS id 1765053951890283.3847103890606; Sat, 6 Dec 2025 12:45:51 -0800 (PST) From: Nicolas Frattaroli Date: Sat, 06 Dec 2025 21:45:14 +0100 Subject: [PATCH v2 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: <20251206-vop2-atomic-fixups-v2-4-7fb45bbfbebd@collabora.com> References: <20251206-vop2-atomic-fixups-v2-0-7fb45bbfbebd@collabora.com> In-Reply-To: <20251206-vop2-atomic-fixups-v2-0-7fb45bbfbebd@collabora.com> To: Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: kernel@collabora.com, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Daniel Stone , 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..bc1ed0ffede0 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 12:49:00 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 B81042DCBE3 for ; Sat, 6 Dec 2025 20:46:24 +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=1765053987; cv=pass; b=IISTwHf58tt6TH20yvQ1CDYCRFpr34mvn7f2l+mkVXEX0qFsEtoaFKiAlJLqlzNtQ7TuTs8R0Q8Guxt7wYH0Q6tLv2VRzGyG+OIXf/4dcoSoO/Kbgf1iwCPxtCCMlK/x+jHOXpQ/e2k5nlDdoUoq77u09NfcnQpm3C3Dm3Qwpq0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765053987; c=relaxed/simple; bh=/1jIqERbF5HVQJB+iiR0WtKNfV9vq1OynICIFs+YOTk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=uW9dXLxsg/7I5/nJVK2E8KLLXVS5X3rX9sSy/fTjAWCsVOkOqjMgYDOcHmO7WhNJ/9XLExZiiAZUU8TMYs0ZcumATJ6+OiNAq//F+f88y9uq+6+Dje9LpLgF2/mm9KPqHb1/Pkehh1RZxTEQX+XfhPdxi5upXBsGgbxMLpFmU0I= 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=hkeEnB/I; 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="hkeEnB/I" ARC-Seal: i=1; a=rsa-sha256; t=1765053956; cv=none; d=zohomail.com; s=zohoarc; b=ITPQ220Dv+ja9WoCT0KDih4EzAOaRP1kG1Bm+CXUiYnjTFKj5FbN6CStKaKVlJ1Jp51amjO1SHzTziIne9vayFz6fIal/gBAQOCX9ehWLuWR6rvu8BgSpaRF7iV6pCt7Fd7d3Ho0IuaShGDKO7pbCteLMS5AXjNqN+gfjha8PBE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765053956; 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=OXrmn9V5yp3R+LcTXtaXe7SnaMWebiHUR5EHbA4dxz0=; b=VHRXiZhNr5QD5PVq3NztbIBms1mW3gOvn+E15yHCZVB4V9/KywJ7kOp0iorHNMK0/Fuf2DW1MGWnJjEH3SaZEDtM+E8vCOkc4iIjjPbeQv/D5/zs5wA2S2ej9ivJj1HTjKzmUTvgC7ZT4CQwEluc7bn6h3Vv8CTNMfjgFRa/WeM= 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=1765053956; 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=OXrmn9V5yp3R+LcTXtaXe7SnaMWebiHUR5EHbA4dxz0=; b=hkeEnB/IzscPr3AQllUK6pmj6eSojy92DRBqPtlI7xuaV2TlPPdtoNTX9mRwpTfo SOZ2GUh0MTkP2ZPfwQTdvBx8b+Iwsc2T6+RAtQ6MgBvHa4NGEq/SGBnWf4Kk6FiqQwb M1F7UeRaYSe82GRe45vrBN3sAvpcDOOYuURdZPXI= Received: by mx.zohomail.com with SMTPS id 1765053955301342.1403973857058; Sat, 6 Dec 2025 12:45:55 -0800 (PST) From: Nicolas Frattaroli Date: Sat, 06 Dec 2025 21:45:15 +0100 Subject: [PATCH v2 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: <20251206-vop2-atomic-fixups-v2-5-7fb45bbfbebd@collabora.com> References: <20251206-vop2-atomic-fixups-v2-0-7fb45bbfbebd@collabora.com> In-Reply-To: <20251206-vop2-atomic-fixups-v2-0-7fb45bbfbebd@collabora.com> To: Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: kernel@collabora.com, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Daniel Stone , 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] 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 bc1ed0ffede0..e23213337104 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-byte 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 12:49:00 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 A8E4E2DE703 for ; Sat, 6 Dec 2025 20:46:20 +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=1765053982; cv=pass; b=u0fY+DsHLNRuXjbZ8tq1TGrsSVW89vObSJm/pngBfuoFr7bGZVtZT6/YVresJVpLmgu5Vxu5CNNGPx8BD3o+m5obmh90majo4ewaesLo8H/4TtTrzEpa6E/JNBWqPTFx9/fab8TnNYjJhgrUGe82XnQT9GwWnsWCTl8k6Q86qdE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765053982; c=relaxed/simple; bh=JeFh3s4Pe+lYenps5B3vMg32woP59S72K8ejb6Nov7Y=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=R42phDGBddDHPjjftAZo2IpIDskqtT3TFbA9EJ4wCYw1LwEAP4C/A5jAgOuqFTov2AFH+WHslqAemY+ziVfCbx0+IsNwvHWgg27hUzdOQPYg9Y5im3gsSjtbaWw1HKB5wCKpyEolq5+Qp9pF3JxjHnzPr9C1qLDqGLU2tvYMAEs= 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=Efv5fWXr; 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="Efv5fWXr" ARC-Seal: i=1; a=rsa-sha256; t=1765053960; cv=none; d=zohomail.com; s=zohoarc; b=k3yrkZtaXRbcXbcZvyexEEorflSIzmNAN081YqA6nGlsBbjKAM4Mdc8bghTDNd1aOia1kD5zS/T3w8xGpWJjTPGCIjCZLq7ilALxY/CJp8fpIu1Xw1ymVB7/9qIQ1kMp0OS8TpQpFxFRPAMV/SfZSCCw2fDRo39RtXAPUJvs5Og= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765053960; 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=ENE3v57EU2IVCcCEZVGBw5ReXzA8phnW9WgvWoxQgCM=; b=IRJG3gSglEa7Sw4LbMczphsNR+2e5jPIZdKchcrfTLMUa1P0eVwVEYCmTjYy1woWGdbmZ2fpN0PB8m+WYHVzqQe7Zc1/CnfHjTZtsqYMOc2Q7OGI8e2UCk06ciwN7pexRsOZBipzjR+wBaaLvZMkQ2tOiREs89ugzBHl1S/F0+g= 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=1765053960; 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=ENE3v57EU2IVCcCEZVGBw5ReXzA8phnW9WgvWoxQgCM=; b=Efv5fWXroodZA3SlIlNSFxJHtu/pz5HSWz6fbzfKfZjdIGI7vDvTVzE4ynmbHRtk VZXHBviFAP+QEQ7f8D4ac77vHy6V9DlZGqdZtU3TCv8CHMe2dUF3NgmmFU+fD/Z9sre RTRnTJCtfGYgd5iQhe9dk7c8bZM9VIh710opuVwQ= Received: by mx.zohomail.com with SMTPS id 1765053958679133.395463320163; Sat, 6 Dec 2025 12:45:58 -0800 (PST) From: Nicolas Frattaroli Date: Sat, 06 Dec 2025 21:45:16 +0100 Subject: [PATCH v2 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: <20251206-vop2-atomic-fixups-v2-6-7fb45bbfbebd@collabora.com> References: <20251206-vop2-atomic-fixups-v2-0-7fb45bbfbebd@collabora.com> In-Reply-To: <20251206-vop2-atomic-fixups-v2-0-7fb45bbfbebd@collabora.com> To: Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: kernel@collabora.com, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Daniel Stone , 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 e23213337104..2a308cc31632 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 12:49:00 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 3F5C62DA75C for ; Sat, 6 Dec 2025 20:46:27 +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=1765053990; cv=pass; b=HisN+/fXBBbW2mDzZIdv0JdOPmbE7q/mmIzDL9ixpudAoyLabbEZk2VC+WmrUYEJFRh9wgfmBG9IVkJdlQxckUPz7Fpw0/yyVlUk9Q02PQNFL0qIK0C6mcey0mLQt6S9DzXQOZCbidohCYDDnIiBcOojDENCWBuYaVtjCba6AiU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765053990; c=relaxed/simple; bh=qInB8xTzg9Mo7s8c4UcUdM6ICFWKp65lqAcRjGZeTnw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ATeMxzQOdjDxLag9rjK41QxyHgZgTwd5BAF69y3vG62oLn41Mm4ekHRcZWBZbctgVM7pJFMGnbUNqLnT5oXCiYGpMqyEmxxFboW4LcxSwHNFpRXU3JPkZOaHlE6vIaZRQNiiB0/jDBPstshNXD0dlSzLiUL53t7YFVQ88lE980A= 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=XHTmfXLB; 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="XHTmfXLB" ARC-Seal: i=1; a=rsa-sha256; t=1765053962; cv=none; d=zohomail.com; s=zohoarc; b=GpWmrRd5Efr8zcWpSIYQruDSqir+/VHWi9mm8apLf6rE6wpN2o1rl6XBxGIPdWV0W/9jGNHN5CNeGnbAKDHuchrs4bWXhwYyuQ8qw6IEBi2VXDuqg6NY84avUv8rgvtdlX9dTxbFgXyUmgIKHhrTj3nSGhGizg+bRql/zYWUVck= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765053962; 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=+DJMiovkGJ+i2ggvzErlRLV4kZ5tOdhjMfzzT/pSZtU=; b=L8Oj+sH4vHQrpSHhflEmomHTyF141CrXFxKcV1RYG/uK3QMvlD0rPMSs01GCoagoqPznMR+G5Dy2swxPJjXKJAs4PEzog3tXITqhLSPLEzQAic6GKNl09Y0a365uchuzQ8PIHt3CfWJE4Tr/V/Ern6tEXMDPnlBMSQvSO2ONqAY= 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=1765053962; 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=+DJMiovkGJ+i2ggvzErlRLV4kZ5tOdhjMfzzT/pSZtU=; b=XHTmfXLBsCKzVLzM5D4p01Z7J2S+7ucqnmu5TwIBsxifzpgo7qUOXvovkKsCcI1B cTfIvv8AO6nBxSY2j61gJKdSLeuGIZWz47bbJxl7X5GVJ8OHX54DmI9aU2+9SNiVZzu 9gVqkGCVEKrdMWc7QIidsJjCAwS5mcwOT3VnsTRg= Received: by mx.zohomail.com with SMTPS id 1765053962055216.10515253280266; Sat, 6 Dec 2025 12:46:02 -0800 (PST) From: Nicolas Frattaroli Date: Sat, 06 Dec 2025 21:45:17 +0100 Subject: [PATCH v2 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: <20251206-vop2-atomic-fixups-v2-7-7fb45bbfbebd@collabora.com> References: <20251206-vop2-atomic-fixups-v2-0-7fb45bbfbebd@collabora.com> In-Reply-To: <20251206-vop2-atomic-fixups-v2-0-7fb45bbfbebd@collabora.com> To: Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: kernel@collabora.com, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Daniel Stone , 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 2a308cc31632..8e0727c3523f 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 12:49:00 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 AF995218EB1 for ; Sat, 6 Dec 2025 20:46:39 +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=1765054001; cv=pass; b=AgBbnPPuAZP7ZDKFvuBf0O/HcdXakPt2Zckzgae5dnNMgs9fc4WOipt7yBd+6h1c5lUNq+2j0H6ac5hfpN6XGUbC3G90lbJjWATZEELNczPH3v/20ZCfy50i3kcbs5xz8K9Xp9oxAmDxg+8IC9SjwWoa/lmv9bpOR9ROS7aSFAQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765054001; c=relaxed/simple; bh=QYCujzrhn8Xjp4NO8QsZ8UpwtxeBUzwimRCAoCPklOc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=qLl1Sw5b4tZG1EvG1MsJsWc1vMajn29Fq70IdPLhWt8lX+wJB3WTsw8YlXqt3FiwVi+u3Ns/Hzkv222+ziQRmfUIwLueUzITjj6DoxeqKf5zP6KdyiVvXI2y2zGRT0vYD3dRbVYRi9U/XQBWm7hB04OhS2PpD/ZbxRhQa0B2RYI= 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=EArln9hX; 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="EArln9hX" ARC-Seal: i=1; a=rsa-sha256; t=1765053966; cv=none; d=zohomail.com; s=zohoarc; b=SCXAXr/cKQbkSyJnnQXhGEPv/m23oTHp8CWgP1tF44rfkuHDgXOsyrZVwO+eKblk/1Afxs8YnNq9w8uZQMg2pnlyC6eUljkAfEL/ONqk4MG7E/rVjnK9YKwIlECx5RV7SIqoWEn8VXfZTAOSEcjMBPinpv0awvMxj3EYPPyVcqs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765053966; 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=WG+GHNTWtRkRqPw9OJ3qyQ3Y1/EgQPS3VRAq88dpP+c=; b=LWMtKmu+64R4kU5hzDnePL+jdUksC2xkmjRvRI+IUIkeySsWZuqJPBsUcPQ5P1BChUquw9Z6CpjaSk1LD57OSbNwmpJKCiXIsNl5QuqGXS/XfieyQLTHgN7xNKCUOfx75VOwPCySTi3HtyKpknraHhcpGFF/YwdDQzjnzWNi8cE= 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=1765053966; 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=WG+GHNTWtRkRqPw9OJ3qyQ3Y1/EgQPS3VRAq88dpP+c=; b=EArln9hX6OPnWX+9bZ/pxKal2jooKwQSEvgJUjkh+X2VI0XWBFqxQxwiIjvBft5O gymMK3i3uiclaljpoFqlp3xh1FdnbTHEDY6HZW1nCU3+cJHwIpqx2ZRvIkqQ9DjSAO5 EkiG5T0JG59wk0aEWAulgvM5acWIfQ3nG6/ZeQhg= Received: by mx.zohomail.com with SMTPS id 1765053965442536.5205499796182; Sat, 6 Dec 2025 12:46:05 -0800 (PST) From: Nicolas Frattaroli Date: Sat, 06 Dec 2025 21:45:18 +0100 Subject: [PATCH v2 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: <20251206-vop2-atomic-fixups-v2-8-7fb45bbfbebd@collabora.com> References: <20251206-vop2-atomic-fixups-v2-0-7fb45bbfbebd@collabora.com> In-Reply-To: <20251206-vop2-atomic-fixups-v2-0-7fb45bbfbebd@collabora.com> To: Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: kernel@collabora.com, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Daniel Stone , 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 8e0727c3523f..10b59487019c 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