WM8962 crashing on suspend

Charles Keepax ckeepax at opensource.cirrus.com
Tue Apr 26 19:41:50 CEST 2022


On Tue, Apr 26, 2022 at 11:36:26AM -0500, Adam Ford wrote:
> I have an imx8m Mini with a wm8962 codec.  If I run a speaker test and
> suspend the board while the speaker test is running, I get the
> following upon wake:
> 
> wm8962 3-001a: ASoC: error at soc_component_read_no_lock on wm8962.3-001a: -16
> 
> This message repeats itself over and over again.  If I attempt to use
> any audio, it fails until I reboot the board.
> 
> If I run the audio test, then exit and suspend, the audio works upon
> resume, so it appears to be related to suspending while running.
> 
> I am hoping someone might have a suggestion as to what I might be able
> to do or try to allow this to successfully suspend and resume if the
> device is playing sound.
> 

Hmm... EBUSY is what regmap returns when a volatile register is
read whilst the chip is still in cache only. The driver does
appear to be missing the usually fairly important work around to
avoid the IRQ and the PM runtime deadlocking on resume. Although
not sure that would actually lead to the error message you are
seeing.

Would be really handy to see a little more of the log leading up
to the failure if that is possible? And would be really awesome
if you had any idea which read was returning the error? You could
shove a dump_stack in _soc_component_ret next to the error
message.

Thanks,
Charles


More information about the Alsa-devel mailing list