On Fri, Oct 29, 2010 at 03:02:22PM +0300, Jarkko Nikula wrote:
Functions dapm_seq_run and dapm_seq_run_coalesced are modified so that a new write is issued when the sequence extends to an another device and DAPM context of a widget instead of originating DAPM context is used when doing pop waits and register writes.
I'm having a hard time parsing this bit of the changelog, I'm afraid. What I'd expect is that the comparison operation used for coalescing would be extended to compare based on the CODEC/DAPM context too and the split per device should naturally fall out of that. I didn't notice the comparison being updated?
Otherwise this looks pretty good, these are stylistic things:
/* power down pre event */ if (!w->power && w->event && (w->event_flags & SND_SOC_DAPM_PRE_PMD)) {
pop_dbg(dapm->pop_time, "pop test : %s PRE_PMD\n",
pop_dbg(w->dapm->pop_time, "pop test : %s PRE_PMD\n", w->name);
We probably need to start putting the dev_names in these.
if (power)
sys_power = 1;
w->dapm->sys_power = 1;
sys_power needs to be renamed - probably dev_power or something.
- /* If we're changing to all on or all off then prepare */
- if ((sys_power && dapm->bias_level == SND_SOC_BIAS_STANDBY) ||
(!sys_power && dapm->bias_level == SND_SOC_BIAS_ON)) {
ret = snd_soc_dapm_set_bias_level(card, dapm, SND_SOC_BIAS_PREPARE);
if (ret != 0)
pr_err("Failed to prepare bias: %d\n", ret);
/* If we're changing to all on or all off then prepare */
if ((d->sys_power && d->bias_level == SND_SOC_BIAS_STANDBY) ||
(!d->sys_power && d->bias_level == SND_SOC_BIAS_ON)) {
ret = snd_soc_dapm_set_bias_level(card, d, SND_SOC_BIAS_PREPARE);
if (ret != 0)
pr_err("Failed to prepare bias: %d\n", ret);
}
We can switch these over to dev_ prints now, I think.