3 May
2010
3 May
'10
2:19 p.m.
On Fri, 2010-04-30 at 14:59 +0300, Peter Ujfalusi wrote:
Hello,
Changes since v1:
- patch 1: Removed extra register writes
- patch 4:
- Let core to bring the codec to BIAS_OFF (set idle_bias_off)
- dac33_set_bias_level only takes care of power and minimum initialization
- PRE_DAPM widget event is replacing the dac33_pcm_pointer call to take care of the initialization needed before _every_ playback.
There are few scenarios, which has to be taken care::
- Analog bypass caused BIAS_OFF -> BIAS_ON We need to power on the codec, and do the chip init, but we does not need to execute the playback related configuration
- Playback caused BIAS_OFF -> BIAS_ON We need to power on the codec, and do the chip init, and also we need to execute the playback related configuration.
- Playback start, while Analog bypass is on (BIAS_ON -> BIAS_ON) We need to execute the playback related configuration. The codec is already on.
- Analog bypass enable, while playback (BIAS_ON -> BIAS_ON) Nothing need to be done.
- Playback start withing soc power down timeout (BIAS_ON -> BIAS_ON) We need to execute the playback related configuration. The codec is still on.
Since the power up, and the codec init is optimized, the added overhead in stream start is minimal.
Withing this patch, the hard_power function is now only doing what it supposed to: only handle the powers, and GPIO reset line. The codec initialization and state restore has been moved out.
Applied.
Thanks !
Liam