[PATCH v1 0/3] Support wm_adsp hibernation for runtime suspend

Stefan Binding posted 3 patches 1 month, 1 week ago
There is a newer version of this series
drivers/firmware/cirrus/cs_dsp.c       | 49 +++++++++++++++++++++++---
include/linux/firmware/cirrus/cs_dsp.h |  3 ++
sound/soc/codecs/cs35l41.c             |  5 +++
sound/soc/codecs/wm_adsp.c             |  6 ++++
sound/soc/codecs/wm_adsp.h             |  1 +
5 files changed, 60 insertions(+), 4 deletions(-)
[PATCH v1 0/3] Support wm_adsp hibernation for runtime suspend
Posted by Stefan Binding 1 month, 1 week ago
When the CS35L41 driver suspends, it is put into hibernation, and
the regmap goes into cache_only, but the firmware is still running, and
wm_adsp is not stopped. If userspace attempts to read a firmware
control, it will perform a regmap_raw_read() and this will produce an
error in the kernel log.

To prevent these spurious errors, add an apis into cs_dsp and wm_adsp
to allow wm_adsp to hibernate. In this hibernation mode, reads or
writes to the dsp controls would be rejected with -EPERM rather than
-EBUSY, and no error will be printed to the kernel log.

Stefan Binding (3):
  firmware: cs_dsp: Add API to hibernate the DSP
  ASoC: codecs: wm_adsp: Allow wm_adsp to hibernate without stopping DSP
  ASoC: cs35l41: Hibernate wm_adsp on runtime suspend

 drivers/firmware/cirrus/cs_dsp.c       | 49 +++++++++++++++++++++++---
 include/linux/firmware/cirrus/cs_dsp.h |  3 ++
 sound/soc/codecs/cs35l41.c             |  5 +++
 sound/soc/codecs/wm_adsp.c             |  6 ++++
 sound/soc/codecs/wm_adsp.h             |  1 +
 5 files changed, 60 insertions(+), 4 deletions(-)

-- 
2.43.0