The capture volume put callback may call the node selection change,
and its actual call won't be triggered unless flushed.  In general,
we always need to call both snd_hda_codec_flush_amp_cache() and
snd_hda_codec_flush_cmd_cache() at the same place...
Signed-off-by: Takashi Iwai <tiwai@suse.de>
        codec->cached_write = 0;
        mutex_unlock(&codec->control_mutex);
        snd_hda_codec_flush_amp_cache(codec); /* flush the updates */
+       snd_hda_codec_flush_cmd_cache(codec);
        if (err >= 0 && spec->cap_sync_hook)
                spec->cap_sync_hook(codec, ucontrol);
        return err;