浏览代码

gpu: ipu-v3: add YUV 4:4:4 support

The IDMAC does support reading and writing DRM_FORMAT_YUV444 and
DRM_FORMAT_YVU444.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Acked-by: Liu Ying <gnuiyl@gmail.com>
Philipp Zabel 8 年之前
父节点
当前提交
c9d508c2df
共有 2 个文件被更改,包括 9 次插入0 次删除
  1. 2 0
      drivers/gpu/ipu-v3/ipu-common.c
  2. 7 0
      drivers/gpu/ipu-v3/ipu-cpmem.c

+ 2 - 0
drivers/gpu/ipu-v3/ipu-common.c

@@ -88,6 +88,8 @@ enum ipu_color_space ipu_drm_fourcc_to_colorspace(u32 drm_fourcc)
 	case DRM_FORMAT_YVU420:
 	case DRM_FORMAT_YVU420:
 	case DRM_FORMAT_YUV422:
 	case DRM_FORMAT_YUV422:
 	case DRM_FORMAT_YVU422:
 	case DRM_FORMAT_YVU422:
+	case DRM_FORMAT_YUV444:
+	case DRM_FORMAT_YVU444:
 	case DRM_FORMAT_NV12:
 	case DRM_FORMAT_NV12:
 	case DRM_FORMAT_NV21:
 	case DRM_FORMAT_NV21:
 	case DRM_FORMAT_NV16:
 	case DRM_FORMAT_NV16:

+ 7 - 0
drivers/gpu/ipu-v3/ipu-cpmem.c

@@ -554,6 +554,13 @@ int ipu_cpmem_set_fmt(struct ipuv3_channel *ch, u32 drm_fourcc)
 		/* burst size */
 		/* burst size */
 		ipu_ch_param_write_field(ch, IPU_FIELD_NPB, 31);
 		ipu_ch_param_write_field(ch, IPU_FIELD_NPB, 31);
 		break;
 		break;
+	case DRM_FORMAT_YUV444:
+	case DRM_FORMAT_YVU444:
+		/* pix format */
+		ipu_ch_param_write_field(ch, IPU_FIELD_PFS, 0);
+		/* burst size */
+		ipu_ch_param_write_field(ch, IPU_FIELD_NPB, 31);
+		break;
 	case DRM_FORMAT_NV12:
 	case DRM_FORMAT_NV12:
 		/* pix format */
 		/* pix format */
 		ipu_ch_param_write_field(ch, IPU_FIELD_PFS, 4);
 		ipu_ch_param_write_field(ch, IPU_FIELD_PFS, 4);