Browse Source

[ALSA] via82xx - Fix SPDIF sample rates

VIA82xx driver
Fixed the sample rates set in the fourth DXS channel with Non-VRA mode.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai 20 years ago
parent
commit
16d3f140fc
1 changed files with 4 additions and 4 deletions
  1. 4 4
      sound/pci/via82xx.c

+ 4 - 4
sound/pci/via82xx.c

@@ -929,12 +929,12 @@ static int snd_via8233_playback_prepare(snd_pcm_substream_t *substream)
 
 
 	if ((rate_changed = via_lock_rate(&chip->rates[0], ac97_rate)) < 0)
 	if ((rate_changed = via_lock_rate(&chip->rates[0], ac97_rate)) < 0)
 		return rate_changed;
 		return rate_changed;
-	if (rate_changed) {
+	if (rate_changed)
 		snd_ac97_set_rate(chip->ac97, AC97_PCM_FRONT_DAC_RATE,
 		snd_ac97_set_rate(chip->ac97, AC97_PCM_FRONT_DAC_RATE,
 				  chip->no_vra ? 48000 : runtime->rate);
 				  chip->no_vra ? 48000 : runtime->rate);
-		snd_ac97_set_rate(chip->ac97, AC97_SPDIF,
-				  chip->no_vra ? 48000 : runtime->rate);
-	}
+	if (chip->spdif_on && viadev->reg_offset == 0x30)
+		snd_ac97_set_rate(chip->ac97, AC97_SPDIF, runtime->rate);
+
 	if (runtime->rate == 48000)
 	if (runtime->rate == 48000)
 		rbits = 0xfffff;
 		rbits = 0xfffff;
 	else
 	else