]> Pileus Git - ~andy/linux/blobdiff - sound/pci/oxygen/hifier.c
[ALSA] oxygen: use SPDIF input only if present
[~andy/linux] / sound / pci / oxygen / hifier.c
index 666f69a3312e9a3c08cd90ac91008105f482fa3d..50551ae0b3b41ecdd790212f967aeb6bd5e47928 100644 (file)
@@ -132,11 +132,6 @@ static int hifier_control_filter(struct snd_kcontrol_new *template)
                template->tlv.p = ak4396_db_scale;
        } else if (!strcmp(template->name, "Stereo Upmixing")) {
                return 1; /* stereo only - we don't need upmixing */
-       } else if (!strcmp(template->name,
-                          SNDRV_CTL_NAME_IEC958("", CAPTURE, MASK)) ||
-                  !strcmp(template->name,
-                          SNDRV_CTL_NAME_IEC958("", CAPTURE, DEFAULT))) {
-               return 1; /* no digital input */
        }
        return 0;
 }
@@ -160,11 +155,11 @@ static const struct oxygen_model model_hifier = {
        .update_dac_volume = update_ak4396_volume,
        .update_dac_mute = update_ak4396_mute,
        .model_data_size = sizeof(struct hifier_data),
+       .pcm_dev_cfg = PLAYBACK_0_TO_I2S |
+                      PLAYBACK_1_TO_SPDIF |
+                      CAPTURE_0_FROM_I2S_1,
        .dac_channels = 2,
-       .used_channels = OXYGEN_CHANNEL_A |
-                        OXYGEN_CHANNEL_SPDIF |
-                        OXYGEN_CHANNEL_MULTICH,
-       .function_flags = 0,
+       .function_flags = OXYGEN_FUNCTION_SPI,
        .dac_i2s_format = OXYGEN_I2S_FORMAT_LJUST,
        .adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST,
 };
@@ -181,7 +176,7 @@ static int __devinit hifier_probe(struct pci_dev *pci,
                ++dev;
                return -ENOENT;
        }
-       err = oxygen_pci_probe(pci, index[dev], id[dev], 0, &model_hifier);
+       err = oxygen_pci_probe(pci, index[dev], id[dev], &model_hifier);
        if (err >= 0)
                ++dev;
        return err;