From 5e364b4473ded714fb93ff16b03bc1a85dca2f41 Mon Sep 17 00:00:00 2001 From: Andy Yan Date: Sat, 8 Jan 2022 18:07:09 +0800 Subject: [PATCH] drm/rockchip: vop2: Add NV21/NV61/NV42 format support NV21/NV61/NV42 are uv swap format for NV12/NV16/NV24 Signed-off-by: Andy Yan Change-Id: I5bffb542bcaacde38089880e7738ab00e32d27d3 --- drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 3 +++ drivers/gpu/drm/rockchip/rockchip_vop2_reg.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c index 2da1dab3f667..44e64c973fc2 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c @@ -1595,17 +1595,20 @@ static enum vop2_data_format vop2_convert_format(uint32_t format) case DRM_FORMAT_BGR565: return VOP2_FMT_RGB565; case DRM_FORMAT_NV12: + case DRM_FORMAT_NV21: case DRM_FORMAT_YUV420_8BIT: return VOP2_FMT_YUV420SP; case DRM_FORMAT_NV15: case DRM_FORMAT_YUV420_10BIT: return VOP2_FMT_YUV420SP_10; case DRM_FORMAT_NV16: + case DRM_FORMAT_NV61: return VOP2_FMT_YUV422SP; case DRM_FORMAT_NV20: case DRM_FORMAT_Y210: return VOP2_FMT_YUV422SP_10; case DRM_FORMAT_NV24: + case DRM_FORMAT_NV42: return VOP2_FMT_YUV444SP; case DRM_FORMAT_NV30: return VOP2_FMT_YUV444SP_10; diff --git a/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c b/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c index d837aeca5cad..3a0f3110dcc6 100644 --- a/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c +++ b/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c @@ -67,8 +67,11 @@ static const uint32_t formats_for_esmart[] = { DRM_FORMAT_RGB565, DRM_FORMAT_BGR565, DRM_FORMAT_NV12, /* yuv420_8bit linear mode, 2 plane */ + DRM_FORMAT_NV21, /* yvu420_8bit linear mode, 2 plane */ DRM_FORMAT_NV16, /* yuv422_8bit linear mode, 2 plane */ + DRM_FORMAT_NV61, /* yvu422_8bit linear mode, 2 plane */ DRM_FORMAT_NV24, /* yuv444_8bit linear mode, 2 plane */ + DRM_FORMAT_NV42, /* yvu444_8bit linear mode, 2 plane */ DRM_FORMAT_NV15, /* yuv420_10bit linear mode, 2 plane, no padding */ #ifdef CONFIG_NO_GKI DRM_FORMAT_NV20, /* yuv422_10bit linear mode, 2 plane, no padding */