@@ -4689,6 +4689,22 @@ static void alc290_fixup_mono_speakers(struct hda_codec *codec,
4689
4689
}
4690
4690
}
4691
4691
4692
+ static void alc298_fixup_speaker_volume (struct hda_codec * codec ,
4693
+ const struct hda_fixup * fix , int action )
4694
+ {
4695
+ if (action == HDA_FIXUP_ACT_PRE_PROBE ) {
4696
+ /* The speaker is routed to the Node 0x06 by a mistake, as a result
4697
+ we can't adjust the speaker's volume since this node does not has
4698
+ Amp-out capability. we change the speaker's route to:
4699
+ Node 0x02 (Audio Output) -> Node 0x0c (Audio Mixer) -> Node 0x17 (
4700
+ Pin Complex), since Node 0x02 has Amp-out caps, we can adjust
4701
+ speaker's volume now. */
4702
+
4703
+ hda_nid_t conn1 [1 ] = { 0x0c };
4704
+ snd_hda_override_conn_list (codec , 0x17 , 1 , conn1 );
4705
+ }
4706
+ }
4707
+
4692
4708
/* Hook to update amp GPIO4 for automute */
4693
4709
static void alc280_hp_gpio4_automute_hook (struct hda_codec * codec ,
4694
4710
struct hda_jack_callback * jack )
@@ -4838,6 +4854,7 @@ enum {
4838
4854
ALC280_FIXUP_HP_HEADSET_MIC ,
4839
4855
ALC221_FIXUP_HP_FRONT_MIC ,
4840
4856
ALC292_FIXUP_TPT460 ,
4857
+ ALC298_FIXUP_SPK_VOLUME ,
4841
4858
};
4842
4859
4843
4860
static const struct hda_fixup alc269_fixups [] = {
@@ -5493,6 +5510,12 @@ static const struct hda_fixup alc269_fixups[] = {
5493
5510
.chained = true,
5494
5511
.chain_id = ALC293_FIXUP_LENOVO_SPK_NOISE ,
5495
5512
},
5513
+ [ALC298_FIXUP_SPK_VOLUME ] = {
5514
+ .type = HDA_FIXUP_FUNC ,
5515
+ .v .func = alc298_fixup_speaker_volume ,
5516
+ .chained = true,
5517
+ .chain_id = ALC298_FIXUP_DELL1_MIC_NO_PRESENCE ,
5518
+ },
5496
5519
};
5497
5520
5498
5521
static const struct snd_pci_quirk alc269_fixup_tbl [] = {
@@ -5539,6 +5562,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
5539
5562
SND_PCI_QUIRK (0x1028 , 0x0704 , "Dell XPS 13 9350" , ALC256_FIXUP_DELL_XPS_13_HEADPHONE_NOISE ),
5540
5563
SND_PCI_QUIRK (0x1028 , 0x0725 , "Dell Inspiron 3162" , ALC255_FIXUP_DELL_SPK_NOISE ),
5541
5564
SND_PCI_QUIRK (0x1028 , 0x075b , "Dell XPS 13 9360" , ALC256_FIXUP_DELL_XPS_13_HEADPHONE_NOISE ),
5565
+ SND_PCI_QUIRK (0x1028 , 0x075d , "Dell AIO" , ALC298_FIXUP_SPK_VOLUME ),
5542
5566
SND_PCI_QUIRK (0x1028 , 0x164a , "Dell" , ALC293_FIXUP_DELL1_MIC_NO_PRESENCE ),
5543
5567
SND_PCI_QUIRK (0x1028 , 0x164b , "Dell" , ALC293_FIXUP_DELL1_MIC_NO_PRESENCE ),
5544
5568
SND_PCI_QUIRK (0x103c , 0x1586 , "HP" , ALC269_FIXUP_HP_MUTE_LED_MIC2 ),
@@ -5813,6 +5837,10 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = {
5813
5837
{0x14 , 0x90170130 },
5814
5838
{0x1b , 0x01014020 },
5815
5839
{0x21 , 0x0221103f }),
5840
+ SND_HDA_PIN_QUIRK (0x10ec0255 , 0x1028 , "Dell" , ALC255_FIXUP_DELL1_MIC_NO_PRESENCE ,
5841
+ {0x14 , 0x90170130 },
5842
+ {0x1b , 0x02011020 },
5843
+ {0x21 , 0x0221103f }),
5816
5844
SND_HDA_PIN_QUIRK (0x10ec0255 , 0x1028 , "Dell" , ALC255_FIXUP_DELL1_MIC_NO_PRESENCE ,
5817
5845
{0x14 , 0x90170150 },
5818
5846
{0x1b , 0x02011020 },
@@ -6549,6 +6577,7 @@ enum {
6549
6577
ALC668_FIXUP_ASUS_Nx51 ,
6550
6578
ALC891_FIXUP_HEADSET_MODE ,
6551
6579
ALC891_FIXUP_DELL_MIC_NO_PRESENCE ,
6580
+ ALC662_FIXUP_ACER_VERITON ,
6552
6581
};
6553
6582
6554
6583
static const struct hda_fixup alc662_fixups [] = {
@@ -6818,6 +6847,13 @@ static const struct hda_fixup alc662_fixups[] = {
6818
6847
.chained = true,
6819
6848
.chain_id = ALC891_FIXUP_HEADSET_MODE
6820
6849
},
6850
+ [ALC662_FIXUP_ACER_VERITON ] = {
6851
+ .type = HDA_FIXUP_PINS ,
6852
+ .v .pins = (const struct hda_pintbl []) {
6853
+ { 0x15 , 0x50170120 }, /* no internal speaker */
6854
+ { }
6855
+ }
6856
+ },
6821
6857
};
6822
6858
6823
6859
static const struct snd_pci_quirk alc662_fixup_tbl [] = {
@@ -6856,6 +6892,7 @@ static const struct snd_pci_quirk alc662_fixup_tbl[] = {
6856
6892
SND_PCI_QUIRK (0x17aa , 0x38af , "Lenovo Ideapad Y550P" , ALC662_FIXUP_IDEAPAD ),
6857
6893
SND_PCI_QUIRK (0x17aa , 0x3a0d , "Lenovo Ideapad Y550" , ALC662_FIXUP_IDEAPAD ),
6858
6894
SND_PCI_QUIRK (0x19da , 0xa130 , "Zotac Z68" , ALC662_FIXUP_ZOTAC_Z68 ),
6895
+ SND_PCI_QUIRK (0x1b0a , 0x01b8 , "ACER Veriton" , ALC662_FIXUP_ACER_VERITON ),
6859
6896
SND_PCI_QUIRK (0x1b35 , 0x2206 , "CZC P10T" , ALC662_FIXUP_CZC_P10T ),
6860
6897
6861
6898
#if 0
0 commit comments