if (pop_time) {
                vprintk(fmt, args);
-               pop_wait(pop_time);
        }
 
        va_end(args);
                pop_dbg(codec->pop_time, "pop test %s : %s in %d ms\n",
                        widget->name, widget->power ? "on" : "off",
                        codec->pop_time);
-               snd_soc_write(codec, widget->reg, new);
                pop_wait(codec->pop_time);
+               snd_soc_write(codec, widget->reg, new);
        }
        pr_debug("reg %x old %x new %x change %d\n", widget->reg,
                 old, new, change);
 
        pop_dbg(codec->pop_time, "DAPM sequencing finished, waiting %dms\n",
                codec->pop_time);
+       pop_wait(codec->pop_time);
 
        return 0;
 }