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) {