diff options
| -rw-r--r-- | sound/pci/ac97/ac97_patch.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/sound/pci/ac97/ac97_patch.c b/sound/pci/ac97/ac97_patch.c index 37fabf75daa7..b188a4df58cb 100644 --- a/sound/pci/ac97/ac97_patch.c +++ b/sound/pci/ac97/ac97_patch.c | |||
| @@ -1962,9 +1962,11 @@ static int snd_ac97_ad1888_downmix_put(struct snd_kcontrol *kcontrol, struct snd | |||
| 1962 | static void ad1888_update_jacks(struct snd_ac97 *ac97) | 1962 | static void ad1888_update_jacks(struct snd_ac97 *ac97) |
| 1963 | { | 1963 | { |
| 1964 | unsigned short val = 0; | 1964 | unsigned short val = 0; |
| 1965 | if (! is_shared_linein(ac97)) | 1965 | /* clear LODIS if shared jack is to be used for Surround out */ |
| 1966 | if (is_shared_linein(ac97)) | ||
| 1966 | val |= (1 << 12); | 1967 | val |= (1 << 12); |
| 1967 | if (! is_shared_micin(ac97)) | 1968 | /* clear CLDIS if shared jack is to be used for C/LFE out */ |
| 1969 | if (is_shared_micin(ac97)) | ||
| 1968 | val |= (1 << 11); | 1970 | val |= (1 << 11); |
| 1969 | /* shared Line-In */ | 1971 | /* shared Line-In */ |
| 1970 | snd_ac97_update_bits(ac97, AC97_AD_MISC, (1 << 11) | (1 << 12), val); | 1972 | snd_ac97_update_bits(ac97, AC97_AD_MISC, (1 << 11) | (1 << 12), val); |
| @@ -2136,8 +2138,9 @@ static const struct snd_kcontrol_new snd_ac97_ad1985_controls[] = { | |||
| 2136 | static void ad1985_update_jacks(struct snd_ac97 *ac97) | 2138 | static void ad1985_update_jacks(struct snd_ac97 *ac97) |
| 2137 | { | 2139 | { |
| 2138 | ad1888_update_jacks(ac97); | 2140 | ad1888_update_jacks(ac97); |
| 2141 | /* clear OMS if shared jack is to be used for C/LFE out */ | ||
| 2139 | snd_ac97_update_bits(ac97, AC97_AD_SERIAL_CFG, 1 << 9, | 2142 | snd_ac97_update_bits(ac97, AC97_AD_SERIAL_CFG, 1 << 9, |
| 2140 | is_shared_micin(ac97) ? 0 : 1 << 9); | 2143 | is_shared_micin(ac97) ? 1 << 9 : 0); |
| 2141 | } | 2144 | } |
| 2142 | 2145 | ||
| 2143 | static int patch_ad1985_specific(struct snd_ac97 *ac97) | 2146 | static int patch_ad1985_specific(struct snd_ac97 *ac97) |
| @@ -2418,9 +2421,9 @@ static void ad1986_update_jacks(struct snd_ac97 *ac97) | |||
| 2418 | unsigned short ser_val; | 2421 | unsigned short ser_val; |
| 2419 | 2422 | ||
| 2420 | /* disable SURROUND and CENTER/LFE if not surround mode */ | 2423 | /* disable SURROUND and CENTER/LFE if not surround mode */ |
| 2421 | if (! is_surround_on(ac97)) | 2424 | if (!is_surround_on(ac97)) |
| 2422 | misc_val |= AC97_AD1986_SODIS; | 2425 | misc_val |= AC97_AD1986_SODIS; |
| 2423 | if (! is_clfe_on(ac97)) | 2426 | if (!is_clfe_on(ac97)) |
| 2424 | misc_val |= AC97_AD1986_CLDIS; | 2427 | misc_val |= AC97_AD1986_CLDIS; |
| 2425 | 2428 | ||
| 2426 | /* select line input (default=LINE_IN, SURROUND or MIC_1/2) */ | 2429 | /* select line input (default=LINE_IN, SURROUND or MIC_1/2) */ |
