From nobody Sun Feb 8 20:49:00 2026 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 7E70B293C4E for ; Thu, 11 Dec 2025 20:41:21 +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=1765485683; cv=pass; b=GJ+Z9Epk81T2/cdBQeHWN2wSElu5uSemLKtPvZnDM1kw3x24Oqe5WwbvYAltsOmtslZUWWGgEyb/CAAfmGihISKfNLWFF1ksslcFuIiBZOSn5bhfGDDm0m7bYJzN/84URUF6HpniCpj2rlYxZJyXZgAWeNKYefIGW0ntOTfNgno= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765485683; c=relaxed/simple; bh=6E18dV5zOcIIOGTLCMr+qSBcDG6bvbXnDI+YtnfYsOI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=hgLcRKRWP4W7BIfllJOyo24S1Q7a4Mjqgkk3iiKuJimmKHW96OyQDXZG9Sf9S2qOZDM6LiFbFA8NhE7IRizYWRABsn9aeBfJ00msQPs1SynmHN2gHDd9r0r4dMwy1qty/QSCKXgrt3t1euLmbFCVw7w4QA2u0NIbM6PbIveijlw= 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=i5H8CIpH; 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="i5H8CIpH" ARC-Seal: i=1; a=rsa-sha256; t=1765485657; cv=none; d=zohomail.com; s=zohoarc; b=WBkitdwJz9dfAeHGANV0qWkGie5Q52vUHt2nYnvJ5NzD5JtU/j3I+x1F57yCc5clt97Q/eOTynuGHIhIKA5+gxyxMYwbqYRHdNKaywy1PNnh/RHZHWdBbICjUxHF0430pC4WDEoKjnMFFOhCoAmOnPwvYVDvCPWGsofEsFrmOQ0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765485657; 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=Qeh1WLcmAkJBifekdvlq3k0MXXut5K3NiKTb4EhtSQHlR/GkH6arYl5rPgPd0NSkWEehpQn1kUF0cMgMi7bKu4auKM5FjwfdVDXfzluJX8GTxAbbYfDF+FsMA5em3g+FgLhETxrdHvQvFcxLUQx/ZsT49R5e99bKwkv9tqG4kQs= 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=1765485657; 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=i5H8CIpHjYGxo7s5vL60QrceF/q6gP8ijx93fnfxAOiuJYj0wd3ylce+eEfl4fkn x5kGwXr017YJnJL7RqyxCBigVkDjOffWHhpTzb6UqFLFfOvFmS7hXo534rT8YF0/2jm a8o0/3wvhxRiRUVdFQRFLPZHkZq+EPdXwTPN8eHo= Received: by mx.zohomail.com with SMTPS id 1765485655793219.61784133741503; Thu, 11 Dec 2025 12:40:55 -0800 (PST) From: Nicolas Frattaroli Date: Thu, 11 Dec 2025 21:40:31 +0100 Subject: [PATCH v4 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: <20251211-vop2-atomic-fixups-v4-1-5d50eda26bf8@collabora.com> References: <20251211-vop2-atomic-fixups-v4-0-5d50eda26bf8@collabora.com> In-Reply-To: <20251211-vop2-atomic-fixups-v4-0-5d50eda26bf8@collabora.com> To: Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Chaoyi Chen Cc: dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Daniel Stone , 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 Sun Feb 8 20:49:00 2026 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 AD7DD31B804 for ; Thu, 11 Dec 2025 20:41:25 +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=1765485687; cv=pass; b=O2+c+E/tCRa22GW7UsDNcgIAd8cTRoBSayuEPHuUx93IZtPIw0qx5GeQBsSXkxmFnvtpEtF1E08Fak7TXUni5XkgYKquU8FCVAKH1RFymk365/yaQg2Yol5+rlaw1IngZxH0WbZ9nGLmpdLKReqdv48MeHUE7TfCZ60GpjzwUvQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765485687; c=relaxed/simple; bh=82uMyyiluSqW5YQumbrtY/eXvv5KG0Qv+Rw8sfrSY5w=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=JW9Dd+Sd8FmuANDphgdUpsudQ/vCiFU9uT4XmOlYktVxeE6uyFCvvf1OIZF+0fzvbxs/UrETwvgHPHIrHSIbrIqWteA0EOZfFoLGebuYanEc0OJNKdyhd/iPahj4DLPWILAIojjsMwOUP3tMi/XHZM/0wpkj7qaMJ3TpoPtDj+I= 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=Zbky7nF5; 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="Zbky7nF5" ARC-Seal: i=1; a=rsa-sha256; t=1765485661; cv=none; d=zohomail.com; s=zohoarc; b=glCjeBqLM9W9eVr4LVPZ/ofWxXgA8VNn1/2fDoxkfbUcdrdsYspmbfOYPbZ5a+B2t1FFNPDEEkYRIi4eDGN71gGYZ104QET6Ay4lb54g5ocVn+Sr87HEfsRt0FQ43RSbI+YXruiRt9atIRSRttJJY51YnNxPvdp09iNW/U/Xowc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765485661; 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=GI4gM9o+zt2o96LBPPOv4IMpIs0GhFlNcHtv94jiJISRA65goZxuQWQ1vJTt119i9La326qFes2pKm1bbByNw+7PpV1pGv0jyE2XI1BN/VHxQ3XBwaaElp0+UhZaNDDeiUk8mUis813+Fxl9FbVlVT5eZwQczVNYPKqbKNVjywU= 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=1765485661; 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=Zbky7nF5AglguFA8f7zG8TF2qM24nZq5EKsK/AelehONl+cS/S5AoGuQTuQBrTtm rnV8ZG2Jy2g11d4zR0wTVdRgE4zzmmZxDQIWCQ0Q+s66fPbgkNSk4ele3nfBl74DFEr /4mabJqu50zsnpAJTSJKQbuC/bRB06RxReOZ2jJ4= Received: by mx.zohomail.com with SMTPS id 1765485659620252.49953475249447; Thu, 11 Dec 2025 12:40:59 -0800 (PST) From: Nicolas Frattaroli Date: Thu, 11 Dec 2025 21:40:32 +0100 Subject: [PATCH v4 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: <20251211-vop2-atomic-fixups-v4-2-5d50eda26bf8@collabora.com> References: <20251211-vop2-atomic-fixups-v4-0-5d50eda26bf8@collabora.com> In-Reply-To: <20251211-vop2-atomic-fixups-v4-0-5d50eda26bf8@collabora.com> To: Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Chaoyi Chen Cc: dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Daniel Stone , 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 Sun Feb 8 20:49:00 2026 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 2F37331D727 for ; Thu, 11 Dec 2025 20:41:28 +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=1765485690; cv=pass; b=OpQfEeMulktryAmngVkmI4DeyQabM0U2EvPWM/UQMDnwDPtvcpiOgAndGK9LThPkfIgLLmDuIPt70fzgY8mOiCiOFxji2RYaXI6s0OJcmtxSHUQ9czQDib0xZibbQjXFFoIrdztPXBje1V26FlRO2UzJGFFrtaQ1yTgVctaVt6w= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765485690; c=relaxed/simple; bh=hoxTyLouUCCqOV1h0WsnRKoR9ie67oP8zsPO9XsAo8c=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=qk5GxJVxU9+9zB/4fbAGdvckKYCN15JGKwwBlrxU89JRGaUZIRySUCQEEB/bPxE6UtDN4tFpQJA3AG0D+fJS3hfIyqWa5ztwEesyqj61K5rc2eWj/uBCqgj8EuEo4eZnYYw5dvNDf6hHkRd+O83q1f+mZiP6VaN1k9gv57Rm4m4= 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=f/DxjadV; 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="f/DxjadV" ARC-Seal: i=1; a=rsa-sha256; t=1765485665; cv=none; d=zohomail.com; s=zohoarc; b=CVjuaOpiZmFd839DhOl+cDzAiQpexFn18TyuR8/CukHEh3wQVZUbjE5NByDijZobaa8ziAhVvwRFZ+Uru45zpPv7yDOuxfvIci4kNYQUSniZNWojK+MJKgWictjPK26XSWgHMv6rmQp6Ojf5TqdyM50tNQaFy6GPBSUeEFJKeh8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765485665; 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=Bqjznx+qlJqbkI0aOagFx15awVy6F52xRGC/v5nMD1ZMfdrsRa6PdlpuYh6TfgBomjI8PVhPjMVp/8Dl/JvYpzDDfu0MKxG3UlrjonKjcKXBcmWrq4Jaz6nsdYCrUqehwYqs9/Pbp0TPcU6LyycCqZEAau6dst75q/jj21eutCc= 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=1765485665; 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=f/DxjadVpk4/dn1DwIbPhjvwYul9oCf4soLnLmuLbm0VPdefCl+pFJcuqdSXeY04 ZlE3Cpe118iOdlGhos8fFvq47oMY/mt4s/9Qwen+LaApkzIidA6/9wCHUcFJ+OyadBE qyt8ZXf6wyneVrH7jYjiGDaOSCKAr6KD5vLgHwQY= Received: by mx.zohomail.com with SMTPS id 176548566344593.21823898905768; Thu, 11 Dec 2025 12:41:03 -0800 (PST) From: Nicolas Frattaroli Date: Thu, 11 Dec 2025 21:40:33 +0100 Subject: [PATCH v4 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: <20251211-vop2-atomic-fixups-v4-3-5d50eda26bf8@collabora.com> References: <20251211-vop2-atomic-fixups-v4-0-5d50eda26bf8@collabora.com> In-Reply-To: <20251211-vop2-atomic-fixups-v4-0-5d50eda26bf8@collabora.com> To: Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Chaoyi Chen Cc: dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Daniel Stone , 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 Sun Feb 8 20:49:00 2026 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 8290D31D726 for ; Thu, 11 Dec 2025 20:41:31 +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=1765485693; cv=pass; b=h1F3IAy7vzxGsgweei/7/OQ1nOV+MqEG3P6Mz1lVlNH9aKmnb9ezAUtSwT/ysmUwNaPQshTXTj2ioeQWwKoGZv/0x+xXFnIYXdmowp5R5rHO8hTQIdacFWCM558pc9DG6Hgc0oAo6XnIl65xhyUTStC5hj+lDDe+GY7Cc7cQzQg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765485693; 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=P6Fzya2Vspagjd8wrnStk73AjfrWANT4iwTIwl5vy97HssdDUKDRbKSH2rLTdgKaqrEMDopjec4QpM8EJXT4BQ+UHT4NdtU55di+Xhzt04pWHznsinbq/5brkmEpJXj6owfqBHtlDdnNzdRktXn0sM6Jjywmqt7x4yJcvdC2FbM= 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=OgtUxXUc; 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="OgtUxXUc" ARC-Seal: i=1; a=rsa-sha256; t=1765485669; cv=none; d=zohomail.com; s=zohoarc; b=TG4KT9o+yZsoqhwhh3xC/tJN1is0Nehf/vg2/ZxmpprFb/G4wvMBW6UwUdyN6n/g1qaZ6G97r+cOiUmznmvsnin5iCL4wy22zAD2CIQgWLvrWHlZCa45l4EbZnvXPyVI+dJmBHmN0SG3N31YmGAOHFbCNNvbji3vh0CrDfn69oI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765485669; 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=b4Vgcudi24VqlzB9l2v0xVroPPfJZvBxvows661kpU9HL0b0pJb15v4BI5EfEeF3jA0wWENh9z7R9DuoH8GAlUDswpAPUYreWtql93rSWjQzJoSmolP/NMXNDd8IDf/EV47L0kXcX0DeoeXEyBYJ/ve40iMq4hfFtJJ07uLgRrk= 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=1765485669; 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=OgtUxXUc6c+Uf9NUx1fYnRvelRahKeqSWL707Sd9ip+8hKWlXJi5DIxsW2ckoohU N1/TPM4XZAoGH3dNxNk5Ae89DhizZr+tIHh8yS5oleZDxIN/gI8Tli60Ts6yS7coap9 W5SJDBJaKmTD901NkP4CoC3hpkrzk2T4Ey4TRSss= Received: by mx.zohomail.com with SMTPS id 1765485667363440.498232990705; Thu, 11 Dec 2025 12:41:07 -0800 (PST) From: Nicolas Frattaroli Date: Thu, 11 Dec 2025 21:40:34 +0100 Subject: [PATCH v4 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: <20251211-vop2-atomic-fixups-v4-4-5d50eda26bf8@collabora.com> References: <20251211-vop2-atomic-fixups-v4-0-5d50eda26bf8@collabora.com> In-Reply-To: <20251211-vop2-atomic-fixups-v4-0-5d50eda26bf8@collabora.com> To: Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Chaoyi Chen Cc: dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Daniel Stone , 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 Sun Feb 8 20:49:00 2026 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 7F18E31D399 for ; Thu, 11 Dec 2025 20:41:35 +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=1765485697; cv=pass; b=uFARnjrwSoaovGtswQk3sAjf1r6vyvzRaWnsKOYKtRmByLSq6vwmXIDJinYdmSNTnoEbQoqo1bS07WUwGqkipBmOcY8MVdAGYqeLX77UezB+7cccSDRuBFqn/fEjehuqM6CPhlDPfu7ii28EHytUp3Z2EDNBOpn/owyYR23MlEM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765485697; c=relaxed/simple; bh=1i/VvpFv3OHpkZ/UFayV4vxxCehO6OHfeU8jFMrOxmA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Jo7NXVi+4N/S8LFeBSRlfE5E9T8y/XDLYQMsBdVe0leCnEeizANqAKFCoDcSLPmajGA2Pf5k0XJG01euBTs2Qs6jeHtVtvd8Y7clPt8VDqbyr0WXQQkVFDtBAlD8/wyqsSDrOLDOTc0sAT7DJ9HHH1lXc+XX+ByhgV6cEJN1RQc= 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=kRHovfU/; 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="kRHovfU/" ARC-Seal: i=1; a=rsa-sha256; t=1765485673; cv=none; d=zohomail.com; s=zohoarc; b=O1GN1e9Bf9z+bXDx3Tqp6IvzzxxjUK1bhGrYrNDsf05IYWg8NHAakZ7e4sJ3Pka7D3B5Jqq/GSoOvzw1ycxMqvVcZP+Anv4oGt+Y6wGgeqofsyiK3+R2/tm+Nd3sZHa6SPXbsmcRBhdTfr65YWJa8qUprg84mvF/h4NoAYHhPnc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765485673; 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=Nyr3l7bnOu1q7Gp71+q8X24J4SIx6VTKMAU0SBZa8TVRXo3myoGFIeGrSwI58SMIvugNZ036HtC9VWs5YjTwwRrhAITwUHcvuKS3pO+V90B5NM35UbxsBI2yoC0Jeos8hD6AVbek/CfSJffJUBlYpJU3sXIfugXPLzzHFJdUX7o= 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=1765485673; 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=kRHovfU/F3xMmSLOcPlLccLih3qJyPkzlXEpA3n8DsVnOnKu8IKpeHFMhu6++MtV X7k9HOLlTNqPi/Rb/MVdw2FmWP+hWeB2B7gMleOjy9XPv95oz9qqzezIbokzZ/38kI9 3KTgXzvyblSrbCskjdm7GQDsXDNN1VN+zJYcdAtQ= Received: by mx.zohomail.com with SMTPS id 1765485671283253.77550384595816; Thu, 11 Dec 2025 12:41:11 -0800 (PST) From: Nicolas Frattaroli Date: Thu, 11 Dec 2025 21:40:35 +0100 Subject: [PATCH v4 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: <20251211-vop2-atomic-fixups-v4-5-5d50eda26bf8@collabora.com> References: <20251211-vop2-atomic-fixups-v4-0-5d50eda26bf8@collabora.com> In-Reply-To: <20251211-vop2-atomic-fixups-v4-0-5d50eda26bf8@collabora.com> To: Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Chaoyi Chen Cc: dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Daniel Stone , 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 Sun Feb 8 20:49:00 2026 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 0316731D72D for ; Thu, 11 Dec 2025 20:41:36 +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=1765485698; cv=pass; b=e3hFBIPVY4HtkxwxcWWqjwMBKAl1+5o0OKevMmK7Gu9w1zb6xr2kgrDzApzMB/PDuKbS/YBC8K2le2Y42CtjKj+6aEW/MrsrmYOanHV84qZJJtfwGgE1Vl+JDjBp3wT1SFdJMvwPWMg9RS6I4OiaYFO6ax1qjFiXlGV15bI+aAA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765485698; c=relaxed/simple; bh=fLFJQl9FaH4IIauBQwO2yduvT5F32Kne5N3RtmxPoDc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=aRUbr4UAKTDIpqhKwPegM9zf3zmpDE+WAxyKdrj5gkdoVB0+yZ+zTuJypnWUskBz8s0zgXUt5IjFBzGUFScU5bK74QZuMcfjGNSOboRf+16cdmwhhkGN/0WfQjIeZXlx43b9PVRyw20LhxBwwUEDd7Yky2DgAy4avMDrAJkb3sI= 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=dc67R15q; 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="dc67R15q" ARC-Seal: i=1; a=rsa-sha256; t=1765485675; cv=none; d=zohomail.com; s=zohoarc; b=SM93lxQiW4LcweqKqMcty4X7vhp0z4V6JTB0K1qbtUwf8malv2yqlGimsFCq5fSA3yHXNNgjI5iirnwc5xdFbuHgTpkI53+PtxApQRzvFSpAhL8x1WhpNzGAUbajNU+SC6Va+EwcImmUgyQCZjrWfq2fbw3BTSk3I+g8xmiRYnc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765485675; 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=QIQN7Mfe3rRMl2qTWZlCtYbXq8tihpYciZ+DDNnUGgk=; b=hpRkuwh8oY1JK3u1Zj7txor7wTP1w8pqgSHCXm59req2dAtNGsCUQv5Q1grx+1r08tTD3O0u2XMXMukh6npFhgghvx+mHEqed0RfNq6eRtX6wK0w1TVUpA1zU91l+crIplgjTSGna9Xy6kUNnDZMp/l9R3eg986I1ab0iW/cfM8= 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=1765485675; 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=QIQN7Mfe3rRMl2qTWZlCtYbXq8tihpYciZ+DDNnUGgk=; b=dc67R15qE7h2gQIpnZwnHae5HPmeY5B/Njm0VtEpXLpHj76mnk7+JJB7kVUMFc1G 2aX4oBNOTshoRinmrRmvIKu4ryhXMdeBSUHbK64ViluTt1EQ5CF80h9iBOAhVHDgOaI gZSuNbrQwYffi7jdSG9k1rxkfdV2MfQ2wD0X7EMk= Received: by mx.zohomail.com with SMTPS id 1765485675086720.2234025840241; Thu, 11 Dec 2025 12:41:15 -0800 (PST) From: Nicolas Frattaroli Date: Thu, 11 Dec 2025 21:40:36 +0100 Subject: [PATCH v4 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: <20251211-vop2-atomic-fixups-v4-6-5d50eda26bf8@collabora.com> References: <20251211-vop2-atomic-fixups-v4-0-5d50eda26bf8@collabora.com> In-Reply-To: <20251211-vop2-atomic-fixups-v4-0-5d50eda26bf8@collabora.com> To: Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Chaoyi Chen Cc: dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Daniel Stone , 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..1d12e00ec49f 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-pixel aligned for horizontal rotation or m= irroring\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 Sun Feb 8 20:49:00 2026 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 54FD731DD90 for ; Thu, 11 Dec 2025 20:41:40 +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=1765485702; cv=pass; b=tZNAyMH+3114St3I6YtSVhY1US8wzDf1BQlqXcgRh4A4DcJ2gUSK9gju50Ha6mk/tIsIF0sBqp1knsUZbfHQL36+FqLSegWiktapmb/pSjYy+21VZjgxtOfH1o+komocWbyYzKJ8le5eiNNaC1gV9QLHpWVUC1MVMrbIHhanS5k= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765485702; c=relaxed/simple; bh=dnBK7wlr8bFN7iHRGXLi4acS9s7r2RWcQt+a7g3gQt4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GoubQjbLhs3gXHO3UaYT8j/QDVzV8YNm6HyYMQ+YNnwsBk62dhqg2EB8YdtYUDn1rvZlIJMxgCO3TxnDAiZQ6dl++QvMTuenLochfAJ8VFTS2KiutiKqQ1YkW47EIw1FSohjYICcOkVL7E/YVF0Xr25gFW6YpyyWpByIOIhQVcY= 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=T3k8k7tf; 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="T3k8k7tf" ARC-Seal: i=1; a=rsa-sha256; t=1765485679; cv=none; d=zohomail.com; s=zohoarc; b=DvYxZ8Bdzg9MhqZWC1IgZq8yuEbBfCWE/yDthNWElkMNWlW6aSso7CxkUJNiCKyQh5V995U12CJhzNsXvU046e+KOlYgePpRUiwQs8ERTMpOIMUa9pclpiA/E6dWS3HBx2rVe8GlcmGGooYmi99nJbO3DIFKD6w/k+8oIp4N5fs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765485679; 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=RPbccTq6F1zzr9R/aer7AacGufcSyFhvzwy1HOUPRnY=; b=aPOBHz1jmodV1E/qleg5dbNkdNS/lOtn+1YtB+Zb0breoEnoCOC2CWbaZzYT7QDuLHAOU8udmv6zLtAle/0s6/SEHCBSGNY/+uKQ784uKjqOB8H073MReG+EiPqHCMwD8tQj8egtViUQe6j+iNXKWkuR9yHaDK/2eaFvoydMxjU= 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=1765485679; 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=RPbccTq6F1zzr9R/aer7AacGufcSyFhvzwy1HOUPRnY=; b=T3k8k7tf3CkZ1P4k9+gQs2Z90l2OA5G+qy6HK++tEPIzYcUHYTHZodCsO1Hz6Yin 6HqHyQOf1rUnd8h6ncdd2RWh8MTX9VyGQevx1hRiReWkDehnv/To0qjYA5NwnPR1ajz Gjbf/BavYzz/OCLVC5gVZq9gf0rIbc+T+wmXqheU= Received: by mx.zohomail.com with SMTPS id 1765485678944380.27112216237947; Thu, 11 Dec 2025 12:41:18 -0800 (PST) From: Nicolas Frattaroli Date: Thu, 11 Dec 2025 21:40:37 +0100 Subject: [PATCH v4 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: <20251211-vop2-atomic-fixups-v4-7-5d50eda26bf8@collabora.com> References: <20251211-vop2-atomic-fixups-v4-0-5d50eda26bf8@collabora.com> In-Reply-To: <20251211-vop2-atomic-fixups-v4-0-5d50eda26bf8@collabora.com> To: Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Chaoyi Chen Cc: dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Daniel Stone , 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 1d12e00ec49f..494f4d48f9fe 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 Sun Feb 8 20:49:00 2026 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 C595831B838 for ; Thu, 11 Dec 2025 20:41: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=1765485707; cv=pass; b=Z2CuZ8kMb7Xm4TcG3tzDDmUhcqCFg7GdSZuXigJIPM/nOjCMNPuerVF88jCCCD0dkRM+sZMiqWiZNH6J5BmyzhDp2Ln9Q6RxHNt0ZTTcB4wpUlL4+jw3nnkUb7bQyvuj/AIJIeF3vupL762WMInPLK+xx/46ry9BHrBS/9u4Shc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765485707; c=relaxed/simple; bh=EeeAniZY0CiIFoPqTeA30ETWwFsG+LDFVcGkNI333+4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=t1+z5VKwLYchU4uCXDiyMdrJgZlp/rNDR8XBJAjpv/asC+ZsAmbMSGML7jLETPAkKrg1LnIlZhVpwVvLz0vnbrtk/iOMDVsUNjTosiDjBJm9w9XKbMhhEwxHgbHyhYwxQotke3QAI2+VmNE4mHYRZ8LrkKTQLnHxF+NrTvMAtco= 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=NrZSNBB6; 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="NrZSNBB6" ARC-Seal: i=1; a=rsa-sha256; t=1765485683; cv=none; d=zohomail.com; s=zohoarc; b=nTuUEHfElXWe7b51kcRNMXT70DSsCsLlGHBw26ZyyyvsR1ObeACCtE5SzRvOO8UwIygLEyByVUATVMuXAe8yAec8nK9PSCyFkp+bKOzwaZ6biuMy80KK0mWrDJJLM5BqXDBxWDSaFCK2ArsdYHHLbsZiZTQ/MMSvoFHYADcgIRw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765485683; 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=cyimSXgzghEkD7AK9n4RAXt1HxLuNqEsyDrb+we5XHA=; b=AALCR3RnwD1vyuFrbw0d5H+hG5taj7OBnYOwwoS9aqPM/kuRtOTXCa+YBiw1qWCC6QoACgk0qaoG/dssVedX5Z8f56/Dy2+J6rfXFIrLibkkazX4BfOZjwyx3bUbwrNAroQU6XjaIzP4NKX9muh21htWytynt3reZ9GwQGEzY3E= 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=1765485683; 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=cyimSXgzghEkD7AK9n4RAXt1HxLuNqEsyDrb+we5XHA=; b=NrZSNBB6NCcgPT6BrU3ZzXgjY/Ri+qQBEJsj8P/whLHxAxGw9aRQEzkKrcTszOy8 /zoHlYjhXNxURqTtfHxsHVqWnoW9RB8NyQlrwkQ4aGGN8UkhUsqS2K5xAxidBXTmq1b Fxtps/LQiW0RxAzV/TqJcr9TYuIff4XEP+qBzt2w= Received: by mx.zohomail.com with SMTPS id 1765485682758910.2079946657038; Thu, 11 Dec 2025 12:41:22 -0800 (PST) From: Nicolas Frattaroli Date: Thu, 11 Dec 2025 21:40:38 +0100 Subject: [PATCH v4 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: <20251211-vop2-atomic-fixups-v4-8-5d50eda26bf8@collabora.com> References: <20251211-vop2-atomic-fixups-v4-0-5d50eda26bf8@collabora.com> In-Reply-To: <20251211-vop2-atomic-fixups-v4-0-5d50eda26bf8@collabora.com> To: Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Chaoyi Chen Cc: dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Daniel Stone , 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 494f4d48f9fe..4659c55d0da4 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