mirror of
https://github.com/team-infusion-developers/android_kernel_samsung_msm8976.git
synced 2024-10-31 18:09:19 +00:00
ASoC: dapm: Do not process cpu_dai widgets in bias changes
Kernel 3.10 has cpu dai widgets in the list of card widgets in addition to platform and codec widgets. This is causing a delay in device switch because cpu dai widgets increase the number of widgets to be processed for bias changes by a factor of five, however they are not required to be processed. Skip processing of cpu dai widgets to keep the device switch latency at same level as in kernel 3.4. CRs-fixed: 699168 Change-Id: I2d7d9e34dabf2cd25ec5fdd3e58be0fc657c0f6c Signed-off-by: Damir Didjusto <damird@codeaurora.org>
This commit is contained in:
parent
e92aa60f73
commit
4d4732cb9a
1 changed files with 10 additions and 6 deletions
|
@ -1733,9 +1733,11 @@ static int dapm_power_widgets(struct snd_soc_dapm_context *dapm, int event)
|
|||
trace_snd_soc_dapm_walk_done(card);
|
||||
|
||||
/* Run all the bias changes in parallel */
|
||||
list_for_each_entry(d, &dapm->card->dapm_list, list)
|
||||
async_schedule_domain(dapm_pre_sequence_async, d,
|
||||
&async_domain);
|
||||
list_for_each_entry(d, &dapm->card->dapm_list, list) {
|
||||
if (d->codec || d->platform)
|
||||
async_schedule_domain(dapm_pre_sequence_async, d,
|
||||
&async_domain);
|
||||
}
|
||||
async_synchronize_full_domain(&async_domain);
|
||||
|
||||
/* Power down widgets first; try to avoid amplifying pops. */
|
||||
|
@ -1747,9 +1749,11 @@ static int dapm_power_widgets(struct snd_soc_dapm_context *dapm, int event)
|
|||
dapm_seq_run(dapm, &up_list, event, true);
|
||||
|
||||
/* Run all the bias changes in parallel */
|
||||
list_for_each_entry(d, &dapm->card->dapm_list, list)
|
||||
async_schedule_domain(dapm_post_sequence_async, d,
|
||||
&async_domain);
|
||||
list_for_each_entry(d, &dapm->card->dapm_list, list) {
|
||||
if (d->codec || d->platform)
|
||||
async_schedule_domain(dapm_post_sequence_async, d,
|
||||
&async_domain);
|
||||
}
|
||||
async_synchronize_full_domain(&async_domain);
|
||||
|
||||
/* do we need to notify any clients that DAPM event is complete */
|
||||
|
|
Loading…
Reference in a new issue