Re: SoC i.mx35 userptr method failure while running capture-example utility

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

 



Hi Guennadi/Laurent,

On Wed, May 2, 2012 at 4:20 AM, Guennadi Liakhovetski
<g.liakhovetski@xxxxxx> wrote:
> Hi Alex
>
> On Tue, 1 May 2012, Alex Gershgorin wrote:
>
>> Hi everyone,
>>
>> I use user-space utility from  http://git.linuxtv.org/v4l-utils.git/blob/HEAD:/contrib/test/capture-example.c
>> I made two small changes in this application and this is running on i.MX35 SoC
>>
>> fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_RGB565;
>> fmt.fmt.pix.field       = V4L2_FIELD_ANY;
>>
>> When MMAP method is used everything works fine, problem occurs when using USERPTR method
>> this can see bellow :
>>
>> ./capture-example -u -f -d /dev/video0
>> mx3-camera mx3-camera.0: MX3 Camera driver attached to camera 0
>> Failed acquiring VMA for vaddr 0x76cd9008
>> VIDIOC_QBUF error 22, Invalid arg
>
> It doesn't surprise me, that this doesn't work. capture-example allocates
> absolutely normal user-space buffers, when called with USERPTR, and those
> buffers are very likely discontiguous. Whereas mx3-camera needs physically
> contiguous buffers, so, this can only fail. This means, you either have to
> use MMAP or you need to allocate USERPTR buffers in a special way to
> guarantee their contiguity.
>
  Even I am facing a similar issue when ported to VB2 for USERPTR.
 How do we ensure the buffers not discontiguous. Would cmem assure it?

Thx,
--Prabhakar Lad

>> Unable to handle kernel NULL pointer dereference at virtual address 00000000
>
> This, however, is bad and is a bug in the driver. The capture-example
> should just fail nicely with no trouble. I'll add it to my TODO and will
> try to find some time to debug and fix this, however, I'd be more than
> happy if someone else would beat me on this ;-)
>
> Thanks
> Guennadi
>
>> pgd = 80004000
>> [00000000] *pgd=00000000
>> Internal error: Oops: 817 [#1] ARM
>> CPU: 0    Not tainted  (3.4.0-rc5+ #2283
>> PC is at mx3_videobuf_release+0x9c/0x10c
>> LR is at mx3_videobuf_release+0x20/0x10c
>> pc : [<802cd92c>]    lr : [<802cd8b0>]    psr: 00000093
>> sp : 86db3e00  ip : 86db3e00  fp : 86db3e2c
>> r10: 86ff6b20  r9 : 86817200  r8 : 00000000
>> r7 : 86ff568c  r6 : 00000000  r5 : 8801a000  r4 : 86da3000
>> r3 : 60000013  r2 : 86da3264  r1 : 00000000  r0 : 00000000
>> Flags: nzcv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment user
>> Control: 00c5387d  Table: 86dcc008  DAC: 00000015
>> Process capture-example (pid: 52, stack limit = 0x86db2268)
>> Stack: (0x86db3e00 to 0x86db4000)
>> 3e00: 00000000 60000013 00000000 86ff568c 00000000 00000002 86ff56ac 00000000
>> 3e20: 86db3e64 86db3e30 802c8978 802cd89c 00000000 80099414 86db3e84 86ff568c
>> 3e40: 86dc9a80 8801a03c 80491828 00000000 86817200 86ff6b20 86db3e7c 86db3e68
>> 3e60: 802c9a1c 802c8930 802ce048 86ff5600 86db3e9c 86db3e80 802cca14 802c9a00
>> 3e80: 86ff5800 86dc9a80 00000008 86dc9a88 86db3eb4 86db3ea0 802b936c 802cc9d0
>> 3ea0: 86dc9a80 86ff6b20 86db3ef4 86db3eb8 80082f00 802b932c 00000000 00000000
>> 3ec0: 00000000 86d35010 86d7f000 86dc9a80 00000000 86d59000 86d90120 0000000c
>> 3ee0: 86db2000 00000000 86db3f14 86db3ef8 8007ff58 80082df0 00000000 86d59000
>> 3f00: 00000000 00000001 86db3f3c 86db3f18 8001c72c 8007fee4 86d59000 86d82000
>> 3f20: 00000100 76ef1770 000000f8 8000e564 86db3f4c 86db3f40 8001c7a8 8001c6b4
>> 3f40: 86db3f7c 86db3f50 8001dab4 8001c78c 7eb002b8 00000001 00000004 00000000
>> 3f60: 86db3fa4 86db3f70 800824fc 000000f8 86db3f94 86db3f80 8001dfc0 8001d8c4
>> 3f80: 0000ffff 000a3d78 86db3fa4 86db3f98 8001e004 8001df4c 00000000 86db3fa8
>> 3fa0: 8000e3e0 8001dff8 000a3d78 76ef1770 00000001 000a3d64 00000008 00000001
>> 3fc0: 000a3d78 76ef1770 76ef1770 000000f8 76e1d248 00000000 00009ecc 7eb02954
>> 3fe0: 76f2e000 7eb02908 76de14dc 76e4f3d4 60000010 00000001 00000000 00000000
>> Backtrace:
>> [<802cd890>] (mx3_videobuf_release+0x0/0x10c) from [<802c8978>] (__vb2_queue_free+0x54/0x15c)
>>  r8:00000000 r7:86ff56ac r6:00000002 r5:00000000 r4:86ff568c
>> [<802c8924>] (__vb2_queue_free+0x0/0x15c) from [<802c9a1c>] (vb2_queue_release+0x28/0x2c)
>> [<802c99f4>] (vb2_queue_release+0x0/0x2c) from [<802cca14>] (soc_camera_close+0x50/0xac)
>>  r4:86ff5600 r3:802ce048
>> [<802cc9c4>] (soc_camera_close+0x0/0xac) from [<802b936c>] (v4l2_release+0x4c/0x6c)
>>  r7:86dc9a88 r6:00000008 r5:86dc9a80 r4:86ff5800
>> [<802b9320>] (v4l2_release+0x0/0x6c) from [<80082f00>] (fput+0x11c/0x204)
>>  r5:86ff6b20 r4:86dc9a80
>> [<80082de4>] (fput+0x0/0x204) from [<8007ff58>] (filp_close+0x80/0x8c)
>> [<8007fed8>] (filp_close+0x0/0x8c) from [<8001c72c>] (put_files_struct+0x84/0xd8)
>>  r6:00000001 r5:00000000 r4:86d59000 r3:00000000
>> [<8001c6a8>] (put_files_struct+0x0/0xd8) from [<8001c7a8>] (exit_files+0x28/0x2c)
>>  r8:8000e564 r7:000000f8 r6:76ef1770 r5:00000100 r4:86d82000
>> r3:86d59000
>> [<8001c780>] (exit_files+0x0/0x2c) from [<8001dab4>] (do_exit+0x1fc/0x688)
>> [<8001d8b8>] (do_exit+0x0/0x688) from [<8001dfc0>] (do_group_exit+0x80/0xac)
>>  r7:000000f8
>> [<8001df40>] (do_group_exit+0x0/0xac) from [<8001e004>] (sys_exit_group+0x18/0x24)
>>  r4:000a3d78 r3:0000ffff
>> [<8001dfec>] (sys_exit_group+0x0/0x24) from [<8000e3e0>] (ret_fast_syscall+0x0/0x30)
>> Code: 05852024 e5941268 e5940264 e2842f99 (e5810000)
>> ument
>> ---[ end trace 23ac1073b67b7fc0 ]---
>> Fixing recursive fault but reboot is needed!
>>
>> Unfortunately I do not have enough knowledge in this kind of problems, any help will be welcomed.
>>
>> Regards,
>> Alex
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>
> ---
> Guennadi Liakhovetski, Ph.D.
> Freelance Open-Source Software Developer
> http://www.open-technology.de/
> --
> 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
--
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


[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