summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShengjiu Wang <shengjiu.wang@freescale.com>2015-05-19 13:34:32 +0800
committerShengjiu Wang <shengjiu.wang@freescale.com>2015-06-05 09:50:22 +0800
commit1dc363547a58fccf057ffe2f431357a4e3624f08 (patch)
treea25c08b2a383df6f2f1426e3a38fa261ed69afc3
parent222f6eadbda0a258aacc04dc571f0be425482b23 (diff)
MLK-10903-1: ASoC: fsl_spdif: remove cache only in suspend/resume
In imx6qp, there is no mega fast. After suspend, but before resume, there will be spdif interrupt, if set cache only in suspend, then we can't clear the interrupt, because regmap_write only write to cache. So the system will hang for the interrupt can't be cleared. Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com> (cherry picked from commit 2a6a522c86d6c0fe80023c4327ca7ce4792035c8)
-rw-r--r--sound/soc/fsl/fsl_spdif.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/sound/soc/fsl/fsl_spdif.c b/sound/soc/fsl/fsl_spdif.c
index 0e7f37be2b50..98dcf4f4a6e4 100644
--- a/sound/soc/fsl/fsl_spdif.c
+++ b/sound/soc/fsl/fsl_spdif.c
@@ -1,7 +1,7 @@
/*
* Freescale S/PDIF ALSA SoC Digital Audio Interface (DAI) driver
*
- * Copyright (C) 2013-2014 Freescale Semiconductor, Inc.
+ * Copyright (C) 2013-2015 Freescale Semiconductor, Inc.
*
* Based on stmp3xxx_spdif_dai.c
* Vladimir Barinov <vbarinov@embeddedalley.com>
@@ -1333,7 +1333,6 @@ static int fsl_spdif_suspend(struct device *dev)
regmap_read(spdif_priv->regmap, REG_SPDIF_SRPC,
&spdif_priv->regcache_srpc);
- regcache_cache_only(spdif_priv->regmap, true);
regcache_mark_dirty(spdif_priv->regmap);
return 0;
@@ -1343,8 +1342,6 @@ static int fsl_spdif_resume(struct device *dev)
{
struct fsl_spdif_priv *spdif_priv = dev_get_drvdata(dev);
- regcache_cache_only(spdif_priv->regmap, false);
-
regmap_update_bits(spdif_priv->regmap, REG_SPDIF_SRPC,
SRPC_CLKSRC_SEL_MASK | SRPC_GAINSEL_MASK,
spdif_priv->regcache_srpc);