From: Takashi Iwai Date: Tue, 10 Jan 2006 10:14:49 +0000 (+0100) Subject: [ALSA] pcxhr - Fix the sample rate changes X-Git-Tag: v2.6.16-rc2~1^2~7^2~40 X-Git-Url: http://pileus.org/git/?a=commitdiff_plain;h=8937fd88558d5a741d6ed29d5f8c327646a4f1db;p=~andy%2Flinux [ALSA] pcxhr - Fix the sample rate changes Modules: Digigram PCXHR driver Fix the hardware set up when the sample rate is changed multiple times. Signed-off-by: Takashi Iwai --- diff --git a/sound/pci/pcxhr/pcxhr.c b/sound/pci/pcxhr/pcxhr.c index b8c0853a827..57fe9538f5a 100644 --- a/sound/pci/pcxhr/pcxhr.c +++ b/sound/pci/pcxhr/pcxhr.c @@ -744,13 +744,14 @@ static int pcxhr_prepare(struct snd_pcm_substream *subs) /* only the first stream can choose the sample rate */ /* the further opened streams will be limited to its frequency (see open) */ /* set the clock only once (first stream) */ - if (mgr->sample_rate == 0) { + if (mgr->sample_rate != subs->runtime->rate) { err = pcxhr_set_clock(mgr, subs->runtime->rate); if (err) break; + if (mgr->sample_rate == 0) + /* start the DSP-timer */ + err = pcxhr_hardware_timer(mgr, 1); mgr->sample_rate = subs->runtime->rate; - - err = pcxhr_hardware_timer(mgr, 1); /* start the DSP-timer */ } } while(0); /* do only once (so we can use break instead of goto) */