]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/rockchip: vop2: Add uv swap for cluster window
authorAndy Yan <andy.yan@rock-chips.com>
Mon, 3 Mar 2025 03:44:17 +0000 (11:44 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 4 Jun 2025 12:40:09 +0000 (14:40 +0200)
[ Upstream commit e7aae9f6d762139f8d2b86db03793ae0ab3dd802 ]

The Cluster windows of upcoming VOP on rk3576 also support
linear YUV support, we need to set uv swap bit for it.

As the VOP2_WIN_UV_SWA register defined on rk3568/rk3588 is
0xffffffff, so this register will not be touched on these
two platforms.

Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
Tested-by: Michael Riesch <michael.riesch@wolfvision.net> # on RK3568
Tested-by: Detlev Casanova <detlev.casanova@collabora.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20250303034436.192400-4-andyshrk@163.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/rockchip/rockchip_drm_vop2.c

index 955ef2caac89f5dcdfd2d35abf4033bf9a04c8ad..6efa0a51b7d657a3d72df7a39ed053f651c73119 100644 (file)
@@ -1289,10 +1289,8 @@ static void vop2_plane_atomic_update(struct drm_plane *plane,
 
        rb_swap = vop2_win_rb_swap(fb->format->format);
        vop2_win_write(win, VOP2_WIN_RB_SWAP, rb_swap);
-       if (!vop2_cluster_window(win)) {
-               uv_swap = vop2_win_uv_swap(fb->format->format);
-               vop2_win_write(win, VOP2_WIN_UV_SWAP, uv_swap);
-       }
+       uv_swap = vop2_win_uv_swap(fb->format->format);
+       vop2_win_write(win, VOP2_WIN_UV_SWAP, uv_swap);
 
        if (fb->format->is_yuv) {
                vop2_win_write(win, VOP2_WIN_UV_VIR, DIV_ROUND_UP(fb->pitches[1], 4));