diff options
Diffstat (limited to 'sound')
-rw-r--r-- | sound/pci/pcxhr/pcxhr.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/sound/pci/pcxhr/pcxhr.c b/sound/pci/pcxhr/pcxhr.c index b8c0853a8278..57fe9538f5a4 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) | |||
744 | /* only the first stream can choose the sample rate */ | 744 | /* only the first stream can choose the sample rate */ |
745 | /* the further opened streams will be limited to its frequency (see open) */ | 745 | /* the further opened streams will be limited to its frequency (see open) */ |
746 | /* set the clock only once (first stream) */ | 746 | /* set the clock only once (first stream) */ |
747 | if (mgr->sample_rate == 0) { | 747 | if (mgr->sample_rate != subs->runtime->rate) { |
748 | err = pcxhr_set_clock(mgr, subs->runtime->rate); | 748 | err = pcxhr_set_clock(mgr, subs->runtime->rate); |
749 | if (err) | 749 | if (err) |
750 | break; | 750 | break; |
751 | if (mgr->sample_rate == 0) | ||
752 | /* start the DSP-timer */ | ||
753 | err = pcxhr_hardware_timer(mgr, 1); | ||
751 | mgr->sample_rate = subs->runtime->rate; | 754 | mgr->sample_rate = subs->runtime->rate; |
752 | |||
753 | err = pcxhr_hardware_timer(mgr, 1); /* start the DSP-timer */ | ||
754 | } | 755 | } |
755 | } while(0); /* do only once (so we can use break instead of goto) */ | 756 | } while(0); /* do only once (so we can use break instead of goto) */ |
756 | 757 | ||