@@ -122,6 +122,7 @@ struct alc_spec {
122
122
unsigned int ultra_low_power :1 ;
123
123
unsigned int has_hs_key :1 ;
124
124
unsigned int no_internal_mic_pin :1 ;
125
+ unsigned int en_3kpull_low :1 ;
125
126
126
127
/* for PLL fix */
127
128
hda_nid_t pll_nid ;
@@ -3622,6 +3623,7 @@ static void alc256_shutup(struct hda_codec *codec)
3622
3623
if (!hp_pin )
3623
3624
hp_pin = 0x21 ;
3624
3625
3626
+ alc_update_coefex_idx (codec , 0x57 , 0x04 , 0x0007 , 0x1 ); /* Low power */
3625
3627
hp_pin_sense = snd_hda_jack_detect (codec , hp_pin );
3626
3628
3627
3629
if (hp_pin_sense )
@@ -3638,8 +3640,7 @@ static void alc256_shutup(struct hda_codec *codec)
3638
3640
/* If disable 3k pulldown control for alc257, the Mic detection will not work correctly
3639
3641
* when booting with headset plugged. So skip setting it for the codec alc257
3640
3642
*/
3641
- if (codec -> core .vendor_id != 0x10ec0236 &&
3642
- codec -> core .vendor_id != 0x10ec0257 )
3643
+ if (spec -> en_3kpull_low )
3643
3644
alc_update_coef_idx (codec , 0x46 , 0 , 3 << 12 );
3644
3645
3645
3646
if (!spec -> no_shutup_pins )
@@ -10682,6 +10683,8 @@ static int patch_alc269(struct hda_codec *codec)
10682
10683
spec -> shutup = alc256_shutup ;
10683
10684
spec -> init_hook = alc256_init ;
10684
10685
spec -> gen .mixer_nid = 0 ; /* ALC256 does not have any loopback mixer path */
10686
+ if (codec -> bus -> pci -> vendor == PCI_VENDOR_ID_AMD )
10687
+ spec -> en_3kpull_low = true;
10685
10688
break ;
10686
10689
case 0x10ec0257 :
10687
10690
spec -> codec_variant = ALC269_TYPE_ALC257 ;
0 commit comments