[PATCH 1/2] OMAP2+: DMA: Workaround for invalid source position
tony at atomide.com
Fri Nov 4 16:08:26 EDT 2011
* Péter Ujfalusi <peter.ujfalusi at ti.com> [111104 02:00]:
> On Thursday 03 November 2011 14:27:56 Tony Lindgren wrote:
> > Should these tests be done only after the errata re-read for both
> > src and dst patches? Otherwise the errata will not be handled?
> Yes that might be a good idea.
> I was trying to locate the original errata description for DMA_ERRATA_3_3, but
> it does not exist, or at least I can not find it. This only been mentioned in
> the kernel's comment.
Seems it got added with commit d3c9be2f.
> I'm not sure when this DMA_ERRATA_3_3 would have been in force. My guess would
> be that if someone wants to read the src/dst position right after the channel
> is disabled, but what would we expect it to return when the channel has been
No idea.. Or read it after stopping it?
> I mean what is the reasonable src/dst for a disabled channel? 0 is as good as
> any other number, probably the programmed start of the DMA transfer would be
> my best bet.
> I think the errata description for DMA_ERRATA_3_3 is not correct, and it is in
> fact to handle the case I'm also handling: Before the first DMA request the
> CDAC is 0 (since we configured it to be), the CSAC contains _something_ (most
> of the time 0, but can be random number).
> In some situation re-reading the src/dst position will give enough time to
> receive the first DMA request, which will update CDAC/CSAC registers.
Yeah could be since the handling is just an immediate re-read of the register..
> What do you think?
Probably the safest thing to do is move your check after the re-read test
in case there's more to the ERRATA_3_3.
More information about the linux-arm-kernel