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 patch chain adds such functionality to the wm_adsp driver, broadly speaking there are three parts to the chain. Firstly we setup the existing preloader widgets such that they will be easier to power up independently. Secondly, we setup the ALSA controls such that they will gracefully handle the DSP being in a low power state between loading the firmware and starting the core. Finally, we actually add the preloading features itself.
Thanks, Charles
Charles Keepax (7): ASoC: arizona: Attach SYSCLK to DSP preloaders ASoC: wm_adsp: Make DSP preloader a supply widget ASoC: wm_adsp: Separate concept of booted and running ASoC: wm_adsp: Move control cache sync out of preloader ASoC: wm_adsp: Put DSP into low power state between loading and running ASoC: wm_adsp: Allow preloader to do the final shutdown of the DSP ASoC: wm_adsp: Add mechanism to preload firmware on a core
sound/soc/codecs/arizona.h | 18 ++++--- sound/soc/codecs/cs47l24.c | 5 +- sound/soc/codecs/wm5102.c | 3 +- sound/soc/codecs/wm5110.c | 7 ++- sound/soc/codecs/wm_adsp.c | 126 ++++++++++++++++++++++++++++++++++++--------- sound/soc/codecs/wm_adsp.h | 18 ++++++- 6 files changed, 138 insertions(+), 39 deletions(-)