Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[platform/kernel/linux-rpi.git] / sound / isa / wss / wss_lib.c
index 49c8a0c..360b08b 100644 (file)
@@ -1456,7 +1456,6 @@ static struct snd_pcm_hardware snd_wss_playback =
 {
        .info =                 (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
                                 SNDRV_PCM_INFO_MMAP_VALID |
 {
        .info =                 (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
                                 SNDRV_PCM_INFO_MMAP_VALID |
-                                SNDRV_PCM_INFO_RESUME |
                                 SNDRV_PCM_INFO_SYNC_START),
        .formats =              (SNDRV_PCM_FMTBIT_MU_LAW | SNDRV_PCM_FMTBIT_A_LAW | SNDRV_PCM_FMTBIT_IMA_ADPCM |
                                 SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S16_BE),
                                 SNDRV_PCM_INFO_SYNC_START),
        .formats =              (SNDRV_PCM_FMTBIT_MU_LAW | SNDRV_PCM_FMTBIT_A_LAW | SNDRV_PCM_FMTBIT_IMA_ADPCM |
                                 SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S16_BE),
@@ -1657,6 +1656,10 @@ static void snd_wss_resume(struct snd_wss *chip)
                        break;
                }
        }
                        break;
                }
        }
+       /* Yamaha needs this to resume properly */
+       if (chip->hardware == WSS_HW_OPL3SA2)
+               snd_wss_out(chip, CS4231_PLAYBK_FORMAT,
+                           chip->image[CS4231_PLAYBK_FORMAT]);
        spin_unlock_irqrestore(&chip->reg_lock, flags);
 #if 1
        snd_wss_mce_down(chip);
        spin_unlock_irqrestore(&chip->reg_lock, flags);
 #if 1
        snd_wss_mce_down(chip);