On Thu, 14 May 2009 11:09:08 +0300 Peter Ujfalusi peter.ujfalusi@nokia.com wrote:
Startup: dac -> HS ramp up (HS enable, fake PGA) -> PGA
Standby: HS ramp down (HS disable, fake PGA) -> PGA -> dac
If the order of the startup can be somehow altered to be: dac -> PGA -> HS ramp up (HS enable, fake PGA)
Did you implement this fake or actually real PGA between "HeadsetL Mixer" and "HSOL"?
I seems that there is an error in audio path that output pin control is tied to mixer and there is no widget in audio path defining the output amplifier. See
SND_SOC_DAPM_MIXER_E("HeadsetL Mixer", SND_SOC_NOPM, 0, 0, &twl4030_dapm_hsol_controls[0], ARRAY_SIZE(twl4030_dapm_hsol_controls), headsetl_event, SND_SOC_DAPM_POST_PMU|SND_SOC_DAPM_POST_PMD), ... {"HSOL", NULL, "HeadsetL Mixer"}, {"HSOR", NULL, "HeadsetR Mixer"},
So startup/shutdown order should be correct if you define a new PGA between the HSOx and Headsetx mixer and let that to manage output pin power.