linux_dsm_epyc7002/arch/arm
Jarkko Nikula c12abc012e ARM: OMAP: McBSP: Fix ASoC on OMAP1510 by fixing API of omap_mcbsp_start/stop
Simultaneous audio playback and capture on OMAP1510 can cause that second
stream is stalled if there is enough delay between startup of the audio
streams.

Current implementation of the omap_mcbsp_start is starting both transmitter
and receiver at the same time and it is called only for firstly started
audio stream from the OMAP McBSP based ASoC DAI driver.

Since DMA request lines on OMAP1510 are edge sensitive, the DMA request is
missed if there is no DMA transfer set up at that time when the first word
after McBSP startup is transmitted. The problem hasn't noted before since
later OMAPs are using level sensitive DMA request lines.

Fix the problem by changing API of omap_mcbsp_start and omap_mcbsp_stop by
allowing to start and stop individually McBSP transmitter and receiver
logics. Then call those functions individually for both audio playback
and capture streams. This ensures that DMA transfer is setup before
transmitter or receiver is started.

Thanks to Janusz Krzysztofik <jkrzyszt@tis.icnet.pl> for detailed problem
analysis and Peter Ujfalusi <peter.ujfalusi@nokia.com> for info about DMA
request line behavior differences between the OMAP generations.

Reported-and-tested-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Jarkko Nikula <jhnikula@gmail.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2009-08-07 10:57:42 +01:00
..
boot [ARM] Add old Feroceon support to compressed/head.S 2009-06-19 13:38:53 -04:00
common [ARM] 5556/1: Fix the irq_desc.cpu references 2009-06-19 15:11:16 +01:00
configs [ARM] MINI2440: Create a mini2440_defconfig file 2009-06-15 22:10:24 +01:00
include/asm [ARM] wire up rt_tgsigqueueinfo and perf_counter_open 2009-06-20 22:25:45 +01:00
kernel [ARM] idle: clean up pm_idle calling, obey hlt_counter 2009-06-22 22:34:55 +01:00
lib Merge branch 'copy_user' of git://git.marvell.com/orion into devel 2009-06-14 10:59:32 +01:00
mach-aaec2000
mach-at91 [ARM] 5525/1: AFEB9260: fix for MMC support 2009-05-29 20:17:40 +01:00
mach-clps711x
mach-davinci Merge git://git.infradead.org/mtd-2.6 2009-06-22 16:56:22 -07:00
mach-ebsa110
mach-ep93xx Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2009-06-20 10:17:02 -07:00
mach-footbridge
mach-gemini Gemini: Fix SRAM/ROM location after memory swap 2009-05-28 16:42:25 +03:00
mach-h720x
mach-integrator
mach-iop13xx
mach-iop32x
mach-iop33x
mach-ixp4xx IXP4xx: Change QMgr function names to qmgr_stat_*_watermark and clean the comments. 2009-05-25 13:25:34 +02:00
mach-ixp23xx
mach-ixp2000
mach-kirkwood [ARM] Kirkwood: platform device registration for the crypto engine 2009-06-08 13:05:03 -04:00
mach-ks8695
mach-l7200
mach-lh7a40x
mach-loki
mach-mmp [ARM] pxa: add PWM devices support for pxa168/910 2009-06-05 10:32:06 +08:00
mach-msm
mach-mv78xx0 [ARM] orion: convert gpio to use gpiolib 2009-06-08 13:04:57 -04:00
mach-mx1
mach-mx2 Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm 2009-06-14 13:42:43 -07:00
mach-mx3 Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm 2009-06-14 13:42:43 -07:00
mach-netx
mach-ns9xxx
mach-omap1 Merge branch 'omap-upstream' into for-next 2009-05-28 15:41:03 -07:00
mach-omap2 Merge branch 'omap-clock-for-next' of git://git.pwsan.com/linux-2.6 into devel 2009-06-20 10:57:40 +01:00
mach-orion5x [ARM] orion5x: register the crypto device on SOCs that support it 2009-06-15 00:37:08 -04:00
mach-pnx4008
mach-pxa Merge branch 'for-rmk' of git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6 into devel 2009-06-18 23:09:52 +01:00
mach-realview [ARM] 5555/1: RealView: Include asm/smp_twd.h in realview-pbx.c 2009-06-19 15:10:58 +01:00
mach-rpc
mach-s3c24a0/include/mach
mach-s3c2400
mach-s3c2410 [ARM] S3C24XX: remove duplicated #include 2009-06-16 23:30:12 +01:00
mach-s3c2412 Merge branch for-rmk-devel of git://aeryn.fluff.org.uk/bjdooks/linux into devel 2009-06-10 22:41:06 +01:00
mach-s3c2440 [ARM] MINI2440: Cleanup duplicated header includes 2009-06-15 22:10:36 +01:00
mach-s3c2442 [ARM] GTA02/FreeRunner: Add machine definition 2009-06-16 23:41:29 +01:00
mach-s3c2443
mach-s3c6400 Merge branch for-rmk-devel of git://aeryn.fluff.org.uk/bjdooks/linux into devel 2009-06-10 22:41:06 +01:00
mach-s3c6410
mach-sa1100 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-06-14 13:46:25 -07:00
mach-shark
mach-stmp37xx [ARM] 5539/1: Freescale STMP: onboard devices declaration 2009-06-04 14:16:45 +01:00
mach-stmp378x [ARM] 5539/1: Freescale STMP: onboard devices declaration 2009-06-04 14:16:45 +01:00
mach-u300 Merge branch 'u300' into devel 2009-06-14 11:01:44 +01:00
mach-versatile Merge branch for-rmk-devel of git://aeryn.fluff.org.uk/bjdooks/linux into devel 2009-06-10 22:41:06 +01:00
mach-w90x900 [ARM] 5549/1: Add clock api for w90p910 platform. 2009-06-11 14:45:18 +01:00
mm Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm 2009-06-22 14:56:13 -07:00
nwfpe
oprofile RealView: Move the IRQ_* definitions out of the board-*.h files 2009-05-30 14:00:17 +01:00
plat-iop
plat-mxc Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm 2009-06-14 13:42:43 -07:00
plat-omap ARM: OMAP: McBSP: Fix ASoC on OMAP1510 by fixing API of omap_mcbsp_start/stop 2009-08-07 10:57:42 +01:00
plat-orion [ARM] Orion/Kirkwood: rename orion5x_wdt to orion_wdt 2009-06-08 13:05:00 -04:00
plat-pxa [ARM] pxa: add PWM devices support for pxa168/910 2009-06-05 10:32:06 +08:00
plat-s3c Merge git://git.infradead.org/mtd-2.6 2009-06-22 16:56:22 -07:00
plat-s3c24xx Merge branch for-rmk-devel of git://aeryn.fluff.org.uk/bjdooks/linux into devel 2009-06-10 22:41:06 +01:00
plat-s3c64xx [ARM] S3C64XX: add to_irq() support for EINT() GPIO 2009-06-22 14:11:56 +01:00
plat-stmp3xxx [ARM] 5539/1: Freescale STMP: onboard devices declaration 2009-06-04 14:16:45 +01:00
tools [ARM] Update mach-types 2009-06-20 22:28:41 +01:00
vfp Fix the VFP handling on the Feroceon CPU 2009-05-30 14:00:18 +01:00
Kconfig [ARM] S3C64XX: Initial support for DVFS 2009-06-16 23:36:24 +01:00
Kconfig-nommu
Kconfig.debug
Makefile Merge branch 'u300' into devel 2009-06-14 11:01:44 +01:00