summaryrefslogtreecommitdiff
path: root/sound/pci/oxygen/oxygen.c
diff options
context:
space:
mode:
authorClemens Ladisch <clemens@ladisch.de>2011-01-10 14:59:38 (GMT)
committerTakashi Iwai <tiwai@suse.de>2011-01-10 15:45:53 (GMT)
commit1f4d7be7293aecd5f8469a46f606f62f0f05d84c (patch)
treed0caf037ec00a8684b18e8d413990c82cfc5f48a /sound/pci/oxygen/oxygen.c
parent3daa7ea650d59ae86926f0ced4c4ccd99ab33fda (diff)
downloadlinux-1f4d7be7293aecd5f8469a46f606f62f0f05d84c.tar.xz
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 dc47977..fe7ed4f 100644
--- a/sound/pci/oxygen/oxygen.c
+++ b/sound/pci/oxygen/oxygen.c
@@ -185,7 +185,7 @@ static void ak4396_init(struct oxygen *chip)
{
struct generic_data *data = chip->model_data;
- data->dacs = chip->model.dac_channels / 2;
+ data->dacs = chip->model.dac_channels_pcm / 2;
data->ak4396_regs[0][AK4396_CONTROL_2] =
AK4396_SMUTE | AK4396_DEM_OFF | AK4396_DFS_NORMAL;
ak4396_registers_init(chip);
@@ -583,7 +583,8 @@ static const struct oxygen_model model_generic = {
CAPTURE_1_FROM_SPDIF |
CAPTURE_2_FROM_AC97_1 |
AC97_CD_INPUT,
- .dac_channels = 8,
+ .dac_channels_pcm = 8,
+ .dac_channels_mixer = 8,
.dac_volume_min = 0,
.dac_volume_max = 255,
.function_flags = OXYGEN_FUNCTION_SPI |
@@ -643,7 +644,8 @@ static int __devinit get_oxygen_model(struct oxygen *chip,
PLAYBACK_1_TO_SPDIF;
if (id->driver_data == MODEL_FANTASIA)
chip->model.device_config |= CAPTURE_0_FROM_I2S_1;
- chip->model.dac_channels = 2;
+ chip->model.dac_channels_pcm = 2;
+ chip->model.dac_channels_mixer = 2;
break;
}
if (id->driver_data == MODEL_MERIDIAN ||