ALSA: ice1712: Add S/PDIF suspend support for ICE1712-based M-Audio cards
authorOndrej Zary <linux@rainbow-software.org>
Wed, 2 Apr 2014 20:35:33 +0000 (22:35 +0200)
committerTakashi Iwai <tiwai@suse.de>
Thu, 3 Apr 2014 13:00:15 +0000 (15:00 +0200)
Add S/PDIF suspend support for M-Audio cards based on ICE1712 chip.
Tested (playback only) on Audiophile 24/96. Capture will probably not work.

Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/ice1712/delta.c

index ed2144eee38ac872d80e263953733639630169b2..b3eed8d6bfc5daebbcb4161c013b36976228bd11 100644 (file)
@@ -580,6 +580,28 @@ static struct snd_ak4xxx_private akm_vx442_priv = {
 static int snd_ice1712_delta_resume(struct snd_ice1712 *ice)
 {
        unsigned char akm_backup[AK4XXX_IMAGE_SIZE];
+
+       /* init spdif */
+       switch (ice->eeprom.subvendor) {
+       case ICE1712_SUBDEVICE_AUDIOPHILE:
+       case ICE1712_SUBDEVICE_DELTA410:
+       case ICE1712_SUBDEVICE_DELTA1010E:
+       case ICE1712_SUBDEVICE_DELTA1010LT:
+       case ICE1712_SUBDEVICE_VX442:
+       case ICE1712_SUBDEVICE_DELTA66E:
+               snd_cs8427_init(ice->i2c, ice->cs8427);
+               break;
+       case ICE1712_SUBDEVICE_DELTA1010:
+       case ICE1712_SUBDEVICE_MEDIASTATION:
+               /* nothing */
+               break;
+       case ICE1712_SUBDEVICE_DELTADIO2496:
+       case ICE1712_SUBDEVICE_DELTA66:
+               /* Set spdif defaults */
+               snd_ice1712_delta_cs8403_spdif_write(ice, ice->spdif.cs8403_bits);
+               break;
+       }
+
        /* init codec and restore registers */
        if (ice->akm_codecs) {
                memcpy(akm_backup, ice->akm->images, sizeof(akm_backup));