]> www.infradead.org Git - users/jedix/linux-maple.git/commit
ASoC: tlv320aic31xx: Add support for loading filter coefficients
authorRomain Gantois <romain.gantois@bootlin.com>
Fri, 6 Sep 2024 12:20:58 +0000 (14:20 +0200)
committerMark Brown <broonie@kernel.org>
Mon, 9 Sep 2024 11:29:42 +0000 (12:29 +0100)
commit77b696f489d2fd83bbcffeed363baac8f2f6ed4b
tree4313865bab59bfd07fb36143751a1c9b809d4460
parent241c044e743f9c55886828763c99b51b0392c21d
ASoC: tlv320aic31xx: Add support for loading filter coefficients

The TLV320DAC3100 Audio DAC has 25 built-in digital audio processing blocks
(PRBs). Each of these PRBs has a static filter structure with programmable
coefficients. Once a PRB is selected for use by the DAC, its filter
coefficients can be configured via a dedicated set of registers.

Define a new optional firmware which can be loaded by the TLV320DAC driver.
This firmware describes a full set of filter coefficients for all blocks
used by the various PRBs.

The firmware's binary format is heavily inspired by the one used in the
peb2466 driver. It includes a version marker to allow for potential
evolutions of the format.

Note that adaptive filtering is not supported i.e. filter coefficients are
loaded once before power-on and then cannot be changed while the DAC is
powered. This is why only page A coefficients are modified. Page B
coefficients are only used for adaptive filtering.

Signed-off-by: Romain Gantois <romain.gantois@bootlin.com>
Link: https://patch.msgid.link/20240906-tlv320-filter-v1-1-6955f53ff435@bootlin.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/tlv320aic31xx.c