All of lore.kernel.org
 help / color / mirror / Atom feed
* Capturing from MT9J003 Camera on DM3730 using Previewer and Resizer
@ 2012-05-07 22:59 Neil Johnson
  2012-05-08 10:59 ` Laurent Pinchart
  0 siblings, 1 reply; 3+ messages in thread
From: Neil Johnson @ 2012-05-07 22:59 UTC (permalink / raw)
  To: linux-media

Linux-media list,

We've recently had some success capturing from the MT9J003 Aptina
camera on a DM3730 board (custom board).  We have been able to prove
this functionality by adapting the MT9P031 driver from
Linux-3.0.tar.gz (we downloaded the tarball and patched from there).
The exact URL for that version of the kernel is:

http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.0.tar.bz2

We have been working off of this kernel and using the media-ctl and
yavta applications to manipulate pipelines and test out the capture
interface.  Everything seems to work okay up through capturing from
the CCDC output (/dev/video2), but once we try to send the data
through the previewer or resizer, the app hangs at "start streaming"
or the call to the DQBUF ioctl.

The resolution we're capturing is a little odd: 912x688 (that happens
to be the recommended resolution according to one of Aptina's
manuals).  The pipeline that works looks like this:

================Start CCDC Pipeline==========================
#! /bin/sh

#
# Configure media-controller pipeline for MT9J003
#
media-ctl -r
media-ctl -l '"mt9j003 2-0010":0->"OMAP3 ISP CCDC":0[1]'
media-ctl -l '"OMAP3 ISP CCDC":1->"OMAP3 ISP CCDC output":0[1]'
media-ctl -f '"mt9j003 2-0010":0[SGRBG12 916x688]'
media-ctl -f '"OMAP3 ISP CCDC":0[SGRBG10 916x688]'
media-ctl -f '"OMAP3 ISP CCDC":1[SGRBG10 916x688]'

./yavta -p -f SGRBG10 -s 912x688 -n 4 --capture=5 -F `media-ctl -e
"OMAP3 ISP CCDC output"` --file=./images/img#.raw
================End CCDC Pipeline======================
=====

That spits out nice images which I can demosaic using post-processing
tools, and I get an actual image.

The following pipeline does not work properly:
================Start Preview Pipeline=========================
#! /bin/sh

#
# Configure media-controller pipeline for MT9J003
#
media-ctl -r
media-ctl -l '"mt9j003 2-0010":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 '"mt9j003 2-0010":0[SGRBG12 916x688]'
media-ctl -f  '"OMAP3 ISP CCDC":0 [SGRBG10 916x688]'
media-ctl -f  '"OMAP3 ISP CCDC":1 [SGRBG10 916x688]'
media-ctl -f  '"OMAP3 ISP preview":0 [SGRBG10 916x687]'
media-ctl -f  '"OMAP3 ISP preview":1 [UYVY 898x679]'

# Now capture:
./yavta -p -f UYVY -s 898x679 -n 4 --capture=5 -F `media-ctl -e "OMAP3
ISP preview output"` --file=./images/img#.uyvy
=================End Preview Pipeline==========================

When I run this preview capture script (from /dev/video4), the
application hangs after going into streaming mode on the sensor.
Here's the output when running the preview pipeline script (with some
annotations, and some printk's inserted):

=================Start output=================================
root@cobra3530p7303:~# ./grab_preview_yavta
***** preview_link_setup: drivers/media/video/omap3isp/isppreview.c, 1923
***** preview_link_setup: drivers/media/video/omap3isp/isppreview.c, 1923


cobra_mt9j003_cam_reset: Resetting MT9J003 camera, active = 0
Setting MT9J003 Coarse Int Time to 24000
  Confirmed: set coarse int time to 24000
mt9j003_set_format:754 Called mt9j003_get_format
***** preview_init_formats: drivers/media/video/omap3isp/isppreview.c, 1861
***** preview_set_format: drivers/media/video/omap3isp/isppreview.c, 1826
***** preview_try_format: drivers/media/video/omap3isp/isppreview.c, 1633
    * pad = 0 (0=sink(input), 1=src(output))
***** preview_try_format: drivers/media/video/omap3isp/isppreview.c, 1633
    * pad = 1 (0=sink(input), 1=src(output))
***** preview_set_format: drivers/media/video/omap3isp/isppreview.c, 1826
***** preview_try_format: drivers/media/video/omap3isp/isppreview.c, 1633
    * pad = 0 (0=sink(input), 1=src(output))
***** preview_try_format: drivers/media/video/omap3isp/isppreview.c, 1633
    * pad = 1 (0=sink(input), 1=src(output))
***** preview_init_formats: drivers/media/video/omap3isp/isppreview.c, 1861
***** preview_set_format: drivers/media/video/omap3isp/isppreview.c, 1826
***** preview_try_format: drivers/media/video/omap3isp/isppreview.c, 1633
    * pad = 0 (0=sink(input), 1=src(output))
***** preview_try_format: drivers/media/video/omap3isp/isppreview.c, 1633
    * pad = 1 (0=sink(input), 1=src(output))
***** preview_set_format: drivers/media/video/omap3isp/isppreview.c, 1826
***** preview_try_format: drivers/media/video/omap3isp/isppreview.c, 1633
    * pad = 1 (0=sink(input), 1=src(output))
cobra_mt9j003_cam_reset: Resetting MT9J003 camera, active = 0
Number of arguments = 12
Last argument = /dev/video4
Setting MT9J003 Coarse Int Time to 24000
  Confirmed: set coarse int time to 24000
Device /dev/vide  mbus size: w=898, h=679
o4 opened.
Devi  Selected 16 from formats list
ce `OMAP3 ISP pr  min_bpl = 1796eview output' on
isp_video_mbus_to_pix returning 28
 `media' is a video capture device.
Video format set: UYVY (59565955) 898x679 (stride 1824) buffer size 1238496
Video format: UYVY (59565955) 898x679 (stride 1824) buffer size 1238496
4 buffers requested.
length: 1238496 offset: 0
Buffer 0 mapped at address 0x402e5000.
length: 1238496 offset: 1241088
Buffer 1 mapped at address 0x404e1000.
length: 1238496 offset: 2482176
Buffer 2 mapped at address 0x4070c000.
length: 1238496 offset: 3723264
Buffer 3 mapped at address 0x40913000.
Press enter to start capture

***** preview_get_format: drivers/media/video/omap3isp/isppreview.c, 1803
  mbus size: w=898, h=679
  Selected 16 from formats list
  min_bpl = 1796  isp_video_mbus_to_pix returning 28
  isp_video_mbus_to_pix returned 28
  isp_video_check_format returned 28
  SinkPad = OMAP3 ISP preview, 0
***** preview_get_format: drivers/media/video/omap3isp/isppreview.c, 1803
  SourcePad = OMAP3 ISP CCDC, 2
  SinkPad = OMAP3 ISP CCDC, 0
  SourcePad = mt9j003 2-0010, 0
mt9j003_get_format:711 Called mt9j003_get_format
***** preview_set_stream: drivers/media/video/omap3isp/isppreview.c, 1541
    * enable = 1 (1=continuous,2=single-shot)
mt9j003_get_format:711 Called mt9j003_get_format
  mbus size: w=912, h=688
  Selected 10 from formats list
  min_bpl = 1824  isp_video_mbus_to_pix returning 0
mt9j003_s_stream:609 Called mt9j003_s_stream
mt9j003_set_params:598 Called mt9j003_set_params
mt9j003_set_software_standby: Going from standby into streaming (reset
reg now = 0x14)

(At this point the app hangs, so eventually I hit Ctrl-C and it exits
out without getting any buffers)

***** preview_set_stream: drivers/media/video/omap3isp/isppreview.c, 1541
    * enable = 0 (1=continuous,2=single-shot)
omap3isp omap3isp: CCDC stop timeout!
ISR - total: 0, matches: 0, restarts: 0
0 total buffers, 0 failures
mt9j003_s_stream:609 Called mt9j003_s_stream
mt9j003_set_software_standby: Going from streaming into standby (reset
reg now = 0x10)
=================End output=========================================

I have a couple of questions to help me figure out next steps to resolving this:

1) It appears that the pipeline is getting set up correctly.  Is there
a way to print out debugging info on the previewer to determine if
data is getting to that section of the pipeline?
2) Interrupts do not appear to be triggering when I do the Preview
capture, but they definitely trigger when I do the CCDC capture
pipeline.  Why would they not trigger in the preview case?
3) It is a bit tricky to know the right resolution input/output sizes
for different stages of the pipeline (CCDC output, preview input,
etc).  Is there a way of solving for these without manually testing
out pipelines and seeing what fails?
4) Are there known issues with the 3.0 version of kernel?  Will some
or all of these problems be resolved if I rebase my code off of the
latest stable release?  Is there an alternative tree that I should be
using to test out omap3isp?

Thanks,

Neil Johnson

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Capturing from MT9J003 Camera on DM3730 using Previewer and Resizer
  2012-05-07 22:59 Capturing from MT9J003 Camera on DM3730 using Previewer and Resizer Neil Johnson
@ 2012-05-08 10:59 ` Laurent Pinchart
  2012-05-08 16:36   ` Neil Johnson
  0 siblings, 1 reply; 3+ messages in thread
From: Laurent Pinchart @ 2012-05-08 10:59 UTC (permalink / raw)
  To: Neil Johnson; +Cc: linux-media

Hi Neil,

On Monday 07 May 2012 16:59:22 Neil Johnson wrote:
> Linux-media list,
> 
> We've recently had some success capturing from the MT9J003 Aptina camera on
> a DM3730 board (custom board).

Nice work. I hope to see a MT9J003 driver being posted to the list in the 
future ;-)

> We have been able to prove this functionality by adapting the MT9P031 driver
> from Linux-3.0.tar.gz (we downloaded the tarball and patched from there).
> The exact URL for that version of the kernel is:
> 
> http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.0.tar.bz2
> 
> We have been working off of this kernel and using the media-ctl and
> yavta applications to manipulate pipelines and test out the capture
> interface.  Everything seems to work okay up through capturing from
> the CCDC output (/dev/video2), but once we try to send the data
> through the previewer or resizer, the app hangs at "start streaming"
> or the call to the DQBUF ioctl.
> 
> The resolution we're capturing is a little odd: 912x688 (that happens
> to be the recommended resolution according to one of Aptina's
> manuals).  The pipeline that works looks like this:
> 
> ================Start CCDC Pipeline==========================
> #! /bin/sh
> 
> #
> # Configure media-controller pipeline for MT9J003
> #
> media-ctl -r
> media-ctl -l '"mt9j003 2-0010":0->"OMAP3 ISP CCDC":0[1]'
> media-ctl -l '"OMAP3 ISP CCDC":1->"OMAP3 ISP CCDC output":0[1]'
> media-ctl -f '"mt9j003 2-0010":0[SGRBG12 916x688]'
> media-ctl -f '"OMAP3 ISP CCDC":0[SGRBG10 916x688]'
> media-ctl -f '"OMAP3 ISP CCDC":1[SGRBG10 916x688]'
> 
> ./yavta -p -f SGRBG10 -s 912x688 -n 4 --capture=5 -F `media-ctl -e
> "OMAP3 ISP CCDC output"` --file=./images/img#.raw
> ================End CCDC Pipeline======================
> =====
> 
> That spits out nice images which I can demosaic using post-processing
> tools, and I get an actual image.
> 
> The following pipeline does not work properly:
> ================Start Preview Pipeline=========================
> #! /bin/sh
> 
> #
> # Configure media-controller pipeline for MT9J003
> #
> media-ctl -r
> media-ctl -l '"mt9j003 2-0010":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 '"mt9j003 2-0010":0[SGRBG12 916x688]'
> media-ctl -f  '"OMAP3 ISP CCDC":0 [SGRBG10 916x688]'
> media-ctl -f  '"OMAP3 ISP CCDC":1 [SGRBG10 916x688]'
> media-ctl -f  '"OMAP3 ISP preview":0 [SGRBG10 916x687]'
> media-ctl -f  '"OMAP3 ISP preview":1 [UYVY 898x679]'
> 
> # Now capture:
> ./yavta -p -f UYVY -s 898x679 -n 4 --capture=5 -F `media-ctl -e "OMAP3
> ISP preview output"` --file=./images/img#.uyvy
> =================End Preview Pipeline==========================
> 
> When I run this preview capture script (from /dev/video4), the
> application hangs after going into streaming mode on the sensor.
> Here's the output when running the preview pipeline script (with some
> annotations, and some printk's inserted):
> 
> =================Start output=================================
> root@cobra3530p7303:~# ./grab_preview_yavta
> ***** preview_link_setup: drivers/media/video/omap3isp/isppreview.c, 1923
> ***** preview_link_setup: drivers/media/video/omap3isp/isppreview.c, 1923
> 
> 
> cobra_mt9j003_cam_reset: Resetting MT9J003 camera, active = 0
> Setting MT9J003 Coarse Int Time to 24000
>   Confirmed: set coarse int time to 24000
> mt9j003_set_format:754 Called mt9j003_get_format
> ***** preview_init_formats: drivers/media/video/omap3isp/isppreview.c, 1861
> ***** preview_set_format: drivers/media/video/omap3isp/isppreview.c, 1826
> ***** preview_try_format: drivers/media/video/omap3isp/isppreview.c, 1633
>     * pad = 0 (0=sink(input), 1=src(output))
> ***** preview_try_format: drivers/media/video/omap3isp/isppreview.c, 1633
>     * pad = 1 (0=sink(input), 1=src(output))
> ***** preview_set_format: drivers/media/video/omap3isp/isppreview.c, 1826
> ***** preview_try_format: drivers/media/video/omap3isp/isppreview.c, 1633
>     * pad = 0 (0=sink(input), 1=src(output))
> ***** preview_try_format: drivers/media/video/omap3isp/isppreview.c, 1633
>     * pad = 1 (0=sink(input), 1=src(output))
> ***** preview_init_formats: drivers/media/video/omap3isp/isppreview.c, 1861
> ***** preview_set_format: drivers/media/video/omap3isp/isppreview.c, 1826
> ***** preview_try_format: drivers/media/video/omap3isp/isppreview.c, 1633
>     * pad = 0 (0=sink(input), 1=src(output))
> ***** preview_try_format: drivers/media/video/omap3isp/isppreview.c, 1633
>     * pad = 1 (0=sink(input), 1=src(output))
> ***** preview_set_format: drivers/media/video/omap3isp/isppreview.c, 1826
> ***** preview_try_format: drivers/media/video/omap3isp/isppreview.c, 1633
>     * pad = 1 (0=sink(input), 1=src(output))
> cobra_mt9j003_cam_reset: Resetting MT9J003 camera, active = 0
> Number of arguments = 12
> Last argument = /dev/video4
> Setting MT9J003 Coarse Int Time to 24000
>   Confirmed: set coarse int time to 24000
> Device /dev/vide  mbus size: w=898, h=679
> o4 opened.
> Devi  Selected 16 from formats list
> ce `OMAP3 ISP pr  min_bpl = 1796eview output' on
> isp_video_mbus_to_pix returning 28
>  `media' is a video capture device.
> Video format set: UYVY (59565955) 898x679 (stride 1824) buffer size 1238496
> Video format: UYVY (59565955) 898x679 (stride 1824) buffer size 1238496
> 4 buffers requested.
> length: 1238496 offset: 0
> Buffer 0 mapped at address 0x402e5000.
> length: 1238496 offset: 1241088
> Buffer 1 mapped at address 0x404e1000.
> length: 1238496 offset: 2482176
> Buffer 2 mapped at address 0x4070c000.
> length: 1238496 offset: 3723264
> Buffer 3 mapped at address 0x40913000.
> Press enter to start capture
> 
> ***** preview_get_format: drivers/media/video/omap3isp/isppreview.c, 1803
>   mbus size: w=898, h=679
>   Selected 16 from formats list
>   min_bpl = 1796  isp_video_mbus_to_pix returning 28
>   isp_video_mbus_to_pix returned 28
>   isp_video_check_format returned 28
>   SinkPad = OMAP3 ISP preview, 0
> ***** preview_get_format: drivers/media/video/omap3isp/isppreview.c, 1803
>   SourcePad = OMAP3 ISP CCDC, 2
>   SinkPad = OMAP3 ISP CCDC, 0
>   SourcePad = mt9j003 2-0010, 0
> mt9j003_get_format:711 Called mt9j003_get_format
> ***** preview_set_stream: drivers/media/video/omap3isp/isppreview.c, 1541
>     * enable = 1 (1=continuous,2=single-shot)
> mt9j003_get_format:711 Called mt9j003_get_format
>   mbus size: w=912, h=688
>   Selected 10 from formats list
>   min_bpl = 1824  isp_video_mbus_to_pix returning 0
> mt9j003_s_stream:609 Called mt9j003_s_stream
> mt9j003_set_params:598 Called mt9j003_set_params
> mt9j003_set_software_standby: Going from standby into streaming (reset
> reg now = 0x14)
> 
> (At this point the app hangs, so eventually I hit Ctrl-C and it exits
> out without getting any buffers)
> 
> ***** preview_set_stream: drivers/media/video/omap3isp/isppreview.c, 1541
>     * enable = 0 (1=continuous,2=single-shot)
> omap3isp omap3isp: CCDC stop timeout!
> ISR - total: 0, matches: 0, restarts: 0
> 0 total buffers, 0 failures
> mt9j003_s_stream:609 Called mt9j003_s_stream
> mt9j003_set_software_standby: Going from streaming into standby (reset
> reg now = 0x10)
> =================End output=========================================
> 
> I have a couple of questions to help me figure out next steps to resolving
> this:
> 
> 1) It appears that the pipeline is getting set up correctly.  Is there
> a way to print out debugging info on the previewer to determine if
> data is getting to that section of the pipeline?

Not on the preview engine directly, but you might be interested in printing 
the preview engine SBL registers. And, of course, you can define DEBUG and 
ISP_ISR_DEBUG in isp.c to print IRQ status register when an interrupt occurs, 
that's a useful source of information as well.

> 2) Interrupts do not appear to be triggering when I do the Preview capture,
> but they definitely trigger when I do the CCDC capture pipeline. Why would
> they not trigger in the preview case?

That's the $1000 question :-) You don't get any interrupt at all, not even the 
HS/VS interrupt ?

> 3) It is a bit tricky to know the right resolution input/output sizes for
> different stages of the pipeline (CCDC output, preview input, etc). Is there
> a way of solving for these without manually testing out pipelines and seeing
> what fails?

Sure. Drivers are free to mangle formats when you call S_FMT, but must return 
the format applied to the hardware. Just apply the format from source to sink 
on the pipeline and let drivers do the mangling for you.

> 4) Are there known issues with the 3.0 version of kernel?  Will some or all
> of these problems be resolved if I rebase my code off of the latest stable
> release?  Is there an alternative tree that I should be using to test out
> omap3isp?

There are several known bugs in v3.0, but none that look directly related to 
your problem. I would still advise trying the latest OMAP3 ISP driver if 
possible.

-- 
Regards,

Laurent Pinchart


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Capturing from MT9J003 Camera on DM3730 using Previewer and Resizer
  2012-05-08 10:59 ` Laurent Pinchart
@ 2012-05-08 16:36   ` Neil Johnson
  0 siblings, 0 replies; 3+ messages in thread
From: Neil Johnson @ 2012-05-08 16:36 UTC (permalink / raw)
  To: Laurent Pinchart; +Cc: linux-media

Laurent,

Thanks for your quick reply.  I will take a look at better debugging
the interrupts and possibly updating to something newer than kernel
3.0.  I'm hoping this isn't simply an issue with a badly constructed
media-ctl pipeline, but I like your suggestion of just setting formats
on the source and sink of the pipeline and letting the drivers do the
mangling.

Neil



On Tue, May 8, 2012 at 4:59 AM, Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
> Hi Neil,
>
> On Monday 07 May 2012 16:59:22 Neil Johnson wrote:
>> Linux-media list,
>>
>> We've recently had some success capturing from the MT9J003 Aptina camera on
>> a DM3730 board (custom board).
>
> Nice work. I hope to see a MT9J003 driver being posted to the list in the
> future ;-)
>
>> We have been able to prove this functionality by adapting the MT9P031 driver
>> from Linux-3.0.tar.gz (we downloaded the tarball and patched from there).
>> The exact URL for that version of the kernel is:
>>
>> http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.0.tar.bz2
>>
>> We have been working off of this kernel and using the media-ctl and
>> yavta applications to manipulate pipelines and test out the capture
>> interface.  Everything seems to work okay up through capturing from
>> the CCDC output (/dev/video2), but once we try to send the data
>> through the previewer or resizer, the app hangs at "start streaming"
>> or the call to the DQBUF ioctl.
>>
>> The resolution we're capturing is a little odd: 912x688 (that happens
>> to be the recommended resolution according to one of Aptina's
>> manuals).  The pipeline that works looks like this:
>>
>> ================Start CCDC Pipeline==========================
>> #! /bin/sh
>>
>> #
>> # Configure media-controller pipeline for MT9J003
>> #
>> media-ctl -r
>> media-ctl -l '"mt9j003 2-0010":0->"OMAP3 ISP CCDC":0[1]'
>> media-ctl -l '"OMAP3 ISP CCDC":1->"OMAP3 ISP CCDC output":0[1]'
>> media-ctl -f '"mt9j003 2-0010":0[SGRBG12 916x688]'
>> media-ctl -f '"OMAP3 ISP CCDC":0[SGRBG10 916x688]'
>> media-ctl -f '"OMAP3 ISP CCDC":1[SGRBG10 916x688]'
>>
>> ./yavta -p -f SGRBG10 -s 912x688 -n 4 --capture=5 -F `media-ctl -e
>> "OMAP3 ISP CCDC output"` --file=./images/img#.raw
>> ================End CCDC Pipeline======================
>> =====
>>
>> That spits out nice images which I can demosaic using post-processing
>> tools, and I get an actual image.
>>
>> The following pipeline does not work properly:
>> ================Start Preview Pipeline=========================
>> #! /bin/sh
>>
>> #
>> # Configure media-controller pipeline for MT9J003
>> #
>> media-ctl -r
>> media-ctl -l '"mt9j003 2-0010":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 '"mt9j003 2-0010":0[SGRBG12 916x688]'
>> media-ctl -f  '"OMAP3 ISP CCDC":0 [SGRBG10 916x688]'
>> media-ctl -f  '"OMAP3 ISP CCDC":1 [SGRBG10 916x688]'
>> media-ctl -f  '"OMAP3 ISP preview":0 [SGRBG10 916x687]'
>> media-ctl -f  '"OMAP3 ISP preview":1 [UYVY 898x679]'
>>
>> # Now capture:
>> ./yavta -p -f UYVY -s 898x679 -n 4 --capture=5 -F `media-ctl -e "OMAP3
>> ISP preview output"` --file=./images/img#.uyvy
>> =================End Preview Pipeline==========================
>>
>> When I run this preview capture script (from /dev/video4), the
>> application hangs after going into streaming mode on the sensor.
>> Here's the output when running the preview pipeline script (with some
>> annotations, and some printk's inserted):
>>
>> =================Start output=================================
>> root@cobra3530p7303:~# ./grab_preview_yavta
>> ***** preview_link_setup: drivers/media/video/omap3isp/isppreview.c, 1923
>> ***** preview_link_setup: drivers/media/video/omap3isp/isppreview.c, 1923
>>
>>
>> cobra_mt9j003_cam_reset: Resetting MT9J003 camera, active = 0
>> Setting MT9J003 Coarse Int Time to 24000
>>   Confirmed: set coarse int time to 24000
>> mt9j003_set_format:754 Called mt9j003_get_format
>> ***** preview_init_formats: drivers/media/video/omap3isp/isppreview.c, 1861
>> ***** preview_set_format: drivers/media/video/omap3isp/isppreview.c, 1826
>> ***** preview_try_format: drivers/media/video/omap3isp/isppreview.c, 1633
>>     * pad = 0 (0=sink(input), 1=src(output))
>> ***** preview_try_format: drivers/media/video/omap3isp/isppreview.c, 1633
>>     * pad = 1 (0=sink(input), 1=src(output))
>> ***** preview_set_format: drivers/media/video/omap3isp/isppreview.c, 1826
>> ***** preview_try_format: drivers/media/video/omap3isp/isppreview.c, 1633
>>     * pad = 0 (0=sink(input), 1=src(output))
>> ***** preview_try_format: drivers/media/video/omap3isp/isppreview.c, 1633
>>     * pad = 1 (0=sink(input), 1=src(output))
>> ***** preview_init_formats: drivers/media/video/omap3isp/isppreview.c, 1861
>> ***** preview_set_format: drivers/media/video/omap3isp/isppreview.c, 1826
>> ***** preview_try_format: drivers/media/video/omap3isp/isppreview.c, 1633
>>     * pad = 0 (0=sink(input), 1=src(output))
>> ***** preview_try_format: drivers/media/video/omap3isp/isppreview.c, 1633
>>     * pad = 1 (0=sink(input), 1=src(output))
>> ***** preview_set_format: drivers/media/video/omap3isp/isppreview.c, 1826
>> ***** preview_try_format: drivers/media/video/omap3isp/isppreview.c, 1633
>>     * pad = 1 (0=sink(input), 1=src(output))
>> cobra_mt9j003_cam_reset: Resetting MT9J003 camera, active = 0
>> Number of arguments = 12
>> Last argument = /dev/video4
>> Setting MT9J003 Coarse Int Time to 24000
>>   Confirmed: set coarse int time to 24000
>> Device /dev/vide  mbus size: w=898, h=679
>> o4 opened.
>> Devi  Selected 16 from formats list
>> ce `OMAP3 ISP pr  min_bpl = 1796eview output' on
>> isp_video_mbus_to_pix returning 28
>>  `media' is a video capture device.
>> Video format set: UYVY (59565955) 898x679 (stride 1824) buffer size 1238496
>> Video format: UYVY (59565955) 898x679 (stride 1824) buffer size 1238496
>> 4 buffers requested.
>> length: 1238496 offset: 0
>> Buffer 0 mapped at address 0x402e5000.
>> length: 1238496 offset: 1241088
>> Buffer 1 mapped at address 0x404e1000.
>> length: 1238496 offset: 2482176
>> Buffer 2 mapped at address 0x4070c000.
>> length: 1238496 offset: 3723264
>> Buffer 3 mapped at address 0x40913000.
>> Press enter to start capture
>>
>> ***** preview_get_format: drivers/media/video/omap3isp/isppreview.c, 1803
>>   mbus size: w=898, h=679
>>   Selected 16 from formats list
>>   min_bpl = 1796  isp_video_mbus_to_pix returning 28
>>   isp_video_mbus_to_pix returned 28
>>   isp_video_check_format returned 28
>>   SinkPad = OMAP3 ISP preview, 0
>> ***** preview_get_format: drivers/media/video/omap3isp/isppreview.c, 1803
>>   SourcePad = OMAP3 ISP CCDC, 2
>>   SinkPad = OMAP3 ISP CCDC, 0
>>   SourcePad = mt9j003 2-0010, 0
>> mt9j003_get_format:711 Called mt9j003_get_format
>> ***** preview_set_stream: drivers/media/video/omap3isp/isppreview.c, 1541
>>     * enable = 1 (1=continuous,2=single-shot)
>> mt9j003_get_format:711 Called mt9j003_get_format
>>   mbus size: w=912, h=688
>>   Selected 10 from formats list
>>   min_bpl = 1824  isp_video_mbus_to_pix returning 0
>> mt9j003_s_stream:609 Called mt9j003_s_stream
>> mt9j003_set_params:598 Called mt9j003_set_params
>> mt9j003_set_software_standby: Going from standby into streaming (reset
>> reg now = 0x14)
>>
>> (At this point the app hangs, so eventually I hit Ctrl-C and it exits
>> out without getting any buffers)
>>
>> ***** preview_set_stream: drivers/media/video/omap3isp/isppreview.c, 1541
>>     * enable = 0 (1=continuous,2=single-shot)
>> omap3isp omap3isp: CCDC stop timeout!
>> ISR - total: 0, matches: 0, restarts: 0
>> 0 total buffers, 0 failures
>> mt9j003_s_stream:609 Called mt9j003_s_stream
>> mt9j003_set_software_standby: Going from streaming into standby (reset
>> reg now = 0x10)
>> =================End output=========================================
>>
>> I have a couple of questions to help me figure out next steps to resolving
>> this:
>>
>> 1) It appears that the pipeline is getting set up correctly.  Is there
>> a way to print out debugging info on the previewer to determine if
>> data is getting to that section of the pipeline?
>
> Not on the preview engine directly, but you might be interested in printing
> the preview engine SBL registers. And, of course, you can define DEBUG and
> ISP_ISR_DEBUG in isp.c to print IRQ status register when an interrupt occurs,
> that's a useful source of information as well.
>
>> 2) Interrupts do not appear to be triggering when I do the Preview capture,
>> but they definitely trigger when I do the CCDC capture pipeline. Why would
>> they not trigger in the preview case?
>
> That's the $1000 question :-) You don't get any interrupt at all, not even the
> HS/VS interrupt ?
>
>> 3) It is a bit tricky to know the right resolution input/output sizes for
>> different stages of the pipeline (CCDC output, preview input, etc). Is there
>> a way of solving for these without manually testing out pipelines and seeing
>> what fails?
>
> Sure. Drivers are free to mangle formats when you call S_FMT, but must return
> the format applied to the hardware. Just apply the format from source to sink
> on the pipeline and let drivers do the mangling for you.
>
>> 4) Are there known issues with the 3.0 version of kernel?  Will some or all
>> of these problems be resolved if I rebase my code off of the latest stable
>> release?  Is there an alternative tree that I should be using to test out
>> omap3isp?
>
> There are several known bugs in v3.0, but none that look directly related to
> your problem. I would still advise trying the latest OMAP3 ISP driver if
> possible.
>
> --
> Regards,
>
> Laurent Pinchart
>

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-05-08 16:36 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-05-07 22:59 Capturing from MT9J003 Camera on DM3730 using Previewer and Resizer Neil Johnson
2012-05-08 10:59 ` Laurent Pinchart
2012-05-08 16:36   ` Neil Johnson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.