ASoC: sof: Improve sof_ipc4_bytes_ext_put function
authorPaul Olaru <paul.olaru@nxp.com>
Wed, 3 May 2023 08:10:49 +0000 (11:10 +0300)
committerMark Brown <broonie@kernel.org>
Tue, 23 May 2023 18:31:15 +0000 (19:31 +0100)
commitdb38d86d0c54e0dbea063e915ce3e1fe394af444
tree173383d9ec37138d4f36bf6c724a0676de60d70d
parent299f6c752f8f7dabb62fe4df62ebd233b58402bd
ASoC: sof: Improve sof_ipc4_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-3-daniel.baluta@oss.nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/ipc4-control.c