aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/pci/maestro3.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/sound/pci/maestro3.c b/sound/pci/maestro3.c
index 965d5c6f2fa0..17ae92613de4 100644
--- a/sound/pci/maestro3.c
+++ b/sound/pci/maestro3.c
@@ -1929,6 +1929,16 @@ snd_m3_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short val)
1929 return; 1929 return;
1930 snd_m3_outw(chip, val, CODEC_DATA); 1930 snd_m3_outw(chip, val, CODEC_DATA);
1931 snd_m3_outb(chip, reg & 0x7f, CODEC_COMMAND); 1931 snd_m3_outb(chip, reg & 0x7f, CODEC_COMMAND);
1932 /*
1933 * Workaround for buggy ES1988 integrated AC'97 codec. It remains silent
1934 * until the MASTER volume or mute is touched (alsactl restore does not
1935 * work).
1936 */
1937 if (ac97->id == 0x45838308 && reg == AC97_MASTER) {
1938 snd_m3_ac97_wait(chip);
1939 snd_m3_outw(chip, val, CODEC_DATA);
1940 snd_m3_outb(chip, reg & 0x7f, CODEC_COMMAND);
1941 }
1932} 1942}
1933 1943
1934 1944