diff options
-rw-r--r-- | sound/pci/ac97/ac97_patch.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/sound/pci/ac97/ac97_patch.c b/sound/pci/ac97/ac97_patch.c index b584172c1104..0acf51dd4478 100644 --- a/sound/pci/ac97/ac97_patch.c +++ b/sound/pci/ac97/ac97_patch.c | |||
@@ -2145,8 +2145,13 @@ int patch_alc655(ac97_t * ac97) | |||
2145 | val = snd_ac97_read(ac97, 0x7a); /* misc control */ | 2145 | val = snd_ac97_read(ac97, 0x7a); /* misc control */ |
2146 | if (ac97->id == 0x414c4780) /* ALC658 */ | 2146 | if (ac97->id == 0x414c4780) /* ALC658 */ |
2147 | val &= ~(1 << 1); /* Pin 47 is spdif input pin */ | 2147 | val &= ~(1 << 1); /* Pin 47 is spdif input pin */ |
2148 | else /* ALC655 */ | 2148 | else { /* ALC655 */ |
2149 | val |= (1 << 1); /* Pin 47 is spdif input pin */ | 2149 | if (ac97->subsystem_vendor == 0x1462 && |
2150 | ac97->subsystem_device == 0x0131) /* MSI S270 laptop */ | ||
2151 | val &= ~(1 << 1); /* Pin 47 is EAPD (for internal speaker) */ | ||
2152 | else | ||
2153 | val |= (1 << 1); /* Pin 47 is spdif input pin */ | ||
2154 | } | ||
2150 | val &= ~(1 << 12); /* vref enable */ | 2155 | val &= ~(1 << 12); /* vref enable */ |
2151 | snd_ac97_write_cache(ac97, 0x7a, val); | 2156 | snd_ac97_write_cache(ac97, 0x7a, val); |
2152 | /* set default: spdif-in enabled, | 2157 | /* set default: spdif-in enabled, |