Re: OMAP3 ISP ghosting

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2011-10-11 07:20, Gary Thomas wrote:
As a number of us have seen, when using the OMAP3 ISP with a BT-656
sensor, e.g. TVP5150, the results are not 100% correct. Some number
of frames (typically 2) will be correct, followed by another set (3)
which are incorrect and show only partially correct data. Note: I
think the numbers (2 correct, 3 wrong) are not cast in stone and may
be related to some other factors like number of buffers in use, etc.

Anyway, I've observed that in the incorrect frames, 1/2 the data is
correct (even lines?) and the other 1/2 is wrong. One of my customers
pointed out that it looks like the incorrect data is just what was
left in memory during some previous frame. I'd like to prove this
by "zeroing" the entire frame data memory before the frame is captured.
That way, there won't be stale data from a previous frame, but null
data which should show up strongly when examined. Does anyone in this
group have a suggestion the best way/place to do this?

Final question: given a properly connected TVP5150->CCDC, including
all SYNC signals, could this setup be made to work in RAW, non BT-656
mode? My board at least has all of these signals routed, so it should
just be a matter of configuring the software...

Any ideas on this?  My naive attempt (diffs attached) just hangs up.
These changes disable BT-656 mode in the CCDC and tell the TVP5150
to output raw YUV 4:2:2 data including all SYNC signals.

--
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------
diff --git a/arch/arm/mach-omap2/board-cobra3530p60.c b/arch/arm/mach-omap2/board-cobra3530p60.c
index a8e8f21..5e97838 100644
--- a/arch/arm/mach-omap2/board-cobra3530p60.c
+++ b/arch/arm/mach-omap2/board-cobra3530p60.c
@@ -480,6 +480,6 @@ static struct isp_v4l2_subdevs_group cobra3530p60_camera_subdevs[] = {
 					.data_lane_shift = 0,
 					.clk_pol = 1,
-                                        .bt656 = 1,
+                                        .bt656 = 0,
                                         .fldmode = 1,
 				}
 		},
 
diff --git a/drivers/media/video/tvp5150.c b/drivers/media/video/tvp5150.c
index f4a66c7..26360ae 100644
--- a/drivers/media/video/tvp5150.c
+++ b/drivers/media/video/tvp5150.c
@@ -499,7 +499,7 @@ static const struct i2c_reg_value tvp5150_init_enable[] = {
 	},{	/* Activates video std autodetection for all standards */
 		TVP5150_AUTOSW_MSK, 0x0
 	},{	/* Default format: 0x47. For 4:2:2: 0x40 */
-		TVP5150_DATA_RATE_SEL, 0x47
+		TVP5150_DATA_RATE_SEL, 0x40 /*0x47*/
 	},{
 		TVP5150_CHROMA_PROC_CTL_1, 0x0c
 	},{
@@ -993,7 +993,7 @@ static int tvp515x_s_stream(struct v4l2_subdev *subdev, int enable)
 
 	/* Output format: 8-bit ITU-R BT.656 with embedded syncs */
 	if (enable)
-		tvp5150_write(subdev, TVP5150_MISC_CTL, 0x09);
+		tvp5150_write(subdev, TVP5150_MISC_CTL, 0x09+0x04);
 	else
 		tvp5150_write(subdev, TVP5150_MISC_CTL, 0x00);
 

[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux