ASoC: dmic: introduce mode switch delay
authorJenny TC <jenny.tc@intel.com>
Wed, 28 Nov 2018 06:52:45 +0000 (12:22 +0530)
committerMark Brown <broonie@kernel.org>
Wed, 28 Nov 2018 15:19:31 +0000 (15:19 +0000)
commitbc0a7dbc5a54a06b925064adba8b07d65acf8718
tree100e77e1ed4ae6d686400e0a7e3f08082c49cb4f
parent22cc062c4dfb16330fe18e8d7e155d733fd59e61
ASoC: dmic: introduce mode switch delay

On startup, applications such as PulseAudio or CRAS enable playback or
capture on all PCM devices to verify that configurations are correct,
and close them immediately. For DMICs, this can result in the clock
being turned off very quickly, which may not compatible with internal
state machine transition requirements.

This patch add a mode-switch delay which will prevent the clock from
being turned off without complying with manufacturer timing
specifications. While the DMIC clock may be controlled at a lower level,
be it with hardware or firmware, applying the delay during the
STOP_TRIGGER phase ensures that there is no race condition, e.g. with
the hardware/firmware turning off the clock earlier

Signed-off-by: Sathyanarayana Nujella <sathyanarayana.nujella@intel.com>
Signed-off-by: Jairaj Arava <jairaj.arava@intel.com>
Signed-off-by: Harsha Priya <harshapriya.n@intel.com>
Signed-off-by: Jenny TC <jenny.tc@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Documentation/devicetree/bindings/sound/dmic.txt
sound/soc/codecs/dmic.c