summaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorMaciej S. Szmigiero <mail@maciej.szmigiero.name>2015-12-20 21:31:48 +0100
committerMark Brown <broonie@kernel.org>2016-01-10 12:20:25 +0000
commitf51e3d5372b4bf80006cdc1694a7656aba7c9b58 (patch)
tree6ad49186648b0aa83dbb8528d29e8cc1989fdeb1 /sound
parent3f1c241f0f5f90046258e6b8d4aeb6463ffdc08e (diff)
downloadop-kernel-dev-f51e3d5372b4bf80006cdc1694a7656aba7c9b58.zip
op-kernel-dev-f51e3d5372b4bf80006cdc1694a7656aba7c9b58.tar.gz
ASoC: fsl_ssi: mark some registers precious
Mark some registers precious since their reads have side effects (like clearing flags). Signed-off-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name> Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/fsl/fsl_ssi.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/sound/soc/fsl/fsl_ssi.c b/sound/soc/fsl/fsl_ssi.c
index cc22354..40dfd8a 100644
--- a/sound/soc/fsl/fsl_ssi.c
+++ b/sound/soc/fsl/fsl_ssi.c
@@ -157,6 +157,21 @@ static bool fsl_ssi_volatile_reg(struct device *dev, unsigned int reg)
}
}
+static bool fsl_ssi_precious_reg(struct device *dev, unsigned int reg)
+{
+ switch (reg) {
+ case CCSR_SSI_SRX0:
+ case CCSR_SSI_SRX1:
+ case CCSR_SSI_SISR:
+ case CCSR_SSI_SACADD:
+ case CCSR_SSI_SACDAT:
+ case CCSR_SSI_SATAG:
+ return true;
+ default:
+ return false;
+ }
+}
+
static bool fsl_ssi_writeable_reg(struct device *dev, unsigned int reg)
{
switch (reg) {
@@ -179,6 +194,7 @@ static const struct regmap_config fsl_ssi_regconfig = {
.num_reg_defaults = ARRAY_SIZE(fsl_ssi_reg_defaults),
.readable_reg = fsl_ssi_readable_reg,
.volatile_reg = fsl_ssi_volatile_reg,
+ .precious_reg = fsl_ssi_precious_reg,
.writeable_reg = fsl_ssi_writeable_reg,
.cache_type = REGCACHE_RBTREE,
};
OpenPOWER on IntegriCloud