return 0;
 }
 
-static void snd_emu10k1_playback_invalidate_cache(struct snd_emu10k1 *emu, int extra, struct snd_emu10k1_voice *evoice)
+static void snd_emu10k1_playback_invalidate_cache(struct snd_emu10k1 *emu,
+                                                 struct snd_emu10k1_voice *evoice)
 {
        struct snd_pcm_runtime *runtime;
        unsigned int voice, stereo, i, ccis, cra = 64, cs, sample;
 
        runtime = evoice->epcm->substream->runtime;
        voice = evoice->number;
-       stereo = (!extra && runtime->channels == 2);
+       stereo = (runtime->channels == 2);
        sample = snd_pcm_format_width(runtime->format) == 16 ? 0 : 0x80808080;
        ccis = emu10k1_ccis(stereo, sample == 0);
        /* set cs to 2 * number of cache registers beside the invalidated */
        spin_lock(&emu->reg_lock);
        switch (cmd) {
        case SNDRV_PCM_TRIGGER_START:
-               snd_emu10k1_playback_invalidate_cache(emu, 1, epcm->extra);     /* do we need this? */
-               snd_emu10k1_playback_invalidate_cache(emu, 0, epcm->voices[0]);
+               snd_emu10k1_playback_invalidate_cache(emu, epcm->voices[0]);
                fallthrough;
        case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
        case SNDRV_PCM_TRIGGER_RESUME:
        case SNDRV_PCM_TRIGGER_START:
                /* prepare voices */
                for (i = 0; i < NUM_EFX_PLAYBACK; i++) {        
-                       snd_emu10k1_playback_invalidate_cache(emu, 0, epcm->voices[i]);
+                       snd_emu10k1_playback_invalidate_cache(emu, epcm->voices[i]);
                }
-               snd_emu10k1_playback_invalidate_cache(emu, 1, epcm->extra);
                fallthrough;
        case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
        case SNDRV_PCM_TRIGGER_RESUME: