diff options
Diffstat (limited to 'sound/pci/ac97/ac97_pcm.c')
-rw-r--r-- | sound/pci/ac97/ac97_pcm.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/sound/pci/ac97/ac97_pcm.c b/sound/pci/ac97/ac97_pcm.c index dd289b9512e1..ded13165d635 100644 --- a/sound/pci/ac97/ac97_pcm.c +++ b/sound/pci/ac97/ac97_pcm.c | |||
@@ -303,6 +303,15 @@ int snd_ac97_set_rate(ac97_t *ac97, int reg, unsigned int rate) | |||
303 | AC97_EA_DRA, dbl ? AC97_EA_DRA : 0); | 303 | AC97_EA_DRA, dbl ? AC97_EA_DRA : 0); |
304 | snd_ac97_update(ac97, reg, tmp & 0xffff); | 304 | snd_ac97_update(ac97, reg, tmp & 0xffff); |
305 | snd_ac97_read(ac97, reg); | 305 | snd_ac97_read(ac97, reg); |
306 | if ((ac97->ext_id & AC97_EI_DRA) && reg == AC97_PCM_FRONT_DAC_RATE) { | ||
307 | /* Intel controllers require double rate data to be put in | ||
308 | * slots 7+8 | ||
309 | */ | ||
310 | snd_ac97_update_bits(ac97, AC97_GENERAL_PURPOSE, | ||
311 | AC97_GP_DRSS_MASK, | ||
312 | dbl ? AC97_GP_DRSS_78 : 0); | ||
313 | snd_ac97_read(ac97, AC97_GENERAL_PURPOSE); | ||
314 | } | ||
306 | return 0; | 315 | return 0; |
307 | } | 316 | } |
308 | 317 | ||