linux/drivers/gpu/drm/rockchip
Jonas Karlman 221be624a5 drm/rockchip: vop: Fix color for RGB888/BGR888 format on VOP full
[ Upstream commit bb0a05acd6 ]

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: 85a359f253 ("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
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2023-12-03 07:31:21 +01:00
..
analogix_dp-rockchip.c drm/rockchip: Fix an error handling path rockchip_dp_probe() 2022-08-17 14:23:27 +02:00
cdn-dp-core.c drm/rockchip: cdn-dp: Fix some error handling paths in cdn_dp_probe() 2023-11-20 11:08:20 +01:00
cdn-dp-core.h drm/rockchip: fix integer type used for storing dp data rate 2020-01-13 14:31:59 +01:00
cdn-dp-reg.c drm/rockchip: cdn-dp: fix sign extension on an int multiply for a u64 result 2021-05-28 20:27:44 +02:00
cdn-dp-reg.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
dw-mipi-dsi-rockchip.c drm/rockchip: dsi: Force synchronous probe 2022-11-10 18:15:43 +01:00
dw_hdmi-rockchip.c drm/rockchip: dw_hdmi: Do not leave clock enabled in error case 2022-02-23 12:03:19 +01:00
inno_hdmi.c drm/rockchip: Use drm_mode_copy() 2022-12-31 13:14:42 +01:00
inno_hdmi.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
Kconfig drm/rockchip: dsi: add ability to work as a phy instead of full dsi 2021-07-25 17:19:49 +02:00
Makefile drm/rockchip: Use the helpers for PSR 2019-07-26 14:48:03 -04:00
rk3066_hdmi.c drm/rockchip: Use drm_mode_copy() 2022-12-31 13:14:42 +01:00
rk3066_hdmi.h drm: rockchip: introduce rk3066 hdmi 2019-03-31 14:24:30 +02:00
rockchip_drm_drv.c drm/aperture: Pass DRM driver structure instead of driver name 2021-07-01 11:11:55 +02:00
rockchip_drm_drv.h drm/rockchip: Add support for afbc 2020-03-23 12:45:26 +01:00
rockchip_drm_fb.c drm/rockchip: remove _unlocked suffix in drm_gem_object_put_unlocked 2020-05-19 22:31:35 +01:00
rockchip_drm_fb.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
rockchip_drm_fbdev.c drm: Remove drm_fb_helper add, add all and remove connector calls 2020-03-06 14:19:58 +01:00
rockchip_drm_fbdev.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
rockchip_drm_gem.c drm/rockchip: Fix type promotion bug in rockchip_gem_iommu_map() 2023-11-20 11:08:20 +01:00
rockchip_drm_gem.h drm/gem: Use struct dma_buf_map in GEM vmap ops and convert GEM backends 2020-11-09 09:19:24 +01:00
rockchip_drm_vop.c drm/rockchip: vop: Fix color for RGB888/BGR888 format on VOP full 2023-12-03 07:31:21 +01:00
rockchip_drm_vop.h drm/rockchip: Require the YTR modifier for AFBC 2021-02-25 10:18:45 +01:00
rockchip_lvds.c drm/rockchip: lvds: fix PM usage counter unbalance in poweron 2022-12-31 13:14:08 +01:00
rockchip_lvds.h drm/rockchip: lvds: Add PX30 support 2020-01-06 11:56:02 +01:00
rockchip_rgb.c drm/bridge: Centralize error message when bridge attach fails 2021-07-28 16:33:12 +03:00
rockchip_rgb.h drm/rockchip: rgb: update SPDX license identifier 2019-01-25 14:50:07 +01:00
rockchip_vop_reg.c drm/rockchip: vop: Correct RK3399 VOP register fields 2022-02-16 12:56:20 +01:00
rockchip_vop_reg.h drm: rockchip: add alpha support for RK3036, RK3066, RK3126 and RK3188 2021-05-28 19:28:00 +02:00