ASoC: es8316: Don't use ranges based register lookup for a single register
authorMark Brown <broonie@kernel.org>
Wed, 19 Apr 2023 18:45:06 +0000 (19:45 +0100)
committerMark Brown <broonie@kernel.org>
Thu, 20 Apr 2023 11:52:03 +0000 (12:52 +0100)
The es8316 driver uses a register range to specify the single volatile
register it has. While the cost will be in the noise this is a bunch of
overhead compared to just having a volatile_reg() callback so switch to
the callback.

Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20230419-asoc-es8316-volatile-v1-1-2074ec93d8f1@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/es8316.c

index f7d7a9c..a27d809 100644 (file)
@@ -803,14 +803,15 @@ static const struct snd_soc_component_driver soc_component_dev_es8316 = {
        .endianness             = 1,
 };
 
-static const struct regmap_range es8316_volatile_ranges[] = {
-       regmap_reg_range(ES8316_GPIO_FLAG, ES8316_GPIO_FLAG),
-};
-
-static const struct regmap_access_table es8316_volatile_table = {
-       .yes_ranges     = es8316_volatile_ranges,
-       .n_yes_ranges   = ARRAY_SIZE(es8316_volatile_ranges),
-};
+static bool es8316_volatile_reg(struct device *dev, unsigned int reg)
+{
+       switch (reg) {
+       case ES8316_GPIO_FLAG:
+               return true;
+       default:
+               return false;
+       }
+}
 
 static const struct regmap_config es8316_regmap = {
        .reg_bits = 8,
@@ -818,7 +819,7 @@ static const struct regmap_config es8316_regmap = {
        .use_single_read = true,
        .use_single_write = true,
        .max_register = 0x53,
-       .volatile_table = &es8316_volatile_table,
+       .volatile_reg = es8316_volatile_reg,
        .cache_type = REGCACHE_RBTREE,
 };