ASoC: sof: Improve sof_ipc3_bytes_ext_put function
authorPaul Olaru <paul.olaru@nxp.com>
Wed, 3 May 2023 08:10:48 +0000 (11:10 +0300)
committerMark Brown <broonie@kernel.org>
Tue, 23 May 2023 18:31:14 +0000 (19:31 +0100)
commit299f6c752f8f7dabb62fe4df62ebd233b58402bd
treefd58867fb164fc60760b03ac657f2b031afbbff2
parentf9d790c578d4e0f715213cc7f2f6f2b0d2d91988
ASoC: sof: Improve sof_ipc3_bytes_ext_put function

The function is improved in the way that if the firmware returns a
validation error on the newly sent bytes, then the kernel will
automatically restore to the old bytes value for a given kcontrol.

This way, if the firmware rejects a data blob then the kernel will also
reject it, instead of saving it for the next suspend/resume cycle. The
old behaviour is that the kernel would save it anyway and on next
firmware boot it would apply the previously-rejected configuration,
leading to errors during playback.

Additionally, the function also saves previously validated
configurations, so that if the firmware does end up rejecting a new
bytes value the kernel can send an old, previously-valid configuration.

Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: Paul Olaru <paul.olaru@nxp.com>
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Link: https://lore.kernel.org/r/20230503081049.73847-2-daniel.baluta@oss.nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/ipc3-control.c
sound/soc/sof/sof-audio.h