浏览代码

[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>
Timofei Bondarenko 17 年之前
父节点
当前提交
feb77712b0
共有 1 个文件被更改,包括 7 次插入0 次删除
  1. 7 0
      sound/pci/cmipci.c

+ 7 - 0
sound/pci/cmipci.c

@@ -869,6 +869,13 @@ static int snd_cmipci_pcm_prepare(struct cmipci *cm, struct cmipci_pcm *rec,
 	snd_cmipci_write(cm, CM_REG_CHFORMAT, val);
 	//snd_printd("cmipci: chformat = %08x\n", val);
 
+	if (!rec->is_dac && cm->chip_version) {
+		if (runtime->rate > 44100)
+			snd_cmipci_set_bit(cm, CM_REG_EXT_MISC, CM_ADC48K44K);
+		else
+			snd_cmipci_clear_bit(cm, CM_REG_EXT_MISC, CM_ADC48K44K);
+	}
+
 	rec->running = 0;
 	spin_unlock_irq(&cm->reg_lock);