ASoC: wm_adsp: Add mechanism to preload firmware on a core
commitaf813a6fd8740537bfa5801768e90cc95d9262a3
authorCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
Fri, 6 Jan 2017 14:24:41 +0000 (6 14:24 +0000)
committerMark Brown <broonie@kernel.org>
Fri, 6 Jan 2017 18:09:01 +0000 (6 18:09 +0000)
treee083666c3b09a46e2dbec460b9c686fc57ec1dd4
parenta5de5b74a50113564a1e0850e2da96c37c35e55d
ASoC: wm_adsp: Add mechanism to preload firmware on a core

As requirements to bring up audio paths are continuous getting tighter
and the DSP download to most ADSP devices happens over an external bus
it can become an important factor in the path bring up time. As such
sometimes it is a reasonable trade off to download the firmware ahead of
when it will be required and take a small hit on power consumption for
keeping the core powered up.

This "preloading" adds an additional control for each DSP core "DSPx
Preload Switch" that when set to true will power up the DSP core and
download the firmware currently selected in the "DSPx Firmware" control.
Whilst the core is preloaded the current firmware can not be changed and
the CODEC will be kept powered up and SYSCLK held on. Although future
improvements may allow the SYSCLK to be powered down as well because
the hardware only requires SYSCLK whilst the download is actually taking
place, but this is not covered in this series.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/arizona.h
sound/soc/codecs/cs47l24.c
sound/soc/codecs/wm5102.c
sound/soc/codecs/wm5110.c
sound/soc/codecs/wm_adsp.c
sound/soc/codecs/wm_adsp.h