[alsa-devel] [PATCH 1/2] ASoC: cs4349: Set .writeable_reg for cs4349_regmap

Axel Lin axel.lin at ingics.com
Sun Jul 19 03:14:23 CEST 2015


The first valid register index is 1 rather than 0, and the CS4349_CHIPID
is readonly. So set .writeable_reg to avoid writing to these registers.

Signed-off-by: Axel Lin <axel.lin at ingics.com>
---
 sound/soc/codecs/cs4349.c | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/sound/soc/codecs/cs4349.c b/sound/soc/codecs/cs4349.c
index f4fccc6..eb55889 100644
--- a/sound/soc/codecs/cs4349.c
+++ b/sound/soc/codecs/cs4349.c
@@ -54,14 +54,17 @@ struct  cs4349_private {
 static bool cs4349_readable_register(struct device *dev, unsigned int reg)
 {
 	switch (reg) {
-	case CS4349_CHIPID:
-	case CS4349_MODE:
-	case CS4349_VMI:
-	case CS4349_MUTE:
-	case CS4349_VOLA:
-	case CS4349_VOLB:
-	case CS4349_RMPFLT:
-	case CS4349_MISC:
+	case CS4349_CHIPID ... CS4349_MISC:
+		return true;
+	default:
+		return false;
+	}
+}
+
+static bool cs4349_writeable_register(struct device *dev, unsigned int reg)
+{
+	switch (reg) {
+	case CS4349_MODE ...  CS4349_MISC:
 		return true;
 	default:
 		return false;
@@ -272,6 +275,7 @@ static const struct regmap_config cs4349_regmap = {
 	.reg_defaults		= cs4349_reg_defaults,
 	.num_reg_defaults	= ARRAY_SIZE(cs4349_reg_defaults),
 	.readable_reg		= cs4349_readable_register,
+	.writeable_reg		= cs4349_writeable_register,
 	.cache_type		= REGCACHE_RBTREE,
 };
 
-- 
2.1.0





More information about the Alsa-devel mailing list