public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
From: Gary Thomas <gary@mlbassoc.com>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Javier Martinez Canillas <martinez.javier@gmail.com>,
	Linux Media Mailing List <linux-media@vger.kernel.org>
Subject: Re: Using MT9P031 digital sensor
Date: Tue, 08 Nov 2011 06:40:51 -0700	[thread overview]
Message-ID: <4EB93163.40703@mlbassoc.com> (raw)
In-Reply-To: <4EB930EF.90507@mlbassoc.com>

On 2011-11-08 06:38, Gary Thomas wrote:
> On 2011-11-08 06:06, Laurent Pinchart wrote:
>> Hi Gary,
>>
>> On Tuesday 08 November 2011 13:52:25 Gary Thomas wrote:
>>> On 2011-11-08 05:30, Javier Martinez Canillas wrote:
>>>> On Tue, Nov 8, 2011 at 1:20 PM, Gary Thomas wrote:
>>>>> On 2011-11-04 04:37, Laurent Pinchart wrote:
>>>>>> On Tuesday 01 November 2011 19:52:49 Gary Thomas wrote:
>>>>>>> I'm trying to use the MT9P031 digital sensor with the Media Controller
>>>>>>> Framework. media-ctl tells me that the sensor is set to capture using
>>>>>>> SGRBG12 2592x1944
>>>>>>>
>>>>>>> Questions:
>>>>>>> * What pixel format in ffmpeg does this correspond to?
>>>>>>
>>>>>> I don't know if ffmpeg supports Bayer formats. The corresponding fourcc
>>>>>> in V4L2 is BA12.
>>>>>
>>>>> ffmpeg doesn't seem to support these formats
>>>>>
>>>>>> If your sensor is hooked up to the OMAP3 ISP, you can then configure
>>>>>> the pipeline to include the preview engine and the resizer, and
>>>>>> capture YUV data
>>>>>> at the resizer output.
>>>>>
>>>>> I am using the OMAP3 ISP, but it's a bit unclear to me how to set up the
>>>>> pipeline
>>>>
>>>> Hi Gary,
>>>>
>>>> I'm also using another sensor mtv9034 with OMAP3 ISP, so maybe I can help
>>>> you.
>>>>
>>>>> using media-ctl (I looked for documentation on this tool, but came up
>>>>> dry - is there any?)
>>>>>
>>>>> Do you have an example of how to configure this using the OMAP3 ISP?
>>>>
>>>> This is how I configure the pipeline to connect the CCDC with the
>>>> Previewer and Resizer:
>>>>
>>>> ./media-ctl -l '"mt9v032 3-005c":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 '"mt9v032 3-005c":0[SGRBG10 752x480]'
>>>> ./media-ctl -f '"OMAP3 ISP CCDC":0 [SGRBG10 752x480]'
>>>> ./media-ctl -f '"OMAP3 ISP CCDC":1 [SGRBG10 752x480]'
>>>> ./media-ctl -f '"OMAP3 ISP preview":0 [SGRBG10 752x479]'
>>>> ./media-ctl -f '"OMAP3 ISP resizer":0 [YUYV 734x471]'
>>>> ./media-ctl -f '"OMAP3 ISP resizer":1 [YUYV 640x480]'
>>>>
>>>> Hope it helps,
>>>
>>> Thanks, I'll give this a try.
>>>
>>> I assume that your sensor is probably larger than 752x480 (the mt9p031
>>> is 2592x1944 raw) and that setting the smaller frame size enables some
>>> scaling and/or cropping in the driver?
>>
>> The mt9v034 is a wide VGA 752x480 sensor if I'm not mistaken. You should
>> modify the resolutions in the above commands according to your sensor. Note
>> that the CCDC crops online line when outputting data to the preview engine,
>> and that the preview engine crops 18 columsn and 8 lines. You can then scale
>> the image by modifying the resizer output size.
>
> Thanks. After much trial and error (and some kernel printks to
> understand what parameters were failing), I came up with this sequence:
> 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 [SGRBG12 2592x1944]'
> media-ctl -f '"OMAP3 ISP preview":0 [SGRBG12 2592x1943]'
> media-ctl -f '"OMAP3 ISP resizer":0 [YUYV 2574x1935]'
> media-ctl -f '"OMAP3 ISP resizer":1 [YUYV 642x483]'
>
> When I tried to grab though, I got this:
>
> # yavta --capture=4 -f YUYV -s 642x483 -F /dev/video6
> Device /dev/video6 opened.
> Device `OMAP3 ISP resizer output' on `media' is a video capture device.
> Video format set: YUYV (56595559) 642x483 buffer size 633696
> Video format: YUYV (56595559) 642x483 buffer size 633696
> 8 buffers requested.
> length: 633696 offset: 0
> Buffer 0 mapped at address 0x4028c000.
> length: 633696 offset: 634880
> Buffer 1 mapped at address 0x403d0000.
> length: 633696 offset: 1269760
> Buffer 2 mapped at address 0x404b3000.
> length: 633696 offset: 1904640
> Buffer 3 mapped at address 0x4062b000.
> length: 633696 offset: 2539520
> Buffer 4 mapped at address 0x406d6000.
> length: 633696 offset: 3174400
> Buffer 5 mapped at address 0x40821000.
> length: 633696 offset: 3809280
> Buffer 6 mapped at address 0x4097c000.
> length: 633696 offset: 4444160
> Buffer 7 mapped at address 0x40adf000.
>
> Unable to handle kernel NULL pointer dereference at virtual address 00000018
> pgd = c0004000
> [00000018] *pgd=00000000
> Internal error: Oops: 17 [#1]
> Modules linked in: sdmak lpm_omap3530 dsplinkk cmemk ipv6
> CPU: 0 Not tainted (3.0.0 #3)
> PC is at ccdc_hs_vs_isr+0x28/0x40
> LR is at 0x0
> pc : [<c0251ae0>] lr : [<00000000>] psr: 60000193
> sp : c0433e70 ip : 00000000 fp : 00000001
> r10: 00000001 r9 : c0470524 r8 : 00000001
> r7 : 00000080 r6 : 00000000 r5 : 00000000 r4 : cee45b88
> r3 : 00000004 r2 : 00000000 r1 : 00000000 r0 : cee45c28
> Flags: nZCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment kernel
> Control: 10c5387d Table: 8e4d8019 DAC: 00000015
> Process swapper (pid: 0, stack limit = 0xc04322f0)
> Stack: (0xc0433e70 to 0xc0434000)
> 3e60: 00000004 00000000 00000000 00000000
> 3e80: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
> 3ea0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
> 3ec0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
> 3ee0: 00000000 00000000 00000000 00000000 80000000 cee45b88 80000000 c0252d88
> 3f00: cee40000 80000000 00000000 00000080 00000001 c024a424 cee2ff80 00000018
> 3f20: c04476e8 c0089bd8 c04476e8 ced051c0 00004c00 c04476e8 00000000 c0468d44
> 3f40: c0437154 80004059 413fc082 00000000 00000000 c0089d40 c04476e8 c008b7f4
> 3f60: 00000018 c00896c4 0000019a c0033060 60000013 ffffffff fa200000 c003caf4
> 3f80: 00000001 c0446be0 0039acad 60000013 c0432000 c043715c c0468d44 c0437154
> 3fa0: 80004059 413fc082 00000000 00000000 00000000 c0433fc8 c003dfec c003dff0
> 3fc0: 60000013 ffffffff c043415c c0029e24 c0682980 c0008a04 c0008488 00000a7d
> 3fe0: 80000100 c0029e24 10c53c7d c0434080 c0029e20 8000803c 00000000 00000000
> [<c0251ae0>] (ccdc_hs_vs_isr+0x28/0x40) from [<c0252d88>] (omap3isp_ccdc_isr+0x2c4/0x2d8)
> [<c0252d88>] (omap3isp_ccdc_isr+0x2c4/0x2d8) from [<c024a424>] (isp_isr+0x19c/0x230)
> [<c024a424>] (isp_isr+0x19c/0x230) from [<c0089bd8>] (handle_irq_event_percpu+0x30/0x170)
> [<c0089bd8>] (handle_irq_event_percpu+0x30/0x170) from [<c0089d40>] (handle_irq_event+0x28/0x38)
> [<c0089d40>] (handle_irq_event+0x28/0x38) from [<c008b7f4>] (handle_level_irq+0xac/0xd4)
> [<c008b7f4>] (handle_level_irq+0xac/0xd4) from [<c00896c4>] (generic_handle_irq+0x30/0x44)
> [<c00896c4>] (generic_handle_irq+0x30/0x44) from [<c0033060>] (asm_do_IRQ+0x60/0x84)
> [<c0033060>] (asm_do_IRQ+0x60/0x84) from [<c003caf4>] (__irq_svc+0x34/0x80)
> Exception stack(0xc0433f80 to 0xc0433fc8)
> 3f80: 00000001 c0446be0 0039acad 60000013 c0432000 c043715c c0468d44 c0437154
> 3fa0: 80004059 413fc082 00000000 00000000 00000000 c0433fc8 c003dfec c003dff0
> 3fc0: 60000013 ffffffff
> [<c003caf4>] (__irq_svc+0x34/0x80) from [<c003dff0>] (cpu_idle+0x4c/0x88)
> [<c003dff0>] (cpu_idle+0x4c/0x88) from [<c0008a04>] (start_kernel+0x26c/0x2c0)
> [<c0008a04>] (start_kernel+0x26c/0x2c0) from [<8000803c>] (0x8000803c)
> Code: ebfce5a2 e3a03004 e58d3000 e28400a0 (e5953018)
> ---[ end trace bd263f5099189d04 ]---
>
> Any ideas of where to look?
>

Note: I was able to grab the raw SGRBG12 data using yavta, I only
get the failure when I run it through the CCDC->previewer->resizer

-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------

  reply	other threads:[~2011-11-08 13:40 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-01 18:52 Using MT9P031 digital sensor Gary Thomas
2011-11-04 10:37 ` Laurent Pinchart
2011-11-08 12:20   ` Gary Thomas
2011-11-08 12:30     ` Javier Martinez Canillas
2011-11-08 12:33       ` Laurent Pinchart
2011-11-08 12:52       ` Gary Thomas
2011-11-08 13:06         ` Laurent Pinchart
2011-11-08 13:38           ` Gary Thomas
2011-11-08 13:40             ` Gary Thomas [this message]
2011-11-09  0:54             ` Laurent Pinchart
2011-11-09 11:01               ` Gary Thomas
2011-11-09 16:18                 ` Laurent Pinchart
2011-11-09 16:24                   ` Gary Thomas
2011-11-11 14:26                     ` Laurent Pinchart
2011-11-14 11:42                       ` Gary Thomas
2011-11-16  1:26                         ` Laurent Pinchart
2011-11-16 12:03                           ` Gary Thomas
2011-11-24 11:28                             ` Laurent Pinchart
2011-11-25 11:50                               ` Gary Thomas
2011-11-28 11:07                                 ` Laurent Pinchart
2011-11-28 12:42                                   ` Gary Thomas
2011-11-28 12:49                                     ` Laurent Pinchart
2011-11-28 12:53                                       ` Gary Thomas
2011-11-30 14:13                                       ` Gary Thomas
2011-11-30 14:30                                         ` Laurent Pinchart
2011-11-30 14:38                                           ` Hiremath, Vaibhav
2011-11-30 14:57                                           ` Gary Thomas
2011-11-30 17:00                                             ` Gary Thomas
2011-11-30 23:49                                               ` Laurent Pinchart
2011-11-30 23:42                                             ` Laurent Pinchart
  -- strict thread matches above, loose matches on Subject: below --
2012-03-23 19:01 Joshua Hintze
2012-03-26  5:13 ` Joshua Hintze
2012-03-26  8:25   ` Laurent Pinchart
2012-03-26 15:44     ` Joshua Hintze
2012-03-26 17:38       ` Laurent Pinchart
2012-03-26 17:43         ` Joshua Hintze
     [not found]   ` <4F708A66.8090303@mlbassoc.com>
2012-03-26 15:37     ` Joshua Hintze
2012-03-26 16:32       ` Gary Thomas
2012-03-26 16:55         ` Joshua Hintze
2012-03-27 14:44         ` jean-philippe francois
2012-03-29 11:33           ` Laurent Pinchart

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4EB93163.40703@mlbassoc.com \
    --to=gary@mlbassoc.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=martinez.javier@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox