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 majord...@vger.kernel.org
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 majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html