There seems to be an issue when suspending the ALC5650. I think the nondeterministic behavior I was seeing just had to do with whether or not the DSP had yet suspended.
I reverted commit 0d2135ecadb0 ("ASoC: Intel: Work around to fix HW D3 potential crash issue") and things started working, including suspend/resume of the DSP. Any ideas for why this may be? I would like to resolve this so I can finish upstreaming the bdw-rt5650 machine driver.
Copying Keyon in case he remembers the context.
Reverting a 5yr-old commit with all sorts of clock/power-related fixes looks brave, and it's not clear why this would work with the rt5677 and not with 5650.
Are you using the latest upstream firmware btw? Or the one which shipped with the initial device (which could be an issue if the protocol changed).