Hi Guennadi, I am working on adding v4l-asyn for capture and display device.. Here is my hw details:-- 1: The capture device has two subdevs tvp514x @0x5c and tvp514x @0x5d. 2: The display device has a one subdev adv7343 @0x2a. Note:- I have added async support for all the subdevices and the capture and display driver too Test Case:- 1: I have v4l2_async_notifier_register() for both capture and display driver, as of now I have built the subdevices as module. when board is up, I insert the tvp514x subdevices and the capture driver gets intialized (/dev/video0 & /dev/video1) nodes get created, now I do insmod on the other subdevice adv7343, the bound callback is called in capture driver, but whereas this should have been called in the display driver. 2: When I build the subdevices as part of uImage I hit a crash. Attached is the crash log. 3: When I just build and use either the capture/display driver and their respective subdevices only every thing works fine. Regards, --Prabhakar
Unable to handle kernel paging request at virtual address 001000f4 pgd = c0004000 [001000f4] *pgd=00000000 Internal error: Oops: 5 [#1] PREEMPT ARM Modules linked in: CPU: 0 Not tainted (3.8.0-rc4-00368-ge58e48d-dirty #69) PC is at v4l2_async_belongs.clone.2+0x50/0xb4 LR is at v4l2_async_notifier_register+0xc0/0x134 pc : [<c020bd6c>] lr : [<c020bfe0>] psr: a0000013 sp : c702de50 ip : c04519f0 fp : 00000001 r10: c0451970 r9 : c0410550 r8 : c04519e4 r7 : c7127aa0 r6 : c7127aa8 r5 : c04519e4 r4 : 001000f4 r3 : c042934c r2 : c702c000 r1 : c7127aa8 r0 : c04519e4 Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel Control: 0005317f Table: c0004000 DAC: 00000017 Process swapper (pid: 1, stack limit = 0xc702c1b8) Stack: (0xc702de50 to 0xc702e000) de40: c04519e4 c042934c c042934c c020bfe0 de60: c0414068 c0414038 c04519d4 c0451970 00000001 c03f367c c0394b38 c70da828 de80: 00000000 00000000 c0451970 00000000 00000001 c0451270 00000001 c0410560 dea0: 00000000 c042f7f0 c04034b0 c03df1fc 00000000 c01d6fe4 c01d6fd0 c01d5a80 dec0: c0410560 c042f7f0 c0410594 00000000 00000000 c01d5d9c c042f7f0 c01d5d10 dee0: 00000000 c01d4354 c7027058 c7058330 c042f7f0 c04272f0 c71b6d20 c01d53ac df00: c0375568 c02dff0c c042f7f0 c042f9c0 c702c000 00000000 00000000 c04034b0 df20: c03df1fc c01d62e4 00000000 c03fba24 c042f9c0 c702c000 00000000 c03f32f4 df40: c03df1fc c00087f8 00000000 c054753d c04166d8 c03fba20 c03fba24 00000006 df60: c03fba04 c042f9c0 00000053 c03df1fc 00000000 c03df8a4 00000006 00000006 df80: c03df1fc c0041b80 00000000 c02de254 00000000 00000000 00000000 00000000 dfa0: 00000000 c02de25c 00000000 c00094b0 00000000 00000000 00000000 00000000 dfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 dfe0: 00000000 00000000 00000000 00000000 00000013 00000000 00ff0002 002000ff [<c020bd6c>] (v4l2_async_belongs.clone.2+0x50/0xb4) from [<c020bfe0>] (v4l2_async_notifier_register+0xc0/0x134) [<c020bfe0>] (v4l2_async_notifier_register+0xc0/0x134) from [<c03f367c>] (vpif_probe+0x37c/0x4d0) [<c03f367c>] (vpif_probe+0x37c/0x4d0) from [<c01d6fe4>] (platform_drv_probe+0x14/0x18) [<c01d6fe4>] (platform_drv_probe+0x14/0x18) from [<c01d5a80>] (really_probe+0x68/0x1fc) [<c01d5a80>] (really_probe+0x68/0x1fc) from [<c01d5d9c>] (__driver_attach+0x8c/0x90) [<c01d5d9c>] (__driver_attach+0x8c/0x90) from [<c01d4354>] (bus_for_each_dev+0x54/0x7c) [<c01d4354>] (bus_for_each_dev+0x54/0x7c) from [<c01d53ac>] (bus_add_driver+0x1d0/0x2a0) [<c01d53ac>] (bus_add_driver+0x1d0/0x2a0) from [<c01d62e4>] (driver_register+0x78/0x190) [<c01d62e4>] (driver_register+0x78/0x190) from [<c00087f8>] (do_one_initcall+0x30/0x16c) [<c00087f8>] (do_one_initcall+0x30/0x16c) from [<c03df8a4>] (kernel_init_freeable+0xec/0x1b4) [<c03df8a4>] (kernel_init_freeable+0xec/0x1b4) from [<c02de25c>] (kernel_init+0x8/0xe4) [<c02de25c>] (kernel_init+0x8/0xe4) from [<c00094b0>] (ret_from_fork+0x14/0x24) Code: e594000c e240400c e1550004 0a00000f (e5942000) ---[ end trace 0de51fa202389da8 ]--- Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b