linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v5 0/3] OMAP2/3: DMA: FIFO drain errata fixes
@ 2010-10-05  6:45 Peter Ujfalusi
  2010-10-05  6:45 ` [PATCH v5 1/3] omap: dma: Fix buffering disable bit setting for omap24xx Peter Ujfalusi
                   ` (4 more replies)
  0 siblings, 5 replies; 15+ messages in thread
From: Peter Ujfalusi @ 2010-10-05  6:45 UTC (permalink / raw)
  To: linux-arm-kernel

Hello,

This v5 series is based on the v3.
The first two patch is the actual fix for the original problems without any
major change in the code (only handling the corresponding erratas in the legacy
way).
The third patch in the series is optional, and it is implementing (in one patch)
the errata handling via flags. This patch converts all errata cases to use the
introduced dma_errata variable via macros.

Tony: the first two patch need to go for 2.6.36, and if it is possible it shall
be backported to .33, .34, and .35 as well.
The final patch in this series is optional, if you feel like you can take it
(or drop it). AFAIK the upcoming hwmod changes to dma code will also have
similar feature to handle the erratas.
I'm not sure what is the schedule for the hwmod conversion of dma...

Changes since v4:
- OMAP2 Errata comment replaced with better description from
  G, Manjunath Kondaiah <manjugk@ti.com>.
- Fixed Jarkko Nikula's name in the first patch
- Based on v3 series (with suggested changes applied on top)
Changes since v3:
- OMAP2 errata is applicaple only to OMAP2420 and ES1.0 of OMAP2430
  noticed by G, Manjunath Kondaiah <manjugk@ti.com>
- use flags for errata handling
 - OMAP2 buffering disable converted to use flags
 - OMAP3 i541 is using the dma_errata flag
- Spelling fix in OMAP3 drain timeout message
Changes since v2:
- remove multiple assignment
Changes since v1:
- Errata ID added to the comment (i541)

Intro mail from v1:

The following series fixes the sDMA FIFO drain issue present for OMAP2 and
OMAP3, and covered by an errata.
For OMAP2 the omap_start_dma had a comment about this errata, but the workaround
configured wrong bit (CCR_EN instead of the correct BUFFERING_DISABLE bit).
The first patch from Jarkko Nikula <jhnikula@gmail.com> fixes this.
For OMAP3 the suggestion is to set sDMA to NoStandby before disabling
the channel, and wait for the drain to finish, than configure sDMA to
SmartStandby again. The second patch implements this workaround for OMAP3.

The FIFO drain problem can be reproduced on both OMAP2 and OMAP3 while using
audio (capture case):
Either introduce load to the CPU:
nice -19 arecord -D hw:0 -M -B 10000 -F 5000 -f dat > /dev/null & \
dd if=/dev/urandom of=/dev/null

or suspending the arecord, and resuming it:
arecord -D hw:0 -M -B 10000 -F 5000 -f dat > /dev/null
CTRL+Z; fg; CTRL+Z; fg; ...

On OMAP2 we can not recover from this problem. The board has to be rebooted,
while OMAP3 can be recovered by reseting the sDMA channel, or introducing
unrelated sDMA activity (which takes sDMA out from Standby - but this is not
working all the time).

---
Jarkko Nikula (1):
  omap: dma: Fix buffering disable bit setting for omap24xx

Peter Ujfalusi (2):
  OMAP3: DMA: Errata i541: sDMA FIFO draining does not finish
  OMAP: DMA: Use flags for errata handling

 arch/arm/plat-omap/dma.c              |   88 +++++++++++++++++++++++++++++----
 arch/arm/plat-omap/include/plat/dma.h |    4 ++
 2 files changed, 82 insertions(+), 10 deletions(-)

--
1.7.3.1

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2010-12-07 19:45 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-10-05  6:45 [PATCH v5 0/3] OMAP2/3: DMA: FIFO drain errata fixes Peter Ujfalusi
2010-10-05  6:45 ` [PATCH v5 1/3] omap: dma: Fix buffering disable bit setting for omap24xx Peter Ujfalusi
2010-10-05  9:41   ` G, Manjunath Kondaiah
2010-10-05  6:45 ` [PATCH v5 2/3] OMAP3: DMA: Errata i541: sDMA FIFO draining does not finish Peter Ujfalusi
2010-11-10 13:46   ` Adrian Hunter
2010-11-10 13:52   ` Adrian Hunter
2010-11-10 23:30     ` Paul Walmsley
2010-11-11  7:17       ` Adrian Hunter
2010-10-05  6:45 ` [PATCH v5 3/3] OMAP: DMA: Use flags for errata handling Peter Ujfalusi
2010-10-05  9:55 ` [PATCH v5 0/3] OMAP2/3: DMA: FIFO drain errata fixes G, Manjunath Kondaiah
2010-10-05 18:15 ` Tony Lindgren
2010-10-08 22:17   ` Tony Lindgren
2010-10-21 10:05     ` Peter Ujfalusi
2010-11-05 21:29       ` Tony Lindgren
2010-12-07 19:45         ` Greg KH

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).