aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/oxygen
diff options
context:
space:
mode:
authorClemens Ladisch <clemens@ladisch.de>2011-01-10 10:16:08 -0500
committerTakashi Iwai <tiwai@suse.de>2011-01-10 10:46:35 -0500
commitce2c492090aa55ff2764f473abdb3c5a76b4a7c4 (patch)
treed69dc0953758f9034ca4c9889b14c6b1321019d8 /sound/pci/oxygen
parent5b8bf2a54fb13e40519ee846ce27bc8a2d7a7878 (diff)
ALSA: virtuoso: reduce MCLK in double rate modes
For the CSxxxx and AKxxxx DAC/ADC chips, the MCLK factor in double rate modes (64-96 kHz) can be reduced to 128x without reducing sound quality. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/oxygen')
-rw-r--r--sound/pci/oxygen/oxygen.c6
-rw-r--r--sound/pci/oxygen/xonar_cs43xx.c4
-rw-r--r--sound/pci/oxygen/xonar_pcm179x.c6
3 files changed, 9 insertions, 7 deletions
diff --git a/sound/pci/oxygen/oxygen.c b/sound/pci/oxygen/oxygen.c
index 784d500c700f..2316884afd25 100644
--- a/sound/pci/oxygen/oxygen.c
+++ b/sound/pci/oxygen/oxygen.c
@@ -588,7 +588,7 @@ static const struct oxygen_model model_generic = {
588 .dac_volume_max = 255, 588 .dac_volume_max = 255,
589 .function_flags = OXYGEN_FUNCTION_SPI | 589 .function_flags = OXYGEN_FUNCTION_SPI |
590 OXYGEN_FUNCTION_ENABLE_SPI_4_5, 590 OXYGEN_FUNCTION_ENABLE_SPI_4_5,
591 .dac_mclks = OXYGEN_MCLKS(256, 256, 128), 591 .dac_mclks = OXYGEN_MCLKS(256, 128, 128),
592 .adc_mclks = OXYGEN_MCLKS(256, 256, 128), 592 .adc_mclks = OXYGEN_MCLKS(256, 256, 128),
593 .dac_i2s_format = OXYGEN_I2S_FORMAT_LJUST, 593 .dac_i2s_format = OXYGEN_I2S_FORMAT_LJUST,
594 .adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST, 594 .adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST,
@@ -643,8 +643,10 @@ static int __devinit get_oxygen_model(struct oxygen *chip,
643 chip->model.dump_registers = dump_ak4396_registers; 643 chip->model.dump_registers = dump_ak4396_registers;
644 chip->model.device_config = PLAYBACK_0_TO_I2S | 644 chip->model.device_config = PLAYBACK_0_TO_I2S |
645 PLAYBACK_1_TO_SPDIF; 645 PLAYBACK_1_TO_SPDIF;
646 if (id->driver_data == MODEL_FANTASIA) 646 if (id->driver_data == MODEL_FANTASIA) {
647 chip->model.device_config |= CAPTURE_0_FROM_I2S_1; 647 chip->model.device_config |= CAPTURE_0_FROM_I2S_1;
648 chip->model.adc_mclks = OXYGEN_MCLKS(256, 128, 128);
649 }
648 chip->model.dac_channels_pcm = 2; 650 chip->model.dac_channels_pcm = 2;
649 chip->model.dac_channels_mixer = 2; 651 chip->model.dac_channels_mixer = 2;
650 break; 652 break;
diff --git a/sound/pci/oxygen/xonar_cs43xx.c b/sound/pci/oxygen/xonar_cs43xx.c
index b651938f3248..55c52c7e19b2 100644
--- a/sound/pci/oxygen/xonar_cs43xx.c
+++ b/sound/pci/oxygen/xonar_cs43xx.c
@@ -430,8 +430,8 @@ static const struct oxygen_model model_xonar_d1 = {
430 .dac_volume_min = 127 - 60, 430 .dac_volume_min = 127 - 60,
431 .dac_volume_max = 127, 431 .dac_volume_max = 127,
432 .function_flags = OXYGEN_FUNCTION_2WIRE, 432 .function_flags = OXYGEN_FUNCTION_2WIRE,
433 .dac_mclks = OXYGEN_MCLKS(256, 256, 128), 433 .dac_mclks = OXYGEN_MCLKS(256, 128, 128),
434 .adc_mclks = OXYGEN_MCLKS(256, 256, 128), 434 .adc_mclks = OXYGEN_MCLKS(256, 128, 128),
435 .dac_i2s_format = OXYGEN_I2S_FORMAT_LJUST, 435 .dac_i2s_format = OXYGEN_I2S_FORMAT_LJUST,
436 .adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST, 436 .adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST,
437}; 437};
diff --git a/sound/pci/oxygen/xonar_pcm179x.c b/sound/pci/oxygen/xonar_pcm179x.c
index 9787193f6ed3..003c4800400b 100644
--- a/sound/pci/oxygen/xonar_pcm179x.c
+++ b/sound/pci/oxygen/xonar_pcm179x.c
@@ -1032,7 +1032,7 @@ static const struct oxygen_model model_xonar_d2 = {
1032 .function_flags = OXYGEN_FUNCTION_SPI | 1032 .function_flags = OXYGEN_FUNCTION_SPI |
1033 OXYGEN_FUNCTION_ENABLE_SPI_4_5, 1033 OXYGEN_FUNCTION_ENABLE_SPI_4_5,
1034 .dac_mclks = OXYGEN_MCLKS(512, 128, 128), 1034 .dac_mclks = OXYGEN_MCLKS(512, 128, 128),
1035 .adc_mclks = OXYGEN_MCLKS(256, 256, 128), 1035 .adc_mclks = OXYGEN_MCLKS(256, 128, 128),
1036 .dac_i2s_format = OXYGEN_I2S_FORMAT_I2S, 1036 .dac_i2s_format = OXYGEN_I2S_FORMAT_I2S,
1037 .adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST, 1037 .adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST,
1038}; 1038};
@@ -1066,7 +1066,7 @@ static const struct oxygen_model model_xonar_hdav = {
1066 .misc_flags = OXYGEN_MISC_MIDI, 1066 .misc_flags = OXYGEN_MISC_MIDI,
1067 .function_flags = OXYGEN_FUNCTION_2WIRE, 1067 .function_flags = OXYGEN_FUNCTION_2WIRE,
1068 .dac_mclks = OXYGEN_MCLKS(512, 128, 128), 1068 .dac_mclks = OXYGEN_MCLKS(512, 128, 128),
1069 .adc_mclks = OXYGEN_MCLKS(256, 256, 128), 1069 .adc_mclks = OXYGEN_MCLKS(256, 128, 128),
1070 .dac_i2s_format = OXYGEN_I2S_FORMAT_I2S, 1070 .dac_i2s_format = OXYGEN_I2S_FORMAT_I2S,
1071 .adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST, 1071 .adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST,
1072}; 1072};
@@ -1097,7 +1097,7 @@ static const struct oxygen_model model_xonar_st = {
1097 .dac_volume_max = 255, 1097 .dac_volume_max = 255,
1098 .function_flags = OXYGEN_FUNCTION_2WIRE, 1098 .function_flags = OXYGEN_FUNCTION_2WIRE,
1099 .dac_mclks = OXYGEN_MCLKS(512, 128, 128), 1099 .dac_mclks = OXYGEN_MCLKS(512, 128, 128),
1100 .adc_mclks = OXYGEN_MCLKS(256, 256, 128), 1100 .adc_mclks = OXYGEN_MCLKS(256, 128, 128),
1101 .dac_i2s_format = OXYGEN_I2S_FORMAT_I2S, 1101 .dac_i2s_format = OXYGEN_I2S_FORMAT_I2S,
1102 .adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST, 1102 .adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST,
1103}; 1103};