summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/tegra_spdif_audio.c
diff options
context:
space:
mode:
authorChris Fries <C.Fries@motorola.com>2010-10-24 22:48:17 -0500
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:36:36 -0800
commitd944563a6c016361f86a13ad2d42a1efe86db074 (patch)
tree6de52c044875350f667d1747235818b414fb2021 /arch/arm/mach-tegra/tegra_spdif_audio.c
parent88de5c0e694312da2d4e598cecccfc7c3a6d2f6c (diff)
[ARM] tegra_i2s_audio: add timeout to prevent flush deadlock
Signed-off-by: Iliyan Malchev <malchev@google.com>
Diffstat (limited to 'arch/arm/mach-tegra/tegra_spdif_audio.c')
-rw-r--r--arch/arm/mach-tegra/tegra_spdif_audio.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/tegra_spdif_audio.c b/arch/arm/mach-tegra/tegra_spdif_audio.c
index 9c6ae5b6f41a..3764edfdf869 100644
--- a/arch/arm/mach-tegra/tegra_spdif_audio.c
+++ b/arch/arm/mach-tegra/tegra_spdif_audio.c
@@ -478,7 +478,10 @@ static bool wait_till_stopped(struct audio_stream *as)
{
int rc;
pr_debug("%s: wait for completion\n", __func__);
- rc = wait_for_completion_interruptible(&as->stop_completion);
+ rc = wait_for_completion_interruptible_timeout(
+ &as->stop_completion, HZ);
+ if (!rc)
+ pr_err("%s: wait timed out\n", __func__);
allow_suspend(as);
pr_debug("%s: done: %d\n", __func__, rc);
return true;