From bc9a13806ffbab0f968c7591d40210f59539f91d Mon Sep 17 00:00:00 2001
From: Philipp Zabel
Date: Mon, 12 Nov 2012 16:29:02 +0100
Subject: [PATCH] --- yaml --- r: 337842 b: refs/heads/master c:
0125f21b2bafde5e8dc34a31c20d2db6f3645bdc h: refs/heads/master v: v3
---
[refs] | 2 +-
.../drivers/staging/imx-drm/ipu-v3/imx-ipu-v3.h | 1 +
.../drivers/staging/imx-drm/ipu-v3/ipu-common.c | 17 +++++++++++++++++
3 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/[refs] b/[refs]
index be9bde125b62..d66f2f51f48f 100644
--- a/[refs]
+++ b/[refs]
@@ -1,2 +1,2 @@
---
-refs/heads/master: a8e4e232bab3387af5f9ee92713d1a511e249107
+refs/heads/master: 0125f21b2bafde5e8dc34a31c20d2db6f3645bdc
diff --git a/trunk/drivers/staging/imx-drm/ipu-v3/imx-ipu-v3.h b/trunk/drivers/staging/imx-drm/ipu-v3/imx-ipu-v3.h
index 74158dd73758..22c1196579b0 100644
--- a/trunk/drivers/staging/imx-drm/ipu-v3/imx-ipu-v3.h
+++ b/trunk/drivers/staging/imx-drm/ipu-v3/imx-ipu-v3.h
@@ -293,6 +293,7 @@ static inline void ipu_cpmem_interlaced_scan(struct ipu_ch_param *p,
void ipu_cpmem_set_yuv_planar(struct ipu_ch_param __iomem *p, u32 pixel_format,
int stride, int height);
+void ipu_cpmem_set_yuv_interleaved(struct ipu_ch_param *p, u32 pixel_format);
void ipu_cpmem_set_yuv_planar_full(struct ipu_ch_param __iomem *p,
u32 pixel_format, int stride, int u_offset, int v_offset);
int ipu_cpmem_set_fmt(struct ipu_ch_param __iomem *cpmem, u32 pixelformat);
diff --git a/trunk/drivers/staging/imx-drm/ipu-v3/ipu-common.c b/trunk/drivers/staging/imx-drm/ipu-v3/ipu-common.c
index 7f3a3aeb88a2..eaa6f62a9e33 100644
--- a/trunk/drivers/staging/imx-drm/ipu-v3/ipu-common.c
+++ b/trunk/drivers/staging/imx-drm/ipu-v3/ipu-common.c
@@ -225,6 +225,23 @@ int ipu_cpmem_set_format_passthrough(struct ipu_ch_param __iomem *p,
}
EXPORT_SYMBOL_GPL(ipu_cpmem_set_format_passthrough);
+void ipu_cpmem_set_yuv_interleaved(struct ipu_ch_param *p, u32 pixel_format)
+{
+ switch (pixel_format) {
+ case V4L2_PIX_FMT_UYVY:
+ ipu_ch_param_write_field(p, IPU_FIELD_BPP, 3); /* bits/pixel */
+ ipu_ch_param_write_field(p, IPU_FIELD_PFS, 0xA); /* pix format */
+ ipu_ch_param_write_field(p, IPU_FIELD_NPB, 31); /* burst size */
+ break;
+ case V4L2_PIX_FMT_YUYV:
+ ipu_ch_param_write_field(p, IPU_FIELD_BPP, 3); /* bits/pixel */
+ ipu_ch_param_write_field(p, IPU_FIELD_PFS, 0x8); /* pix format */
+ ipu_ch_param_write_field(p, IPU_FIELD_NPB, 31); /* burst size */
+ break;
+ }
+}
+EXPORT_SYMBOL_GPL(ipu_cpmem_set_yuv_interleaved);
+
void ipu_cpmem_set_yuv_planar_full(struct ipu_ch_param __iomem *p,
u32 pixel_format, int stride, int u_offset, int v_offset)
{