diff options
| -rw-r--r-- | sound/pci/maestro3.c | 10 |
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 | ||
