diff options
| author | Peter Ujfalusi <[email protected]> | 2021-09-03 14:40:18 +0300 |
|---|---|---|
| committer | Mark Brown <[email protected]> | 2021-09-13 01:59:18 +0100 |
| commit | 756bbe4205bc63a84ab032a1b76970afe55e2d9d (patch) | |
| tree | 7a1820b5c1947479391bf74422cb2a59749d96c3 /tools/perf/scripts/python/bin | |
| parent | 2b9b42c847b83823527a497c323e74d2efced721 (diff) | |
ASoC: SOF: Handle control change notification from firmware
If the value/data associated with a control changes in SOF it will send a
notification (SOF_IPC_GLB_COMP_MSG with SOF_IPC_COMP_GET_VALUE/DATA).
We have support for binary volatile control type, but we might have
features where enum/switch/volume changes. Re-implementing everything as
volatile as well would be not much of a gain for several reasons:
- volatile controls would do an IPC all the time, regardless if there is a
need or not.
- We still don't have notification which forces userspace to continuously
poll.
When such notification arrives we use snd_ctl_notify_one() to signal
userspace about the change.
The kernel is prepared for two types of notification:
- the notification carries the new data for the control (num_elems != 0)
The new value/data is copied to the control's local data
- blank message about a change
The new flag for the scontrol (comp_data_dirty) is set and when next
time user space reads the value via the kcontrol's get callback we will
refresh the control's local data from the firmware.
Signed-off-by: Peter Ujfalusi <[email protected]>
Reviewed-by: Kai Vehmanen <[email protected]>
Reviewed-by: Pierre-Louis Bossart <[email protected]>
Reviewed-by: Guennadi Liakhovetski <[email protected]>
Tested-by: Seppo Ingalsuo <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Mark Brown <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/bin')
0 files changed, 0 insertions, 0 deletions