Re: DSP Bridge video decode of above VGA videos

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

 



Many thanks for the help Rene, it makes a huge difference being told
whereabouts in the gigabytes of source to start looking!

You are quite correct in that the error comes from NODE_Create.
Node_Create calls DISP_NodeCreate
DISP_NodeCreate calls SendMessage
SendMessage succeeds, but after CHNL_IsIOComplete reads back a status
code from chnlIOC.pBuf which has the error code in it.

My understanding is that this means that the dsp bridge kernel has sent
a message across to the TI DSP, but the DSP is reporting out of memory.

Unfortunately, I don't know where to go from here, any tips?

I've looked at the DSP bridge documents but I still don't really have a
handle on the memory allocation.
My understanding is that:
1) The DSP and ARM share access to the same memory chips
2) The DSP bridge allocates shm_size memory for page tables and
communications
3) The DSP bridge assigns phys_mempool_size memory at a fixed address
for the DSP to store its own data inside
I don't understand where the streaming data gets allocated.

I've tried increasing phys_mempool_size but it behaves the same.

I've added printk to the allocation routines in mem.c, but none of these
are failing.  (Although I suspect they are irrelevant and it is some
memory manager running on the DSP that is failing)

Testing some other sizes I find that 800x480, 854x480, 864x480,
800x512 and 854x480 play, but
960x480, 800x528, 800x544, 880x480 do not.

Is it possible that the TI binaries will always return EMEMORY if too
high a resolution is requested?

Any advice much appreciated!




On Wed, Nov 24, 2010 at 12:38 AM, Sapiens, Rene <rene.sapiens@xxxxxx> wrote:
> Hi James,
>
>> The second error log is the stack trace when the watchdog timer calls
>> SYNC_EnterCS.
>
> Actually is not the WDT calling the function to get into the critical
> section, it is the WDT being disabled when the DSP is going to OFF
> state. This should fine.
>
>> The stack trace is shown below.
>>
>
> 1) Is this trace printed after the 'if (in_interrupt())' statement?
> 2) Can you check under drivers/dsp/bridge/ to see where is or under
> which context io_dispatchpm called?
>
> To get the assertions failing you should be in the context of an
> interrupt, the code base that i have is not that way for that reason i
> ask for your io_dispatchpm function.
>
>> [<c0412864>] (dump_stack+0x0/0x14) from [<c0278c18>]
>> (SYNC_EnterCS+0x48/0xe4)
>> [<c0278bd0>] (SYNC_EnterCS+0x0/0xe4) from [<c0279e24>]
>> (REG_GetValue+0x60/0xa0)
>>  r5:c05ba390 r4:c04f092c
>> [<c0279dc4>] (REG_GetValue+0x0/0xa0) from [<c027987c>]
>> (CFG_GetObject+0x60/0xe0)
>>  r7:cfa87a80 r6:00000002 r5:cf98fe94 r4:00000002
>> [<c027981c>] (CFG_GetObject+0x0/0xe0) from [<c02913c0>]
>> (DRV_GetFirstDevObject+0
>> x1c/0x4c)
>>  r5:c05ba3c0 r4:00000000
>> [<c02913a4>] (DRV_GetFirstDevObject+0x0/0x4c) from [<c02858e4>]
>> (DEV_GetFirst+0x
>> 10/0x44)
>> [<c02858d4>] (DEV_GetFirst+0x0/0x44) from [<c027d430>]
>> (dsp_wdt_enable+0x44/0xe0
>> )
>>  r5:c05ba3c0 r4:00000000
>> [<c027d3ec>] (dsp_wdt_enable+0x0/0xe0) from [<c02820fc>]
>> (handle_hibernation_fro
>> mDSP+0x148/0x1ec)
>>  r5:cfaa0000 r4:00008000
>> [<c0281fb4>] (handle_hibernation_fromDSP+0x0/0x1ec) from [<c02810c0>]
>> (WMD_DEV_C
>> trl+0xfc/0x130)
>>  r7:cf98e000 r6:cf98ff34 r5:cc5f6a88 r4:cfb89e00
>> [<c0280fc4>] (WMD_DEV_Ctrl+0x0/0x130) from [<c027dc24>]
>> (io_mbox_msg+0x70/0x1d8)
>>  r7:cf98e000 r6:c05496c4 r5:cc5f6a88 r4:cfb89e00
>> [<c027dbb4>] (io_mbox_msg+0x0/0x1d8) from [<c0059308>]
>> (mbox_rx_work+0xf4/0x100)
>>  r5:cc5f6a88 r4:0000200a
>> [<c0059214>] (mbox_rx_work+0x0/0x100) from [<c007ebb0>]
>> (run_workqueue+0xc8/0x18
>> 4)
>> [<c007eae8>] (run_workqueue+0x0/0x184) from [<c007f2dc>]
>> (worker_thread+0x104/0x
>> 118)
>>  r9:00000000 r8:00000000 r7:cf811040 r6:cf94e140 r5:cf94e148
>> r4:cf98e000
>> [<c007f1d8>] (worker_thread+0x0/0x118) from [<c0082cb4>]
>> (kthread+0x54/0x80)
>>  r7:00000000 r6:00000000 r5:c007f1d8 r4:cf94e140
>> [<c0082c60>] (kthread+0x0/0x80) from [<c0070b1c>] (do_exit+0x0/0x7bc)
>>  r5:00000000 r4:00000000
>> drivers/dsp/bridge/services/sync.c, line 358: Assertion (0) failed.
>
> Regards,
> Rene Sapiens
>
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux