Thread (14 messages) 14 messages, 4 authors, 2011-09-27

[PATCH 4/5] ispccdc: Configure CCDC_SYN_MODE register for UYVY8_2X8 and YUYV8_2X8 formats

From: Ravi, Deepthy <hidden>
Date: 2011-09-23 11:57:59
Also in: linux-media, linux-omap, lkml

________________________________________
From: Laurent Pinchart [laurent.pinchart at ideasonboard.com]
Sent: Wednesday, September 21, 2011 2:36 PM
To: Ravi, Deepthy
Cc: mchehab at infradead.org; tony at atomide.com; Hiremath, Vaibhav; linux-media at vger.kernel.org; linux at arm.linux.org.uk; linux-arm-kernel at lists.infradead.org; kyungmin.park at samsung.com; hverkuil at xs4all.nl; m.szyprowski at samsung.com; g.liakhovetski at gmx.de; Shilimkar, Santosh; khilman at deeprootsystems.com; david.woodhouse at intel.com; akpm at linux-foundation.org; linux-kernel at vger.kernel.org; linux-omap at vger.kernel.org; Sakari Ailus
Subject: Re: [PATCH 4/5] ispccdc: Configure CCDC_SYN_MODE register for UYVY8_2X8 and YUYV8_2X8 formats

Hi Deepthy,

On Wednesday 21 September 2011 07:32:44 Ravi, Deepthy wrote:
quoted
On Wednesday, September 21, 2011 4:56 AM Laurent Pinchart wrote:
quoted
On Tuesday 20 September 2011 16:56:51 Deepthy Ravi wrote:
quoted
Configure INPMOD and PACK8 fileds of CCDC_SYN_MODE
register for UYVY8_2X8 and YUYV8_2X8 formats.

Signed-off-by: Deepthy Ravi <redacted>
---

 drivers/media/video/omap3isp/ispccdc.c |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/drivers/media/video/omap3isp/ispccdc.c
b/drivers/media/video/omap3isp/ispccdc.c index 418ba65..1dcf180 100644
--- a/drivers/media/video/omap3isp/ispccdc.c
+++ b/drivers/media/video/omap3isp/ispccdc.c
@@ -985,8 +985,12 @@ static void ccdc_config_sync_if(struct
isp_ccdc_device
*ccdc,

      syn_mode &= ~ISPCCDC_SYN_MODE_INPMOD_MASK;
      if (format->code == V4L2_MBUS_FMT_YUYV8_2X8 ||

-         format->code == V4L2_MBUS_FMT_UYVY8_2X8)
-             syn_mode |= ISPCCDC_SYN_MODE_INPMOD_YCBCR8;
+         format->code == V4L2_MBUS_FMT_UYVY8_2X8){
+             if (pdata && pdata->bt656)
+                     syn_mode |= ISPCCDC_SYN_MODE_INPMOD_YCBCR8;
+             else
+                     syn_mode |= ISPCCDC_SYN_MODE_INPMOD_YCBCR16;
+     }

      else if (format->code == V4L2_MBUS_FMT_YUYV8_1X16 ||

               format->code == V4L2_MBUS_FMT_UYVY8_1X16)

              syn_mode |= ISPCCDC_SYN_MODE_INPMOD_YCBCR16;
@@ -1172,7 +1176,8 @@ static void ccdc_configure(struct isp_ccdc_device
*ccdc) syn_mode &= ~ISPCCDC_SYN_MODE_SDR2RSZ;

      /* Use PACK8 mode for 1byte per pixel formats. */

-     if (omap3isp_video_format_info(format->code)->width <= 8)
+     if ((omap3isp_video_format_info(format->code)->width <= 8) &&
+                     (omap3isp_video_format_info(format->code)->bpp <=
8))
I'm not sure to follow you. This will clear the PACK8 bit for the
YUYV8_2X8 formats. Those formats are 8 bits wide, shouldn't PACK8 be set
to store samples on 8 bits instead of 16 bits ?

Is this patch intended to support YUYV8_2X8 sensors in non BT.656 mode
with the bridge enabled ? In that case, what would you think about setting
the CCDC input format to YUYV8_1X16 instead ? This would better reflect
the reality, as the bridge converts YUYV8_2X8 to YUYV8_1X16, and the CCDC
is then fed with YUYV8_1X16.
Yes this is intended for  YUYV8_2X8 sensors in non BT.656 with 8 to 16 bit
bridge enabled. So the data has to be stored as 16 bits per sample. Thats
why PACK8 is cleared . I am not sure about using YUYV8_1X16.
My original idea when I wrote the YV support patches was to implement this use
case with YUYV8_2X8 at the sensor output and YUYV8_1X16 at the CCDC input. The
ISP driver could then enable the bridge automatically. I'm not sure if that's
the best solution though, it might be confusing for the users. What I would
like to keep, however, is the idea of enabling the bridge automatically.
[Deepthy Ravi] But for streaming to start, the formats on both ends of the link should match. I believe setting different formats at sensor output and ccdc input will give a broken pipe error. Is my understanding correct ? If so, how do you propose to handle the situation ? 
Sakari, any opinion on this ?
quoted
quoted
quoted
              syn_mode |= ISPCCDC_SYN_MODE_PACK8;
      else
              syn_mode &= ~ISPCCDC_SYN_MODE_PACK8;
--
Regards,

Laurent Pinchart
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help