diff options
author | Shengjiu Wang <shengjiu.wang@freescale.com> | 2015-05-19 13:34:32 +0800 |
---|---|---|
committer | Shengjiu Wang <shengjiu.wang@freescale.com> | 2015-06-05 09:50:22 +0800 |
commit | 1dc363547a58fccf057ffe2f431357a4e3624f08 (patch) | |
tree | a25c08b2a383df6f2f1426e3a38fa261ed69afc3 | |
parent | 222f6eadbda0a258aacc04dc571f0be425482b23 (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.c | 5 |
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); |