On Fri, Jun 14, 2013 at 07:07:43PM +0800, Nicolin Chen wrote:
On Fri, Jun 14, 2013 at 11:51:18AM +0100, Mark Brown wrote:
That said the general concept is that runtime PM would be powering on the device for digital operation (eg, for the GPIOs) and then set_bias_level() powering up the analogue portions of the device.
Understood. But I just tested the set_bias_level() way to handle BIAS, it prompts "wm8962 0-001a: DC servo timed out" when I start to play a wav file. There should be still some parts of code not right. So I'm gonna just revise the comment to continue the resume() methods. It should be appropriate since pm_suspend() is handling bias-off in the current code.
If the DC servo is timing out that'll be a problem with the clocking... the FLL is partially analogue so if you're using the FLL that makes sense. Looking at the code we're also bringing the bias down in the suspend path so it needs to be powered up in the resume path for symmetry if nothing else.