aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimofei Bondarenko <tim@ipi.ac.ru>2007-11-07 09:49:57 -0500
committerJaroslav Kysela <perex@perex.cz>2008-01-31 11:29:19 -0500
commitfeb77712b0e780f04507cdda0529088ff0f3286f (patch)
tree190b0e7a0d2a63e4f7234ad9f2352199ed364c72
parentb98f9334e25c463fbfbb1cc468c66845e1c8e46a (diff)
[ALSA] cmipci - utilize ADC48K44K bit
Setting the ADC48K44K greatly improves capture quality at 48k sampling rate. With this bit clear ADC does ZOH interpolation of every 22th sample at 48k. At frequencies higher than 48k there ADC performs a little better with ADC48K44K bit set. At 44.1k ADC performs a little better with this bit clear. At frequencies below 44.1k there is no difference. Signed-off-by: Timofei Bondarenko <tim@ipi.ac.ru> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
-rw-r--r--sound/pci/cmipci.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sound/pci/cmipci.c b/sound/pci/cmipci.c
index 3a2d942f22bb..d1f23ebed2ae 100644
--- a/sound/pci/cmipci.c
+++ b/sound/pci/cmipci.c
@@ -869,6 +869,13 @@ static int snd_cmipci_pcm_prepare(struct cmipci *cm, struct cmipci_pcm *rec,
869 snd_cmipci_write(cm, CM_REG_CHFORMAT, val); 869 snd_cmipci_write(cm, CM_REG_CHFORMAT, val);
870 //snd_printd("cmipci: chformat = %08x\n", val); 870 //snd_printd("cmipci: chformat = %08x\n", val);
871 871
872 if (!rec->is_dac && cm->chip_version) {
873 if (runtime->rate > 44100)
874 snd_cmipci_set_bit(cm, CM_REG_EXT_MISC, CM_ADC48K44K);
875 else
876 snd_cmipci_clear_bit(cm, CM_REG_EXT_MISC, CM_ADC48K44K);
877 }
878
872 rec->running = 0; 879 rec->running = 0;
873 spin_unlock_irq(&cm->reg_lock); 880 spin_unlock_irq(&cm->reg_lock);
874 881