aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/oxygen/oxygen.c
diff options
context:
space:
mode:
authorClemens Ladisch <clemens@ladisch.de>2011-01-10 09:59:38 -0500
committerTakashi Iwai <tiwai@suse.de>2011-01-10 10:45:53 -0500
commit1f4d7be7293aecd5f8469a46f606f62f0f05d84c (patch)
treed0caf037ec00a8684b18e8d413990c82cfc5f48a /sound/pci/oxygen/oxygen.c
parent3daa7ea650d59ae86926f0ced4c4ccd99ab33fda (diff)
ALSA: oxygen: allow different number of PCM and mixer channels
For cards like the Xonar HDAV1.3, differentiate between the number of PCM channels that can be played and the number of channels whose volume can be adjusted. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/oxygen/oxygen.c')
-rw-r--r--sound/pci/oxygen/oxygen.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sound/pci/oxygen/oxygen.c b/sound/pci/oxygen/oxygen.c
index dc47977becae..fe7ed4fc9f46 100644
--- a/sound/pci/oxygen/oxygen.c
+++ b/sound/pci/oxygen/oxygen.c
@@ -185,7 +185,7 @@ static void ak4396_init(struct oxygen *chip)
185{ 185{
186 struct generic_data *data = chip->model_data; 186 struct generic_data *data = chip->model_data;
187 187
188 data->dacs = chip->model.dac_channels / 2; 188 data->dacs = chip->model.dac_channels_pcm / 2;
189 data->ak4396_regs[0][AK4396_CONTROL_2] = 189 data->ak4396_regs[0][AK4396_CONTROL_2] =
190 AK4396_SMUTE | AK4396_DEM_OFF | AK4396_DFS_NORMAL; 190 AK4396_SMUTE | AK4396_DEM_OFF | AK4396_DFS_NORMAL;
191 ak4396_registers_init(chip); 191 ak4396_registers_init(chip);
@@ -583,7 +583,8 @@ static const struct oxygen_model model_generic = {
583 CAPTURE_1_FROM_SPDIF | 583 CAPTURE_1_FROM_SPDIF |
584 CAPTURE_2_FROM_AC97_1 | 584 CAPTURE_2_FROM_AC97_1 |
585 AC97_CD_INPUT, 585 AC97_CD_INPUT,
586 .dac_channels = 8, 586 .dac_channels_pcm = 8,
587 .dac_channels_mixer = 8,
587 .dac_volume_min = 0, 588 .dac_volume_min = 0,
588 .dac_volume_max = 255, 589 .dac_volume_max = 255,
589 .function_flags = OXYGEN_FUNCTION_SPI | 590 .function_flags = OXYGEN_FUNCTION_SPI |
@@ -643,7 +644,8 @@ static int __devinit get_oxygen_model(struct oxygen *chip,
643 PLAYBACK_1_TO_SPDIF; 644 PLAYBACK_1_TO_SPDIF;
644 if (id->driver_data == MODEL_FANTASIA) 645 if (id->driver_data == MODEL_FANTASIA)
645 chip->model.device_config |= CAPTURE_0_FROM_I2S_1; 646 chip->model.device_config |= CAPTURE_0_FROM_I2S_1;
646 chip->model.dac_channels = 2; 647 chip->model.dac_channels_pcm = 2;
648 chip->model.dac_channels_mixer = 2;
647 break; 649 break;
648 } 650 }
649 if (id->driver_data == MODEL_MERIDIAN || 651 if (id->driver_data == MODEL_MERIDIAN ||