aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/oxygen/virtuoso.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/pci/oxygen/virtuoso.c')
-rw-r--r--sound/pci/oxygen/virtuoso.c31
1 files changed, 6 insertions, 25 deletions
diff --git a/sound/pci/oxygen/virtuoso.c b/sound/pci/oxygen/virtuoso.c
index 6f5c2531abd0..37f53a8c5888 100644
--- a/sound/pci/oxygen/virtuoso.c
+++ b/sound/pci/oxygen/virtuoso.c
@@ -219,10 +219,7 @@ static void xonar_d2x_init(struct oxygen *chip)
219static void xonar_dx_init(struct oxygen *chip) 219static void xonar_dx_init(struct oxygen *chip)
220{ 220{
221 struct xonar_data *data = chip->model_data; 221 struct xonar_data *data = chip->model_data;
222 unsigned int i;
223 222
224 for (i = 0; i < 8; ++i)
225 chip->dac_volume[i] = 127;
226 data->anti_pop_delay = 800; 223 data->anti_pop_delay = 800;
227 data->output_enable_bit = GPIO_DX_OUTPUT_ENABLE; 224 data->output_enable_bit = GPIO_DX_OUTPUT_ENABLE;
228 data->ext_power_reg = OXYGEN_GPI_DATA; 225 data->ext_power_reg = OXYGEN_GPI_DATA;
@@ -414,26 +411,6 @@ static void xonar_gpio_changed(struct oxygen *chip)
414 } 411 }
415} 412}
416 413
417static int pcm1796_volume_info(struct snd_kcontrol *ctl,
418 struct snd_ctl_elem_info *info)
419{
420 info->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
421 info->count = 8;
422 info->value.integer.min = 0x0f;
423 info->value.integer.max = 0xff;
424 return 0;
425}
426
427static int cs4362a_volume_info(struct snd_kcontrol *ctl,
428 struct snd_ctl_elem_info *info)
429{
430 info->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
431 info->count = 8;
432 info->value.integer.min = 0;
433 info->value.integer.max = 127;
434 return 0;
435}
436
437static int alt_switch_get(struct snd_kcontrol *ctl, 414static int alt_switch_get(struct snd_kcontrol *ctl,
438 struct snd_ctl_elem_value *value) 415 struct snd_ctl_elem_value *value)
439{ 416{
@@ -526,7 +503,6 @@ static int xonar_d2_control_filter(struct snd_kcontrol_new *template)
526{ 503{
527 if (!strcmp(template->name, "Master Playback Volume")) { 504 if (!strcmp(template->name, "Master Playback Volume")) {
528 template->access |= SNDRV_CTL_ELEM_ACCESS_TLV_READ; 505 template->access |= SNDRV_CTL_ELEM_ACCESS_TLV_READ;
529 template->info = pcm1796_volume_info;
530 template->tlv.p = pcm1796_db_scale; 506 template->tlv.p = pcm1796_db_scale;
531 } else if (!strncmp(template->name, "CD Capture ", 11)) { 507 } else if (!strncmp(template->name, "CD Capture ", 11)) {
532 /* CD in is actually connected to the video in pin */ 508 /* CD in is actually connected to the video in pin */
@@ -539,7 +515,6 @@ static int xonar_dx_control_filter(struct snd_kcontrol_new *template)
539{ 515{
540 if (!strcmp(template->name, "Master Playback Volume")) { 516 if (!strcmp(template->name, "Master Playback Volume")) {
541 template->access |= SNDRV_CTL_ELEM_ACCESS_TLV_READ; 517 template->access |= SNDRV_CTL_ELEM_ACCESS_TLV_READ;
542 template->info = cs4362a_volume_info;
543 template->tlv.p = cs4362a_db_scale; 518 template->tlv.p = cs4362a_db_scale;
544 } else if (!strncmp(template->name, "CD Capture ", 11)) { 519 } else if (!strncmp(template->name, "CD Capture ", 11)) {
545 return 1; /* no CD input */ 520 return 1; /* no CD input */
@@ -577,6 +552,8 @@ static const struct oxygen_model xonar_models[] = {
577 CAPTURE_0_FROM_I2S_2 | 552 CAPTURE_0_FROM_I2S_2 |
578 CAPTURE_1_FROM_SPDIF, 553 CAPTURE_1_FROM_SPDIF,
579 .dac_channels = 8, 554 .dac_channels = 8,
555 .dac_volume_min = 0x0f,
556 .dac_volume_max = 0xff,
580 .misc_flags = OXYGEN_MISC_MIDI, 557 .misc_flags = OXYGEN_MISC_MIDI,
581 .function_flags = OXYGEN_FUNCTION_SPI | 558 .function_flags = OXYGEN_FUNCTION_SPI |
582 OXYGEN_FUNCTION_ENABLE_SPI_4_5, 559 OXYGEN_FUNCTION_ENABLE_SPI_4_5,
@@ -603,6 +580,8 @@ static const struct oxygen_model xonar_models[] = {
603 CAPTURE_0_FROM_I2S_2 | 580 CAPTURE_0_FROM_I2S_2 |
604 CAPTURE_1_FROM_SPDIF, 581 CAPTURE_1_FROM_SPDIF,
605 .dac_channels = 8, 582 .dac_channels = 8,
583 .dac_volume_min = 0x0f,
584 .dac_volume_max = 0xff,
606 .misc_flags = OXYGEN_MISC_MIDI, 585 .misc_flags = OXYGEN_MISC_MIDI,
607 .function_flags = OXYGEN_FUNCTION_SPI | 586 .function_flags = OXYGEN_FUNCTION_SPI |
608 OXYGEN_FUNCTION_ENABLE_SPI_4_5, 587 OXYGEN_FUNCTION_ENABLE_SPI_4_5,
@@ -629,6 +608,8 @@ static const struct oxygen_model xonar_models[] = {
629 PLAYBACK_1_TO_SPDIF | 608 PLAYBACK_1_TO_SPDIF |
630 CAPTURE_0_FROM_I2S_2, 609 CAPTURE_0_FROM_I2S_2,
631 .dac_channels = 8, 610 .dac_channels = 8,
611 .dac_volume_min = 0,
612 .dac_volume_max = 127,
632 .function_flags = OXYGEN_FUNCTION_2WIRE, 613 .function_flags = OXYGEN_FUNCTION_2WIRE,
633 .dac_i2s_format = OXYGEN_I2S_FORMAT_LJUST, 614 .dac_i2s_format = OXYGEN_I2S_FORMAT_LJUST,
634 .adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST, 615 .adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST,