ASoC: dapm: Use async I/O for DAPM sequences
authorMark Brown <broonie@linaro.org>
Wed, 9 Oct 2013 12:52:52 +0000 (13:52 +0100)
committerMark Brown <broonie@linaro.org>
Thu, 10 Oct 2013 11:51:58 +0000 (12:51 +0100)
commiteb270e98e15b9f4303b074ba5d88ee98110bc451
tree999fcf2cbf5c25ae5c5966e30ca716eb0617dfd2
parent40aaddd0438944b41ae507a01b0842309bb9ea79
ASoC: dapm: Use async I/O for DAPM sequences

Within a DAPM sequence we normally don't care about when exactly a register
write has completed so long as they happen in the order we requested. This
means that we can issue most of the writes we do asynchronously which
should maximise the ability of the underlying frameworks to keep the
hardware busy, providing a small performance improvement on some systems.

We currently ensure that all writes are completed both when changing to a
different device and when calling into the regulator and clock frameworks.
This should ensure that the previous ordering is maintained.

We also ensure that writes are completed prior to calling into widget
event functions since some event functions implement delays.  This
should be improved in future so that widgets can disable this sync in
order to add extra writes.

Signed-off-by: Mark Brown <broonie@linaro.org>
sound/soc/soc-dapm.c