"Nori, Sekhar" <nsek...@ti.com> writes:

> On Fri, Mar 12, 2010 at 23:33:10, Kevin Hilman wrote:
>> Sekhar Nori <nsek...@ti.com> writes:
>>
>> > From: Anuj Aggarwal <anuj.aggar...@ti.com>
>> >
>> > Currently, the ISR in the EDMA driver clears the pending interrupt for all
>> > channels without regard to whether that channel has a registered callback
>> > or not.
>> >
>> > This causes problems for devices like DM355/DM365 where the multimedia
>> > accelerator uses EDMA by polling on the interrupt pending bits of some of 
>> > the
>> > EDMA channels. Since these channels are actually allocated through the 
>> > Linux
>> > EDMA driver (by an out-of-kernel module), the same shadow region is used by
>> > Linux and accelerator. There a race between the Linux ISR and the polling 
>> > code
>> > running on the accelerator on the IPR (interrupt pending register).
>> >
>> > This patch fixes the issue by making the ISR clear the interrupts only for
>> > those channels which have interrupt enabled. The channels which are 
>> > allocated
>> > for the purpose of being polled on by the accelerator will not have a 
>> > callback
>> > function provided and so will not have IER (interrupt enable register) 
>> > bits set.
>>
>> Dumb question:  why cat the MM accelerator use the normal ISR + callback?
>
> There is some OS-less code running on the accelerator. I believe
> (at least some parts of) the accelerator cannot even see the DDR
> so having an OS implemented there seems far fetched. Without an
> OS in place, it is easier to poll on EDMA IPR bits.
>
> Having Linux handle the interrupt brings in IPC mechanisms which
> again needs an OS running on the other side and is also seen as
> detrimental to performance.

OK, thanks for the clarification.

applying, and queueing in davinci-next for 2.6.35

Kevin
_______________________________________________
Davinci-linux-open-source mailing list
Davinci-linux-open-source@linux.davincidsp.com
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to