From cae76f94f5a1e7e10c2b574a293c4822f6b8657f Mon Sep 17 00:00:00 2001 From: Timofei Bondarenko Date: Wed, 7 Nov 2007 15:49:57 +0100 Subject: [PATCH] [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 Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela --- sound/pci/cmipci.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sound/pci/cmipci.c b/sound/pci/cmipci.c index 3a2d942f22bb7..d1f23ebed2ae5 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, 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); -- 2.39.5