When the codec turn-on operation is canceled by the immediate
power-on, the driver left the power_transition flag as is.
This caused the persistent avoidance of power-save behavior.
Cc: <stable@vger.kernel.org> [v3.5+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
(cherry picked from commit
535b6c51fe8293c88ce919cdfc4390c67a1cb6d1)
BUG=chrome-os-partner:15121
TEST=turn on tracepoints for hda_power_up/hda_power_down and verify
hda_power_down is called after specified timeout.
Change-Id: I023c7aedbbb77e1f68c2b45ebad7e29101089df5
Reviewed-on: https://gerrit.chromium.org/gerrit/35399
Reviewed-by: Dylan Reid <dgreid@chromium.org>
Commit-Ready: Chih-Chung Chang <chihchung@chromium.org>
Tested-by: Chih-Chung Chang <chihchung@chromium.org>
* then there is no need to go through power up here.
*/
if (codec->power_on) {
+ if (codec->power_transition < 0)
+ codec->power_transition = 0;
spin_unlock(&codec->power_lock);
return;
}