[alsa-devel] [PATCH 1/1] ASoC: TWL4030: Wait RAMP_DELAY on headsetl_event: POST_PMD
Peter Ujfalusi
peter.ujfalusi at nokia.com
Thu May 14 11:19:41 CEST 2009
On Thursday 14 May 2009 12:05:50 ext Jarkko Nikula wrote:
> 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"},
I have this:
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),
...
SND_SOC_DAPM_PGA_E("HeadsetL fake PGA", SND_SOC_NOPM,
0, 0, NULL, 0, headsetlfake_event,
SND_SOC_DAPM_POST_PMU|SND_SOC_DAPM_POST_PMD),
...
{"HeadsetL Mixer", "Voice", "VDL_APGA"},
{"HeadsetL Mixer", "AudioL1", "ARXL1_APGA"},
{"HeadsetL Mixer", "AudioL2", "ARXL2_APGA"},
{"HeadsetL fake PGA", NULL, "HeadsetL Mixer"},
...
{"HSOL", NULL, "HeadsetL fake PGA"},
I have moved the code form the headsetl_event to headsetlfake_event, so the
ramp is configured in the fake PGA event handler.
>
> 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.
The order between the PGAs are not correct for the startup. In playback case
we have two PGA with this new 'fake PGA':
ARXL2_APGA and the "HeadsetL fake PGA"
DAPM is handling first the "HeadsetL fake PGA" than the ARXL2_APGA both for
startup and for standby. For standby it is OK, but for startup the ARXL2_APGA
should be handled prior to the "HeadsetL fake PGA" => in reverse order.
--
Péter
More information about the Alsa-devel
mailing list