drm/rockchip: vop: Fix color for RGB888/BGR888 format on VOP full
authorJonas Karlman <jonas@kwiboo.se>
Thu, 26 Oct 2023 19:14:58 +0000 (19:14 +0000)
committerHeiko Stuebner <heiko@sntech.de>
Mon, 20 Nov 2023 16:06:06 +0000 (17:06 +0100)
commitbb0a05acd6121ff0e810b44fdc24dbdfaa46b642
treeaa8dd44dcb58624c1e99392e403abf224cb0fe78
parent3f9a91b6c00e655d27bd785dcda1742dbdc31bda
drm/rockchip: vop: Fix color for RGB888/BGR888 format on VOP full

Use of DRM_FORMAT_RGB888 and DRM_FORMAT_BGR888 on e.g. RK3288, RK3328
and RK3399 result in wrong colors being displayed.

The issue can be observed using modetest:

  modetest -s <connector_id>@<crtc_id>:1920x1080-60@RG24
  modetest -s <connector_id>@<crtc_id>:1920x1080-60@BG24

Vendor 4.4 kernel apply an inverted rb swap for these formats on VOP
full framework (IP version 3.x) compared to VOP little framework (2.x).

Fix colors by applying different rb swap for VOP full framework (3.x)
and VOP little framework (2.x) similar to vendor 4.4 kernel.

Fixes: 85a359f25388 ("drm/rockchip: Add BGR formats to VOP")
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Tested-by: Diederik de Haas <didi.debian@cknow.org>
Reviewed-by: Christopher Obbard <chris.obbard@collabora.com>
Tested-by: Christopher Obbard <chris.obbard@collabora.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20231026191500.2994225-1-jonas@kwiboo.se
drivers/gpu/drm/rockchip/rockchip_drm_vop.c