OpenCloudOS-Kernel/drivers/gpu/drm/rockchip
Alyssa Rosenzweig 5f94e35714 drm/rockchip: Require the YTR modifier for AFBC
The AFBC decoder used in the Rockchip VOP assumes the use of the
YUV-like colourspace transform (YTR). YTR is lossless for RGB(A)
buffers, which covers the RGBA8 and RGB565 formats supported in
vop_convert_afbc_format. Use of YTR is signaled with the
AFBC_FORMAT_MOD_YTR modifier, which prior to this commit was missing. As
such, a producer would have to generate buffers that do not use YTR,
which the VOP would erroneously decode as YTR, leading to severe visual
corruption.

The upstream AFBC support was developed against a captured frame, which
failed to exercise modifier support. Prior to bring-up of AFBC in Mesa
(in the Panfrost driver), no open userspace respected modifier
reporting. As such, this change is not expected to affect broken
userspaces.

Tested on RK3399 with Panfrost and Weston.

Fixes: 7707f7227f ("drm/rockchip: Add support for afbc")
Cc: stable@vger.kernel.org
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20200811202631.3603-1-alyssa.rosenzweig@collabora.com
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2021-02-25 10:18:45 +01:00
..
Kconfig drm/rockchip: fix typo in Kconfig 's/HDMI/dsi/' 2020-11-29 17:39:44 +01:00
Makefile drm/rockchip: Use the helpers for PSR 2019-07-26 14:48:03 -04:00
analogix_dp-rockchip.c Merge drm/drm-next into drm-misc-next 2020-04-17 08:12:22 +02:00
cdn-dp-core.c ASoC: hdmi-codec: merge .digital_mute() into .mute_stream() 2020-07-16 23:06:06 +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: Remove unneeded semicolon 2020-04-27 21:15:55 +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: for error print, use the correct device pointer 2020-11-29 17:39:33 +01:00
dw_hdmi-rockchip.c drm/rockchip: dw_hdmi: fix incorrect clock in vpll clock error message 2020-11-29 17:39:21 +01:00
inno_hdmi.c drm/rockchip: Use simple encoder 2020-04-02 14:16:45 +02:00
inno_hdmi.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
rk3066_hdmi.c drm/rockchip: Use simple encoder 2020-04-02 14:16:45 +02:00
rk3066_hdmi.h
rockchip_drm_drv.c drm/<drivers>: Constify struct drm_driver 2020-11-06 10:31:26 +01: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/gem: Use struct dma_buf_map in GEM vmap ops and convert GEM backends 2020-11-09 09:19:24 +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: automatic legacy gamma support 2020-12-15 15:46:03 +02: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 for 5.11-rc1 2020-12-14 11:07:56 -08:00
rockchip_lvds.h drm/rockchip: lvds: Add PX30 support 2020-01-06 11:56:02 +01:00
rockchip_rgb.c drm/rockchip/rockchip_rgb: Consume our own header 2020-11-17 20:04:17 +01:00
rockchip_rgb.h
rockchip_vop_reg.c drm/rockchip: Add per-pixel alpha support for the PX30 VOP 2020-06-17 12:04:46 +02:00
rockchip_vop_reg.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00