[PATCH 00/10] ASoC: ad: Update Analog Devices drivers to maple tree register cache
The maple tree register cache has now got to feature parity with the rbtree cache, there are some different tradeoffs made and it should be a better choice for most modern systems. Convert the Analog Devices drivers to use the more modern data structure.
Signed-off-by: Mark Brown broonie@kernel.org --- Mark Brown (10): ASoC: ad1836: Update to use maple tree register cache ASoC: ad1980: Update to use maple tree register cache ASoC: adau1372: Update to use maple tree register cache ASoC: adau1373: Update to use maple tree register cache ASoC: adau1701: Update to use maple tree register cache ASoC: adau1761: Update to use maple tree register cache ASoC: adau1781: Update to use maple tree register cache ASoC: adau1977: Update to use maple tree register cache ASoC: adau7118: Update to use maple tree register cache ASoC: adav80x: Update to use maple tree register cache
sound/soc/codecs/ad1836.c | 2 +- sound/soc/codecs/ad1980.c | 2 +- sound/soc/codecs/adau1372.c | 2 +- sound/soc/codecs/adau1373.c | 2 +- sound/soc/codecs/adau1701.c | 2 +- sound/soc/codecs/adau1761.c | 2 +- sound/soc/codecs/adau1781.c | 2 +- sound/soc/codecs/adau1977.c | 2 +- sound/soc/codecs/adau7118-i2c.c | 2 +- sound/soc/codecs/adav80x.c | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) --- base-commit: 06c2afb862f9da8dc5efa4b6076a0e48c3fbaaa5 change-id: 20230701-asoc-ad-maple-170068cf0c39
Best regards,
The maple tree register cache is based on a much more modern data structure than the rbtree cache and makes optimisation choices which are probably more appropriate for modern systems than those made by the rbtree cache. In v6.5 it has also acquired the ability to generate multi-register writes in sync operations, bringing performance up to parity with the rbtree cache there.
Update the ad1836 driver to use the more modern data structure.
Signed-off-by: Mark Brown broonie@kernel.org --- sound/soc/codecs/ad1836.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/soc/codecs/ad1836.c b/sound/soc/codecs/ad1836.c index 2c64df96b5ce..949077108bef 100644 --- a/sound/soc/codecs/ad1836.c +++ b/sound/soc/codecs/ad1836.c @@ -358,7 +358,7 @@ static const struct regmap_config ad1836_regmap_config = { .max_register = AD1836_ADC_CTRL3, .reg_defaults = ad1836_reg_defaults, .num_reg_defaults = ARRAY_SIZE(ad1836_reg_defaults), - .cache_type = REGCACHE_RBTREE, + .cache_type = REGCACHE_MAPLE, };
static int ad1836_spi_probe(struct spi_device *spi)
The maple tree register cache is based on a much more modern data structure than the rbtree cache and makes optimisation choices which are probably more appropriate for modern systems than those made by the rbtree cache. In v6.5 it has also acquired the ability to generate multi-register writes in sync operations, bringing performance up to parity with the rbtree cache there.
Update the ad1980 driver to use the more modern data structure.
Signed-off-by: Mark Brown broonie@kernel.org --- sound/soc/codecs/ad1980.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/soc/codecs/ad1980.c b/sound/soc/codecs/ad1980.c index 5e777d7fd5d9..3c1ae13c1aae 100644 --- a/sound/soc/codecs/ad1980.c +++ b/sound/soc/codecs/ad1980.c @@ -92,7 +92,7 @@ static const struct regmap_config ad1980_regmap_config = { .reg_stride = 2, .val_bits = 16, .max_register = 0x7e, - .cache_type = REGCACHE_RBTREE, + .cache_type = REGCACHE_MAPLE,
.volatile_reg = regmap_ac97_default_volatile, .readable_reg = ad1980_readable_reg,
The maple tree register cache is based on a much more modern data structure than the rbtree cache and makes optimisation choices which are probably more appropriate for modern systems than those made by the rbtree cache. In v6.5 it has also acquired the ability to generate multi-register writes in sync operations, bringing performance up to parity with the rbtree cache there.
Update the adau1382 driver to use the more modern data structure.
Signed-off-by: Mark Brown broonie@kernel.org --- sound/soc/codecs/adau1372.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/soc/codecs/adau1372.c b/sound/soc/codecs/adau1372.c index d9bde7eb043a..98380a7ce64d 100644 --- a/sound/soc/codecs/adau1372.c +++ b/sound/soc/codecs/adau1372.c @@ -1056,7 +1056,7 @@ const struct regmap_config adau1372_regmap_config = { .reg_defaults = adau1372_reg_defaults, .num_reg_defaults = ARRAY_SIZE(adau1372_reg_defaults), .volatile_reg = adau1372_volatile_register, - .cache_type = REGCACHE_RBTREE, + .cache_type = REGCACHE_MAPLE, }; EXPORT_SYMBOL_GPL(adau1372_regmap_config);
The maple tree register cache is based on a much more modern data structure than the rbtree cache and makes optimisation choices which are probably more appropriate for modern systems than those made by the rbtree cache. In v6.5 it has also acquired the ability to generate multi-register writes in sync operations, bringing performance up to parity with the rbtree cache there.
Update the adau1373 driver to use the more modern data structure.
Signed-off-by: Mark Brown broonie@kernel.org --- sound/soc/codecs/adau1373.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/soc/codecs/adau1373.c b/sound/soc/codecs/adau1373.c index c5b087b8fffc..b0ab0a69b207 100644 --- a/sound/soc/codecs/adau1373.c +++ b/sound/soc/codecs/adau1373.c @@ -1451,7 +1451,7 @@ static const struct regmap_config adau1373_regmap_config = { .volatile_reg = adau1373_register_volatile, .max_register = ADAU1373_SOFT_RESET,
- .cache_type = REGCACHE_RBTREE, + .cache_type = REGCACHE_MAPLE, .reg_defaults = adau1373_reg_defaults, .num_reg_defaults = ARRAY_SIZE(adau1373_reg_defaults), };
The maple tree register cache is based on a much more modern data structure than the rbtree cache and makes optimisation choices which are probably more appropriate for modern systems than those made by the rbtree cache. In v6.5 it has also acquired the ability to generate multi-register writes in sync operations, bringing performance up to parity with the rbtree cache there.
Update the adau1701 driver to use the more modern data structure.
Signed-off-by: Mark Brown broonie@kernel.org --- sound/soc/codecs/adau1701.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/soc/codecs/adau1701.c b/sound/soc/codecs/adau1701.c index 8c8de3b3c901..94831aad7ac6 100644 --- a/sound/soc/codecs/adau1701.c +++ b/sound/soc/codecs/adau1701.c @@ -778,7 +778,7 @@ static const struct regmap_config adau1701_regmap = { .reg_bits = 16, .val_bits = 32, .max_register = ADAU1701_MAX_REGISTER, - .cache_type = REGCACHE_RBTREE, + .cache_type = REGCACHE_MAPLE, .volatile_reg = adau1701_volatile_reg, .reg_write = adau1701_reg_write, .reg_read = adau1701_reg_read,
The maple tree register cache is based on a much more modern data structure than the rbtree cache and makes optimisation choices which are probably more appropriate for modern systems than those made by the rbtree cache. In v6.5 it has also acquired the ability to generate multi-register writes in sync operations, bringing performance up to parity with the rbtree cache there.
Update the adau1761 driver to use the more modern data structure.
Signed-off-by: Mark Brown broonie@kernel.org --- sound/soc/codecs/adau1761.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/soc/codecs/adau1761.c b/sound/soc/codecs/adau1761.c index 3ccc7acac205..1f09ea385f8a 100644 --- a/sound/soc/codecs/adau1761.c +++ b/sound/soc/codecs/adau1761.c @@ -1014,7 +1014,7 @@ const struct regmap_config adau1761_regmap_config = { .readable_reg = adau1761_readable_register, .volatile_reg = adau17x1_volatile_register, .precious_reg = adau17x1_precious_register, - .cache_type = REGCACHE_RBTREE, + .cache_type = REGCACHE_MAPLE, }; EXPORT_SYMBOL_GPL(adau1761_regmap_config);
The maple tree register cache is based on a much more modern data structure than the rbtree cache and makes optimisation choices which are probably more appropriate for modern systems than those made by the rbtree cache. In v6.5 it has also acquired the ability to generate multi-register writes in sync operations, bringing performance up to parity with the rbtree cache there.
Update the adau1781 driver to use the more modern data structure.
Signed-off-by: Mark Brown broonie@kernel.org --- sound/soc/codecs/adau1781.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/soc/codecs/adau1781.c b/sound/soc/codecs/adau1781.c index ff6be24863bf..faad2f9f8dd2 100644 --- a/sound/soc/codecs/adau1781.c +++ b/sound/soc/codecs/adau1781.c @@ -472,7 +472,7 @@ const struct regmap_config adau1781_regmap_config = { .readable_reg = adau1781_readable_register, .volatile_reg = adau17x1_volatile_register, .precious_reg = adau17x1_precious_register, - .cache_type = REGCACHE_RBTREE, + .cache_type = REGCACHE_MAPLE, }; EXPORT_SYMBOL_GPL(adau1781_regmap_config);
The maple tree register cache is based on a much more modern data structure than the rbtree cache and makes optimisation choices which are probably more appropriate for modern systems than those made by the rbtree cache. In v6.5 it has also acquired the ability to generate multi-register writes in sync operations, bringing performance up to parity with the rbtree cache there.
Update the adau1977 driver to use the more modern data structure.
Signed-off-by: Mark Brown broonie@kernel.org --- sound/soc/codecs/adau1977.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/soc/codecs/adau1977.c b/sound/soc/codecs/adau1977.c index 7a9672f94fc6..ae59efb38f26 100644 --- a/sound/soc/codecs/adau1977.c +++ b/sound/soc/codecs/adau1977.c @@ -991,7 +991,7 @@ const struct regmap_config adau1977_regmap_config = { .max_register = ADAU1977_REG_DC_HPF_CAL, .volatile_reg = adau1977_register_volatile,
- .cache_type = REGCACHE_RBTREE, + .cache_type = REGCACHE_MAPLE, .reg_defaults = adau1977_reg_defaults, .num_reg_defaults = ARRAY_SIZE(adau1977_reg_defaults), };
The maple tree register cache is based on a much more modern data structure than the rbtree cache and makes optimisation choices which are probably more appropriate for modern systems than those made by the rbtree cache. In v6.5 it has also acquired the ability to generate multi-register writes in sync operations, bringing performance up to parity with the rbtree cache there.
Update the adau7118 driver to use the more modern data structure.
Signed-off-by: Mark Brown broonie@kernel.org --- sound/soc/codecs/adau7118-i2c.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/soc/codecs/adau7118-i2c.c b/sound/soc/codecs/adau7118-i2c.c index 73f181f7757e..b302b28eca7c 100644 --- a/sound/soc/codecs/adau7118-i2c.c +++ b/sound/soc/codecs/adau7118-i2c.c @@ -43,7 +43,7 @@ static const struct regmap_config adau7118_regmap_config = { .val_bits = 8, .reg_defaults = adau7118_reg_defaults, .num_reg_defaults = ARRAY_SIZE(adau7118_reg_defaults), - .cache_type = REGCACHE_RBTREE, + .cache_type = REGCACHE_MAPLE, .max_register = ADAU7118_REG_RESET, .volatile_reg = adau7118_volatile, };
The maple tree register cache is based on a much more modern data structure than the rbtree cache and makes optimisation choices which are probably more appropriate for modern systems than those made by the rbtree cache. In v6.5 it has also acquired the ability to generate multi-register writes in sync operations, bringing performance up to parity with the rbtree cache there.
Update the adav80x driver to use the more modern data structure.
Signed-off-by: Mark Brown broonie@kernel.org --- sound/soc/codecs/adav80x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/soc/codecs/adav80x.c b/sound/soc/codecs/adav80x.c index fcff35f26cec..bb08969c5917 100644 --- a/sound/soc/codecs/adav80x.c +++ b/sound/soc/codecs/adav80x.c @@ -870,7 +870,7 @@ const struct regmap_config adav80x_regmap_config = {
.max_register = ADAV80X_PLL_OUTE,
- .cache_type = REGCACHE_RBTREE, + .cache_type = REGCACHE_MAPLE, .reg_defaults = adav80x_reg_defaults, .num_reg_defaults = ARRAY_SIZE(adav80x_reg_defaults), };
On Thu, 2023-07-13 at 00:13 +0100, Mark Brown wrote:
The maple tree register cache has now got to feature parity with the rbtree cache, there are some different tradeoffs made and it should be a better choice for most modern systems. Convert the Analog Devices drivers to use the more modern data structure.
Signed-off-by: Mark Brown broonie@kernel.org
Reviewed-by: Nuno Sa nuno.sa@analog.com
Mark Brown (10): ASoC: ad1836: Update to use maple tree register cache ASoC: ad1980: Update to use maple tree register cache ASoC: adau1372: Update to use maple tree register cache ASoC: adau1373: Update to use maple tree register cache ASoC: adau1701: Update to use maple tree register cache ASoC: adau1761: Update to use maple tree register cache ASoC: adau1781: Update to use maple tree register cache ASoC: adau1977: Update to use maple tree register cache ASoC: adau7118: Update to use maple tree register cache ASoC: adav80x: Update to use maple tree register cache
sound/soc/codecs/ad1836.c | 2 +- sound/soc/codecs/ad1980.c | 2 +- sound/soc/codecs/adau1372.c | 2 +- sound/soc/codecs/adau1373.c | 2 +- sound/soc/codecs/adau1701.c | 2 +- sound/soc/codecs/adau1761.c | 2 +- sound/soc/codecs/adau1781.c | 2 +- sound/soc/codecs/adau1977.c | 2 +- sound/soc/codecs/adau7118-i2c.c | 2 +- sound/soc/codecs/adav80x.c | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-)
base-commit: 06c2afb862f9da8dc5efa4b6076a0e48c3fbaaa5 change-id: 20230701-asoc-ad-maple-170068cf0c39
Best regards,
On Thu, 13 Jul 2023 00:13:49 +0100, Mark Brown wrote:
The maple tree register cache has now got to feature parity with the rbtree cache, there are some different tradeoffs made and it should be a better choice for most modern systems. Convert the Analog Devices drivers to use the more modern data structure.
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
Thanks!
[01/10] ASoC: ad1836: Update to use maple tree register cache commit: 52beea42d825321a7ded656f14f5672b290dbd16 [02/10] ASoC: ad1980: Update to use maple tree register cache commit: 625ea9e6d5c4509634b49a8e7436ea3248220e9e [03/10] ASoC: adau1372: Update to use maple tree register cache commit: b7fea0e30fbdc4c5cba6edbf5e5b8aabd0a5660a [04/10] ASoC: adau1373: Update to use maple tree register cache commit: da27e493ce9394134deecfbecfd46c8836141191 [05/10] ASoC: adau1701: Update to use maple tree register cache commit: e0e3bb187bfba6ec2a0bd1b7d36fdacb6a8e3010 [06/10] ASoC: adau1761: Update to use maple tree register cache commit: 97e3b4845d389c8e309e13445bc02ad01fdbda7a [07/10] ASoC: adau1781: Update to use maple tree register cache commit: 3841ff1bacccc253c48c2c4a2c5e087dfae4b51e [08/10] ASoC: adau1977: Update to use maple tree register cache commit: a0a4cef897b550cf4beaf3fcb1742c3dc895f5f8 [09/10] ASoC: adau7118: Update to use maple tree register cache commit: c05c32dd82a602e5b75c3e473e55e7b6325a1967 [10/10] ASoC: adav80x: Update to use maple tree register cache commit: 07e835e35b5dc7e1906e2dbd6d72cb9336846ba6
All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying to this mail.
Thanks, Mark
participants (2)
-
Mark Brown
-
Nuno Sá