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

ASoC: SDCA: Add helper to write initialization writes

Add a helper function to write out the SDCA blind initialization writes.

Acked-by: Vinod Koul <vkoul@kernel.org>
Tested-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Maciej Strozek <mstrozek@opensource.cirrus.com>
Reviewed-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Tested-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://patch.msgid.link/20251120153023.2105663-11-ckeepax@opensource.cirrus.com
Reviewed-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Charles Keepax and committed by
Mark Brown
5acf17b6 193c65ec

+18
+2
include/sound/sdca_regmap.h
··· 27 27 28 28 int sdca_regmap_write_defaults(struct device *dev, struct regmap *regmap, 29 29 struct sdca_function_data *function); 30 + int sdca_regmap_write_init(struct device *dev, struct regmap *regmap, 31 + struct sdca_function_data *function); 30 32 31 33 #endif // __SDCA_REGMAP_H__
+16
sound/soc/sdca/sdca_regmap.c
··· 355 355 return 0; 356 356 } 357 357 EXPORT_SYMBOL_NS(sdca_regmap_write_defaults, "SND_SOC_SDCA"); 358 + 359 + int sdca_regmap_write_init(struct device *dev, struct regmap *regmap, 360 + struct sdca_function_data *function) 361 + { 362 + struct sdca_init_write *init = function->init_table; 363 + int ret, i; 364 + 365 + for (i = 0; i < function->num_init_table; i++) { 366 + ret = regmap_write(regmap, init[i].addr, init[i].val); 367 + if (ret) 368 + return ret; 369 + } 370 + 371 + return 0; 372 + } 373 + EXPORT_SYMBOL_NS(sdca_regmap_write_init, "SND_SOC_SDCA");