Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ASoC: adau17x1: Mark DSP parameter memory as readable and precious

To be able to read back data from the DSP parameter memory the register
range needs to be marked as readable. At the same time we do not want them
to e.g. appear in debugfs output so mark them as precious as well.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Lars-Peter Clausen and committed by
Mark Brown
dee9cec4 a3a1ec66

+17
+1
sound/soc/codecs/adau1761.c
··· 793 793 .num_reg_defaults = ARRAY_SIZE(adau1761_reg_defaults), 794 794 .readable_reg = adau1761_readable_register, 795 795 .volatile_reg = adau17x1_volatile_register, 796 + .precious_reg = adau17x1_precious_register, 796 797 .cache_type = REGCACHE_RBTREE, 797 798 }; 798 799 EXPORT_SYMBOL_GPL(adau1761_regmap_config);
+1
sound/soc/codecs/adau1781.c
··· 472 472 .num_reg_defaults = ARRAY_SIZE(adau1781_reg_defaults), 473 473 .readable_reg = adau1781_readable_register, 474 474 .volatile_reg = adau17x1_volatile_register, 475 + .precious_reg = adau17x1_precious_register, 475 476 .cache_type = REGCACHE_RBTREE, 476 477 }; 477 478 EXPORT_SYMBOL_GPL(adau1781_regmap_config);
+14
sound/soc/codecs/adau17x1.c
··· 706 706 } 707 707 EXPORT_SYMBOL_GPL(adau17x1_set_micbias_voltage); 708 708 709 + bool adau17x1_precious_register(struct device *dev, unsigned int reg) 710 + { 711 + /* SigmaDSP parameter memory */ 712 + if (reg < 0x400) 713 + return true; 714 + 715 + return false; 716 + } 717 + EXPORT_SYMBOL_GPL(adau17x1_precious_register); 718 + 709 719 bool adau17x1_readable_register(struct device *dev, unsigned int reg) 710 720 { 721 + /* SigmaDSP parameter memory */ 722 + if (reg < 0x400) 723 + return true; 724 + 711 725 switch (reg) { 712 726 case ADAU17X1_CLOCK_CONTROL: 713 727 case ADAU17X1_PLL_CONTROL:
+1
sound/soc/codecs/adau17x1.h
··· 56 56 enum adau17x1_micbias_voltage micbias); 57 57 bool adau17x1_readable_register(struct device *dev, unsigned int reg); 58 58 bool adau17x1_volatile_register(struct device *dev, unsigned int reg); 59 + bool adau17x1_precious_register(struct device *dev, unsigned int reg); 59 60 int adau17x1_resume(struct snd_soc_codec *codec); 60 61 61 62 extern const struct snd_soc_dai_ops adau17x1_dai_ops;