On 2011-08-26 04:42, Enrico wrote:
Hi, i need some help to debug a kernel hang on an igep board (+ expansion) when using omap3-isp and tvp5150 video capture. Kernel version is mainline 3.0.1 When i modprobe omap3-isp (after iommu2) the device is correctly recognized: root@igep0020:~# modprobe omap3-isp [ 122.162200] Linux video capture interface: v2.00 [ 122.183319] _regulator_get: omap3isp supply VDD_CSIPHY1 not found, using dummy regulator [ 122.192413] _regulator_get: omap3isp supply VDD_CSIPHY2 not found, using dummy regulator [ 122.201416] omap3isp omap3isp: Revision 2.0 found [ 122.206390] omap-iommu omap-iommu.0: isp: version 1.1 [ 122.262359] tvp5150 2-005c: chip found @ 0xb8 (OMAP I2C adapter) [ 122.363830] tvp5150 2-005c: *** unknown tvp5151 chip detected. [ 122.369964] tvp5150 2-005c: *** Rom ver is 1.0 but then it immediatly hangs. Sysrq show regs:
I found that this driver is not compatible with the [new] v4l2_subdev setup. In particular, it does not define any "pads" and the call to media_entity_create_link() in omap3isp/isp.c:1803 fires a BUG_ON() for this condition.
[ 125.420349] Pid: 310, comm: modprobe [ 125.425170] CPU: 0 Not tainted (3.0.1+ #22) [ 125.429931] PC is at media_entity_create_link+0x3c/0xe8 [ 125.435485] LR is at isp_probe+0x770/0x97c [omap3_isp] [ 125.440887] pc : [<c03420b8>] lr : [<bf0ddd80>] psr: 60000013 [ 125.440887] sp : de405de8 ip : 00000000 fp : c0615998 [ 125.452911] r10: de468800 r9 : 00000000 r8 : c062f088 [ 125.458374] r7 : deefdc78 r6 : 00000000 r5 : 00000000 r4 : 00000000 [ 125.465240] r3 : 00000000 r2 : deefdc78 r1 : 00000000 r0 : de468800 [ 125.472076] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user [ 125.479553] Control: 10c5387d Table: 9e418019 DAC: 00000015 Since i had to manually edit default u-boot mux data for some pins, can you confirm this is the right setup? Don't look at the comments because for now i didn't update them to match mux config. CAM_WEN and CAM_STROBE are used for reset/power down and are configured as gpios. MUX_VAL(CP(CAM_HS), (IEN | PTU | EN | M0)) /* GPIO_94 - PDN (Rev. B) */\ MUX_VAL(CP(CAM_VS), (IEN | PTU | EN | M0)) /* GPIO_95 - RESET_N_W (Rev. B) */\ MUX_VAL(CP(CAM_XCLKA), (IDIS | PTD | DIS | M0)) /* CAM_XCLKA */\ MUX_VAL(CP(CAM_PCLK), (IEN | PTU | EN | M0)) /* CAM_PCLK */\ MUX_VAL(CP(CAM_FLD), (IEN | PTD | DIS | M0)) /* GPIO_98 */\ MUX_VAL(CP(CAM_XCLKB), (IDIS | PTD | DIS | M0)) /* CAM_XCLKB */\ MUX_VAL(CP(CAM_D0), (IEN | PTD | DIS | M0)) /* GPIO_99 */\ MUX_VAL(CP(CAM_D1), (IEN | PTD | DIS | M0)) /* GPIO_100 */\ MUX_VAL(CP(CAM_D2), (IEN | PTD | DIS | M0)) /* CAM_D2 */\ MUX_VAL(CP(CAM_D3), (IEN | PTD | DIS | M0)) /* CAM_D3 */\ MUX_VAL(CP(CAM_D4), (IEN | PTD | DIS | M0)) /* CAM_D4 */\ MUX_VAL(CP(CAM_D5), (IEN | PTD | DIS | M0)) /* CAM_D5 */\ MUX_VAL(CP(CAM_D6), (IEN | PTD | DIS | M0)) /* GPIO_105 - RF_CTRL */\ MUX_VAL(CP(CAM_D7), (IEN | PTD | DIS | M0)) /* GPIO_106 - RF_STANDBY */\ MUX_VAL(CP(CAM_D8), (IEN | PTD | DIS | M0)) /* GPIO_107 - RF_INT */\ MUX_VAL(CP(CAM_D9), (IEN | PTD | DIS | M0)) /* GPIO_108 - RF_SYNCB */\ MUX_VAL(CP(CAM_D10), (IEN | PTD | DIS | M0)) /* CAM_D10 */\ MUX_VAL(CP(CAM_D11), (IEN | PTD | DIS | M0)) /* CAM_D11 */\ I just tried it also with kernel 3.1.0-rc3+ from tmlind repository, it doesn't hang but it segfaults with: [ 70.227844] kernel BUG at drivers/media/media-entity.c:346! [ 70.239471] Unable to handle kernel NULL pointer dereference at virtual address 00000000 [ 70.248046] pgd = dfbec000 [ 70.250885] [00000000] *pgd=9eeb4831, *pte=00000000, *ppte=00000000 [ 70.257476] Internal error: Oops: 817 [#1] [ 70.261779] Modules linked in: tvp5150 omap3_isp(+) v4l2_common videodev iovmm iommu2 iommu libertas_sdio libertas cfg80211 rfkill twl4030_wdt twl4030_pwrbutton omap_wdt [last unloaded: iommu] [ 70.279785] CPU: 0 Not tainted (3.1.0-rc3+ #2) [ 70.284820] PC is at __bug+0x1c/0x28 [ 70.288574] LR is at __bug+0x18/0x28 [ 70.292327] pc : [<c0010430>] lr : [<c001042c>] psr: 20000013 [ 70.292327] sp : dec75de0 ip : 00000000 fp : c04b8a48 [ 70.304351] r10: dec1bc00 r9 : 00000000 r8 : c04c5124 [ 70.309814] r7 : dec7da68 r6 : 00000000 r5 : 00000000 r4 : 00000000 [ 70.316680] r3 : 00000000 r2 : dec75dd4 r1 : c040182a r0 : 00000045 [ 70.323516] Flags: nzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user [ 70.330993] Control: 10c5387d Table: 9fbec019 DAC: 00000015 [ 70.337005] Process modprobe (pid: 320, stack limit = 0xdec742f0) [ 70.343383] Stack: (0xdec75de0 to 0xdec76000) [ 70.347961] 5de0: 00000000 c027d390 00000008 c04c51b8 dec1bc00 c04c51b8 c04c5124 dec7da68 [ 70.356536] 5e00: dec78000 bf0e2d04 00000000 dec78000 df806f18 dec7e0b8 dec7edd8 00000000 [ 70.365112] 5e20: c04b8a7c c04b8a48 c04b8a7c bf0f59ac bf0f59ac 00000000 00000023 0000001c [ 70.373687] 5e40: 00000000 c0212c7c c0212c68 c0211c00 00000000 c04b8a48 c04b8a7c bf0f59ac [ 70.382263] 5e60: 00000000 c0211d1c bf0f59ac dec75e78 c0211cbc c0210eb0 df806ef8 df867df0 [ 70.390838] 5e80: bf0f59ac bf0f59ac ded60a40 c04df5e0 00000000 c0211520 bf0f32c5 bf0f32ca [ 70.399414] 5ea0: 00000033 bf0f59ac bf0f5c38 00000001 bf0fb000 00000000 0000001c c0212230 [ 70.408020] 5ec0: 00000000 bf0f5bf0 bf0f5c38 00000001 bf0fb000 00000000 0000001c c0008574 [ 70.416595] 5ee0: bf0fb000 00000000 00000001 bf0f5bf0 bf0f5bf0 bf0f5c38 00000001 ded6cb40 [ 70.425170] 5f00: 00000001 c0058728 bf0f5bfc c00082dc c0056534 c0354308 bf0f5d14 00de2320 [ 70.433746] 5f20: ded5d66c e0952000 00021a7a e09695d0 e0969471 e0970fd0 dedc6000 00014d2c [ 70.442321] 5f40: 00016fcc 00000000 00000000 00000021 00000022 00000016 0000001a 0000000f [ 70.450897] 5f60: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 c044ad1c [ 70.459472] 5f80: 00000000 00de2070 00000000 00000000 00000080 c000d6c4 dec74000 00000000 [ 70.468048] 5fa0: 00de2168 c000d540 00de2070 00000000 400c3000 00021a7a 00de2320 00000000 [ 70.476623] 5fc0: 00de2070 00000000 00000000 00000080 00000000 00de2070 00de2020 00de2168 [ 70.485198] 5fe0: 00de2320 beb5498c 0000b620 4024d674 60000010 400c3000 00000000 00000000 [ 70.493804] [<c0010430>] (__bug+0x1c/0x28) from [<c027d390>] (media_entity_create_link+0x4c/0xfc) [ 70.503173] [<c027d390>] (media_entity_create_link+0x4c/0xfc) from [<bf0e2d04>] (isp_probe+0x748/0x954 [omap3_isp]) [ 70.514190] [<bf0e2d04>] (isp_probe+0x748/0x954 [omap3_isp]) from [<c0212c7c>] (platform_drv_probe+0x14/0x18) [ 70.524597] [<c0212c7c>] (platform_drv_probe+0x14/0x18) from [<c0211c00>] (driver_probe_device+0xc8/0x184) [ 70.534698] [<c0211c00>] (driver_probe_device+0xc8/0x184) from [<c0211d1c>] (__driver_attach+0x60/0x84) [ 70.544555] [<c0211d1c>] (__driver_attach+0x60/0x84) from [<c0210eb0>] (bus_for_each_dev+0x4c/0x78) [ 70.554046] [<c0210eb0>] (bus_for_each_dev+0x4c/0x78) from [<c0211520>] (bus_add_driver+0x98/0x210) [ 70.563537] [<c0211520>] (bus_add_driver+0x98/0x210) from [<c0212230>] (driver_register+0xa8/0x12c) [ 70.573028] [<c0212230>] (driver_register+0xa8/0x12c) from [<c0008574>] (do_one_initcall+0x90/0x160) [ 70.582641] [<c0008574>] (do_one_initcall+0x90/0x160) from [<c0058728>] (sys_init_module+0x15fc/0x17c4) [ 70.592498] [<c0058728>] (sys_init_module+0x15fc/0x17c4) from [<c000d540>] (ret_fast_syscall+0x0/0x30) [ 70.602264] Code: e59f0010 e1a01003 eb0cf943 e3a03000 (e5833000) [ 70.608764] ---[ end trace c33463a29bf37706 ]--- If it could be useful i can send the board file where the v4l subdev is registered, but basically i copied it from a working version from the manufacturer repository (kernel 2.6.35). It's not a hardware problem because it works with manufacturer kernel. Thanks, Enrico -- 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
-- ------------------------------------------------------------ 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