From 11c0e2eb9880327cc09741e94224252d030beb12 Mon Sep 17 00:00:00 2001 From: Javier Martin Date: Thu, 12 Jul 2012 05:56:13 -0300 Subject: [PATCH] --- yaml --- r: 330877 b: refs/heads/master c: 1cb7cf28c0690852cfe5800e037fa0db9fba2432 h: refs/heads/master i: 330875: 1cf281ef420bab866e28bb6f6d7e5e122c8c3b0a v: v3 --- [refs] | 2 +- trunk/drivers/media/platform/mx2_camera.c | 40 +++++++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 477eada30757..681e3a99c51a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 561d5d78cb03fe08519a166594820c5a70f3931c +refs/heads/master: 1cb7cf28c0690852cfe5800e037fa0db9fba2432 diff --git a/trunk/drivers/media/platform/mx2_camera.c b/trunk/drivers/media/platform/mx2_camera.c index 2c3ec94769a5..83eeaa69d8f7 100644 --- a/trunk/drivers/media/platform/mx2_camera.c +++ b/trunk/drivers/media/platform/mx2_camera.c @@ -335,6 +335,34 @@ static struct mx2_fmt_cfg mx27_emma_prp_table[] = { .csicr1 = 0, } }, + { + .in_fmt = V4L2_MBUS_FMT_UYVY8_2X8, + .out_fmt = V4L2_PIX_FMT_YUYV, + .cfg = { + .channel = 1, + .in_fmt = PRP_CNTL_DATA_IN_YUV422, + .out_fmt = PRP_CNTL_CH1_OUT_YUV422, + .src_pixel = 0x22000888, /* YUV422 (YUYV) */ + .ch1_pixel = 0x62000888, /* YUV422 (YUYV) */ + .irq_flags = PRP_INTR_RDERR | PRP_INTR_CH1WERR | + PRP_INTR_CH1FC | PRP_INTR_LBOVF, + .csicr1 = CSICR1_SWAP16_EN, + } + }, + { + .in_fmt = V4L2_MBUS_FMT_YUYV8_2X8, + .out_fmt = V4L2_PIX_FMT_YUYV, + .cfg = { + .channel = 1, + .in_fmt = PRP_CNTL_DATA_IN_YUV422, + .out_fmt = PRP_CNTL_CH1_OUT_YUV422, + .src_pixel = 0x22000888, /* YUV422 (YUYV) */ + .ch1_pixel = 0x62000888, /* YUV422 (YUYV) */ + .irq_flags = PRP_INTR_RDERR | PRP_INTR_CH1WERR | + PRP_INTR_CH1FC | PRP_INTR_LBOVF, + .csicr1 = CSICR1_PACK_DIR, + } + }, { .in_fmt = V4L2_MBUS_FMT_YUYV8_2X8, .out_fmt = V4L2_PIX_FMT_YUV420, @@ -1142,6 +1170,18 @@ static int mx2_camera_get_formats(struct soc_camera_device *icd, } } + if (code == V4L2_MBUS_FMT_UYVY8_2X8) { + formats++; + if (xlate) { + xlate->host_fmt = + soc_mbus_get_fmtdesc(V4L2_MBUS_FMT_YUYV8_2X8); + xlate->code = code; + dev_dbg(dev, "Providing host format %s for sensor code %d\n", + xlate->host_fmt->name, code); + xlate++; + } + } + /* Generic pass-trough */ formats++; if (xlate) {