RE: USB on omap2430

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

 



Hi,

On Fri, 26 Mar 2010 16:38:11 +0530, Viral Mehta
<Viral.Mehta@xxxxxxxxxxxxxxx> wrote:
> Hi,
> 
> I enabled "earlyprintk" and I have copy+pasted crashdump at the end of
the
> email.
> 
> It is not able to get "otg_get_transceiver()" since transceiver was
never
> set.
> OMAP2430 uses ISP1301 (grepped from SDP manual).
> It is on I2C1 bus and address 0x2D if I read the manual correctly.
> 
> I think it was not initialised in platform_init.
> arch/arm/mach-omap2/board-3430sdp.c
> ========= Present Code=========
> static struct i2c_board_info __initdata sdp2430_i2c_boardinfo[] = {
>     {
>         I2C_BOARD_INFO("twl4030", 0x48),
>         .flags = I2C_CLIENT_WAKE,
>         .irq = INT_24XX_SYS_NIRQ,
>         .platform_data = &sdp2430_twldata,
>     },
> };
> ==========================
> I think it needs to be modified something like this
> =============
> static struct i2c_board_info __initdata sdp2430_i2c_boardinfo[] = {
>     {
>         I2C_BOARD_INFO("twl4030", 0x48),
>         .flags = I2C_CLIENT_WAKE,
>         .irq = INT_24XX_SYS_NIRQ,
>         .platform_data = &sdp2430_twldata,
>     },
> };
> 
> static struct i2c_board_info __initdata sdp2430_i2c_1_boardinfo[] = {
>     { /* for camera sensor */
>         I2C_BOARD_INFO("ex3691", 0x48),
> /*      .flags = I2C_CLIENT_WAKE,
>         .irq = INT_24XX_SYS_NIRQ,
>         .platform_data = &sdp2430_twldata,*/
>     },
>     {
>       /* for camera transceiver */
>         I2C_BOARD_INFO("isp1301_omap", 0x2D),
>     },
> 
> };
> ==========================
> 
> I think we also need to make one change in ./arch/arm/mach-omap2/Kconfig
> ======== Present Code ========
> config ARCH_OMAP2430
>     bool "OMAP2430 support"
>     depends on ARCH_OMAP24XX
> =====================
> This should be changed to
> ===============
> config ARCH_OMAP2430
>     bool "OMAP2430 support"
>     depends on ARCH_OMAP24XX
>     select ARCH_OMAP_OTG
> ====================
> 
> The changes are not in form of "git diff" since it had lots of my other
> debug prints.
> But, I hope this makes sense. Do let me know your comments.
> =========== Crash dump with earlyprintk=========
> "Switching to clocksource gp timer
> musb_hdrc: version 6.0, musb-dma, host, debug=0
> HS USB OTG: no transceiver configured
> musb_hdrc musb_hdrc: musb_init_controller failed with status -19
> Unhandled fault: imprecise external abort (0xc06) at 0x00000000
> Internal error: : c06 [#1] PREEMPT
> last sysfs file:
> Modules linked in:
> CPU: 0    Not tainted  (2.6.33 #56)
> PC is at musb_platform_suspend+0x20/0x88
> LR is at musb_platform_suspend+0x1c/0x88
> pc : [<c01e1d44>]    lr : [<c01e1d40>]    psr: a0000013
> sp : c1c19e28  ip : 22222222  fp : c03a4b9c
> r10: c03a4bc0  r9 : 00000000  r8 : c03bf7a8
> r7 : c03c0dd0  r6 : 00000000  r5 : c1c5e8f8  r4 : c1c5e8f8
> r3 : c03a4460  r2 : c1c59608  r1 : 480ac414  r0 : fa0ac414
> Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
> Control: 00c5387d  Table: 80004000  DAC: 00000017
> Process swapper (pid: 1, stack limit = 0xc1c18268)
> Stack: (0xc1c19e28 to 0xc1c1a000)
> 9e20:                   c1c5e8f8 c01e1db8 00000000 c01e0da0 ffffffed
> c1c5e8f8
> 9e40: 00000000 c001a9d0 00000005 c1c19e8c c03af81c ffffffff c03a4bb8
> 0000005c
> 9e60: fa0ac000 00000008 c1c5ba80 00000002 c1c18000 c03e34a4 00000000
> c01710d8
> 9e80: c1c19ed4 00000000 000080d0 c1c0e7a8 00000000 60000013 00000007
> 60000013
> 9ea0: c1c000c0 c03483b8 60000013 c1c2f158 c1c18000 00000008 c1c2f158
> c1c2ff98
> 9ec0: 00000000 c02a9208 00000000 c1c19ef8 00000000 c00ef1a8 c1c19ef8
> c00eed74
> 9ee0: c1c2f158 c1c2ff98 c1c19ef8 00000000 c1c2ff98 c00ef8d8 c1c59608
> c03a4bc0
> 9f00: c03a4bf4 c03c0dd0 c03c0dd0 c03bf7a8 00000000 00000000 00000000
> c01b5184
> 9f20: c03a4bc0 c01b4288 c03a4bc0 c03a4bf4 c03c0dd0 c03c0dd0 c03bf7a8
> c01b4394
> 9f40: 00000000 c1c19f50 c01b4334 c01b376c c1c034d8 c1c63e30 c03c0dd0
> 00000001
> 9f60: c03c0dd0 c1c5a8a0 c0019e90 c01b3cd8 c02c1d7c c02c1d7c c1c19f70
> 00000001
> 9f80: c03c0dd0 c03cd040 c0019e90 00000001 00000000 c01b4744 00000001
> c03c0dbc
> 9fa0: c03cd040 c0019e90 00000001 00000000 00000000 c01b5514 c0021528
> 00000000
> 9fc0: c03cd040 c002736c c0019e90 c0171c98 00000000 c002173c c0021528
> 00000000
> 9fe0: 00000000 00000000 00000000 c0008868 00000000 c0028ea8 000a050a
> 02050d09
> [<c01e1d44>] (musb_platform_suspend+0x20/0x88) from [<c01e1db8>]
> (musb_platform_exit+0xc/0x20)

to me it sounds like you don't have a transceiver. Can you do the
following:

1. arm-linux-gdb vmlinux (with the same kernel image you reproduce the
crash)
2. (gdb) l *(musb_platform_suspend + 0x20)

it should show you the source code and the line number from
where the NULL pointer comes

ps: please read http://elinux.org/Netiquette

-- 
balbi
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux