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

Re: Using MT9P031 digital sensor



On 2011-11-28 05:49, Laurent Pinchart wrote:
Hi Gary,

On Monday 28 November 2011 13:42:47 Gary Thomas wrote:
On 2011-11-28 04:07, Laurent Pinchart wrote:
On Friday 25 November 2011 12:50:25 Gary Thomas wrote:
On 2011-11-24 04:28, Laurent Pinchart wrote:
On Wednesday 16 November 2011 13:03:11 Gary Thomas wrote:
On 2011-11-15 18:26, Laurent Pinchart wrote:
On Monday 14 November 2011 12:42:54 Gary Thomas wrote:

[snip]

Here's my pipeline:
       media-ctl -r
       media-ctl -l '"mt9p031 3-005d":0->"OMAP3 ISP CCDC":0[1]'
       media-ctl -l '"OMAP3 ISP CCDC":2->"OMAP3 ISP preview":0[1]'
       media-ctl -l '"OMAP3 ISP preview":1->"OMAP3 ISP resizer":0[1]'
       media-ctl -l '"OMAP3 ISP resizer":1->"OMAP3 ISP resizer
       output":0[1]' media-ctl -f '"mt9p031 3-005d":0[SGRBG12
       2592x1944]' media-ctl -f  '"OMAP3 ISP CCDC":0 [SGRBG10
       2592x1944]'
       media-ctl -f  '"OMAP3 ISP CCDC":1 [SGRBG10 2592x1944]'
       media-ctl -f  '"OMAP3 ISP preview":0 [SGRBG10 2592x1943]'
       media-ctl -f  '"OMAP3 ISP resizer":0 [YUYV 2574x1935]'
       media-ctl -f  '"OMAP3 ISP resizer":1 [YUYV 642x483]'

The full media-ctl dump is at
http://www.mlbassoc.com/misc/pipeline.out

When I try to grab from /dev/video6 (output node of resizer), I see
only previewer interrupts, no resizer interrrupts.  I added a simple
printk at each of the previewer/resizer *_isr functions, and I only

ever see this one:
       omap3isp_preview_isr_frame_sync.1373

Can you give me an overview of what events/interrupts should occur
so I can try to trace through the ISP to see where it is failing?

The CCDC generates VD0, VD1 and HS/VS interrupts regardless of
whether it processes video or not, as long as it receives a video
stream at its input. The preview engine and resizer will only
generate an interrupt after writing an image to memory. With your
above
configuration VD0, VD1, HS/VS and resizer interrupts should be
generated.

Your pipeline configuration looks correct, except that the
downscaling factor is slightly larger than 4. Could you try to setup
the resizer to output a 2574x1935 image instead of 642x483 ? If that
works, try to downscale to 660x496. If that works as well, the
driver should be fixed to disallow resolutions that won't work.

No change.  I also tried using only the previewer like this:
      media-ctl -r
      media-ctl -l '"mt9p031 3-005d":0->"OMAP3 ISP CCDC":0[1]'
      media-ctl -l '"OMAP3 ISP CCDC":2->"OMAP3 ISP preview":0[1]'
      media-ctl -l '"OMAP3 ISP preview":1->"OMAP3 ISP preview
      output":0[1]' media-ctl -f '"mt9p031 3-005d":0[SGRBG12
      2592x1944]' media-ctl -f  '"OMAP3 ISP CCDC":0 [SGRBG12
      2592x1944]'
      media-ctl -f  '"OMAP3 ISP CCDC":1 [SGRBG10 2592x1944]'
      media-ctl -f  '"OMAP3 ISP preview":0 [SGRBG10 2592x1943]'
      media-ctl -f  '"OMAP3 ISP preview":1 [YUYV 2574x1935]'

      yavta --capture=4 -f YUYV -s 2574x1935 -F /dev/video4

I still only get the frame sync interrupts in the previewer, no buffer
interrupts, hence no data flowing to my application.  What else can I
look at?

Do you get VD0 and VD1 interrupts ?

Yes, the CCDC is working correctly, but nothing moves through the
previewer. Here's a trace of the interrupt sequence I get, repeated over
and over.  These are printed as __FUNCTION__.__LINE__
--- ccdc_vd0_isr.1615
--- ccdc_hs_vs_isr.1482
--- ccdc_vd1_isr.1664
--- omap3isp_preview_isr_frame_sync.1373

What's the best tree to try this against?  3.2-rc2 doesn't have the
BT656 stuff in it yet, so I've been still using my older tree (3.0.0 +
drivers/media from your tree)

I thought you were using an MT9P031 ? That doesn't require BT656 support.

True, but I have one board that supports either sensor and I want to stay
with one source tree.

Sure, but let's start with a non-BT656 tree to rule out issues caused by BT656
patches. Could you please try mainline v3.1 ?

This sort of works(*), but I'm still having issues (at least I can move frames!)
When I configure the pipeline like this:
  media-ctl -r
  media-ctl -l '"mt9p031 3-005d":0->"OMAP3 ISP CCDC":0[1]'
  media-ctl -l '"OMAP3 ISP CCDC":2->"OMAP3 ISP preview":0[1]'
  media-ctl -l '"OMAP3 ISP preview":1->"OMAP3 ISP resizer":0[1]'
  media-ctl -l '"OMAP3 ISP resizer":1->"OMAP3 ISP resizer output":0[1]'
  media-ctl -f '"mt9p031 3-005d":0[SGRBG12 2592x1944]'
  media-ctl -f  '"OMAP3 ISP CCDC":0 [SGRBG12 2592x1944]'
  media-ctl -f  '"OMAP3 ISP CCDC":1 [SGRBG10 2592x1944]'
  media-ctl -f  '"OMAP3 ISP preview":0 [SGRBG10 2592x1943]'
  media-ctl -f  '"OMAP3 ISP resizer":0 [YUYV 2574x1935]'
  media-ctl -f  '"OMAP3 ISP resizer":1 [YUYV 660x496]'
the resulting frames are 666624 bytes each instead of 654720

When I tried to grab from the previewer, the frames were 9969120 instead of 9961380

Any ideas what resolution is actually being moved through?

(*) to build on v3.1, I had to manually add the mt9p031 driver and fix a compile error
in drivers/media/video/omap/omap_vout.c

Thanks

--
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Linux Input]     [Video for Linux]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Photos]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Devices]     [Yosemite Backpacking]

Add to Google Powered by Linux