On Sun, Oct 31, 2010 at 08:11:53PM +0200, Jarkko Nikula wrote:
Mark Brown broonie@opensource.wolfsonmicro.com wrote:
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?
It was these diffs for dapm_seq_run:
/* Do we need to apply any queued changes? */
if (sort[w->id] != cur_sort || w->reg != cur_reg) {
if (sort[w->id] != cur_sort || w->reg != cur_reg ||
w->dapm != cur_dapm) { if (!list_empty(&pending)) dapm_seq_run_coalesced(dapm, &pending);
So if DAPM is different the dapm_seq_run_coalesced is run now and next iterations are done for another DAPM context.
Pretty much - that was the code I was looking for but you were talking about only the execution code, not the comparison operation.