Fabio,
On Sat, May 24, 2014 at 04:16:00PM -0300, Fabio Estevam wrote:
From: Fabio Estevam fabio.estevam@freescale.com
Since commit e5d80e82e32e (ASoC: sgtl5000: Convert to use regmap directly) a kernel oops is observed after a suspend/resume sequence.
According to Mark Brown:
"Looking at the code what I'd expect to happen here is that set_bias_level() manages the cache enable, turning on cache only mode just before it turns the regulators off and restoring normal mode just after enabling them, then calling _restore_regs() after that. The resume call should just be a call to set_bias_level() then.."
Do as suggested and also complete the cache array with the missing registers so that sgtl5000_restore_regs() can properly cache the all the registers it needs.
Reported-by: Shawn Guo shawn.guo@freescale.com Signed-off-by: Fabio Estevam fabio.estevam@freescale.com
I'm not sure if it's the problem of this patch, but when I test suspend/resume cycle with a wave playback running background, the playback goes abnormal after system resumes back. I did this test with your patch 'ASoC: fsl_ssi: Add suspend/resume support' applied.
The same test goes fine with wm8962 on imx6q-sabresd board.
Shawn