diff options
Diffstat (limited to 'sound/pci/oxygen/xonar_pcm179x.c')
-rw-r--r-- | sound/pci/oxygen/xonar_pcm179x.c | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/sound/pci/oxygen/xonar_pcm179x.c b/sound/pci/oxygen/xonar_pcm179x.c index ba18fb546b4..d491fd6c0be 100644 --- a/sound/pci/oxygen/xonar_pcm179x.c +++ b/sound/pci/oxygen/xonar_pcm179x.c | |||
@@ -132,6 +132,18 @@ | |||
132 | * GPIO 5 <- 0 | 132 | * GPIO 5 <- 0 |
133 | */ | 133 | */ |
134 | 134 | ||
135 | /* | ||
136 | * Xonar HDAV1.3 Slim | ||
137 | * ------------------ | ||
138 | * | ||
139 | * CMI8788: | ||
140 | * | ||
141 | * GPIO 1 -> enable output | ||
142 | * | ||
143 | * TXD -> HDMI controller | ||
144 | * RXD <- HDMI controller | ||
145 | */ | ||
146 | |||
135 | #include <linux/pci.h> | 147 | #include <linux/pci.h> |
136 | #include <linux/delay.h> | 148 | #include <linux/delay.h> |
137 | #include <linux/mutex.h> | 149 | #include <linux/mutex.h> |
@@ -362,7 +374,6 @@ static void xonar_st_init_common(struct oxygen *chip) | |||
362 | { | 374 | { |
363 | struct xonar_pcm179x *data = chip->model_data; | 375 | struct xonar_pcm179x *data = chip->model_data; |
364 | 376 | ||
365 | data->generic.anti_pop_delay = 100; | ||
366 | data->generic.output_enable_bit = GPIO_ST_OUTPUT_ENABLE; | 377 | data->generic.output_enable_bit = GPIO_ST_OUTPUT_ENABLE; |
367 | data->dacs = chip->model.private_data ? 4 : 1; | 378 | data->dacs = chip->model.private_data ? 4 : 1; |
368 | data->hp_gain_offset = 2*-18; | 379 | data->hp_gain_offset = 2*-18; |
@@ -408,6 +419,7 @@ static void xonar_st_init(struct oxygen *chip) | |||
408 | { | 419 | { |
409 | struct xonar_pcm179x *data = chip->model_data; | 420 | struct xonar_pcm179x *data = chip->model_data; |
410 | 421 | ||
422 | data->generic.anti_pop_delay = 100; | ||
411 | data->has_cs2000 = 1; | 423 | data->has_cs2000 = 1; |
412 | data->cs2000_fun_cfg_1 = CS2000_REF_CLK_DIV_1; | 424 | data->cs2000_fun_cfg_1 = CS2000_REF_CLK_DIV_1; |
413 | 425 | ||
@@ -428,6 +440,7 @@ static void xonar_stx_init(struct oxygen *chip) | |||
428 | struct xonar_pcm179x *data = chip->model_data; | 440 | struct xonar_pcm179x *data = chip->model_data; |
429 | 441 | ||
430 | xonar_st_init_i2c(chip); | 442 | xonar_st_init_i2c(chip); |
443 | data->generic.anti_pop_delay = 800; | ||
431 | data->generic.ext_power_reg = OXYGEN_GPI_DATA; | 444 | data->generic.ext_power_reg = OXYGEN_GPI_DATA; |
432 | data->generic.ext_power_int_reg = OXYGEN_GPI_INTERRUPT_MASK; | 445 | data->generic.ext_power_int_reg = OXYGEN_GPI_INTERRUPT_MASK; |
433 | data->generic.ext_power_bit = GPI_EXT_POWER; | 446 | data->generic.ext_power_bit = GPI_EXT_POWER; |
@@ -915,13 +928,6 @@ static int xonar_d2_control_filter(struct snd_kcontrol_new *template) | |||
915 | return 0; | 928 | return 0; |
916 | } | 929 | } |
917 | 930 | ||
918 | static int xonar_st_control_filter(struct snd_kcontrol_new *template) | ||
919 | { | ||
920 | if (!strncmp(template->name, "CD Capture ", 11)) | ||
921 | return 1; /* no CD input */ | ||
922 | return 0; | ||
923 | } | ||
924 | |||
925 | static int add_pcm1796_controls(struct oxygen *chip) | 931 | static int add_pcm1796_controls(struct oxygen *chip) |
926 | { | 932 | { |
927 | int err; | 933 | int err; |
@@ -991,7 +997,8 @@ static const struct oxygen_model model_xonar_d2 = { | |||
991 | CAPTURE_0_FROM_I2S_2 | | 997 | CAPTURE_0_FROM_I2S_2 | |
992 | CAPTURE_1_FROM_SPDIF | | 998 | CAPTURE_1_FROM_SPDIF | |
993 | MIDI_OUTPUT | | 999 | MIDI_OUTPUT | |
994 | MIDI_INPUT, | 1000 | MIDI_INPUT | |
1001 | AC97_CD_INPUT, | ||
995 | .dac_channels = 8, | 1002 | .dac_channels = 8, |
996 | .dac_volume_min = 255 - 2*60, | 1003 | .dac_volume_min = 255 - 2*60, |
997 | .dac_volume_max = 255, | 1004 | .dac_volume_max = 255, |
@@ -1037,7 +1044,6 @@ static const struct oxygen_model model_xonar_st = { | |||
1037 | .longname = "Asus Virtuoso 100", | 1044 | .longname = "Asus Virtuoso 100", |
1038 | .chip = "AV200", | 1045 | .chip = "AV200", |
1039 | .init = xonar_st_init, | 1046 | .init = xonar_st_init, |
1040 | .control_filter = xonar_st_control_filter, | ||
1041 | .mixer_init = xonar_st_mixer_init, | 1047 | .mixer_init = xonar_st_mixer_init, |
1042 | .cleanup = xonar_st_cleanup, | 1048 | .cleanup = xonar_st_cleanup, |
1043 | .suspend = xonar_st_suspend, | 1049 | .suspend = xonar_st_suspend, |
@@ -1108,6 +1114,9 @@ int __devinit get_xonar_pcm179x_model(struct oxygen *chip, | |||
1108 | chip->model.resume = xonar_stx_resume; | 1114 | chip->model.resume = xonar_stx_resume; |
1109 | chip->model.set_dac_params = set_pcm1796_params; | 1115 | chip->model.set_dac_params = set_pcm1796_params; |
1110 | break; | 1116 | break; |
1117 | case 0x835e: | ||
1118 | snd_printk(KERN_ERR "the HDAV1.3 Slim is not supported\n"); | ||
1119 | return -ENODEV; | ||
1111 | default: | 1120 | default: |
1112 | return -EINVAL; | 1121 | return -EINVAL; |
1113 | } | 1122 | } |