Message ID | 1438571029-3348-1-git-send-email-hui.wang@canonical.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Mon, 03 Aug 2015 05:03:49 +0200, Hui Wang wrote: > > To cleanup the pin_quirk table: > - rewrite the pin_config_match(), comparing all pins on the machine > with the corresponding pins in the quirk table. > - remove all 0x4xxxxxxx pin configurations from pin_quirk table > - after removing the 0x4xxxxxxx pin configurations, some pin tables > are exactly same, so removing the redudant pin tables. > > Signed-off-by: Hui Wang <hui.wang@canonical.com> Applied now, but to for-next branch, i.e. for 4.3 kernel. thanks, Takashi > --- > sound/pci/hda/hda_auto_parser.c | 27 +++- > sound/pci/hda/patch_realtek.c | 299 ++++------------------------------------ > 2 files changed, 48 insertions(+), 278 deletions(-) > > diff --git a/sound/pci/hda/hda_auto_parser.c b/sound/pci/hda/hda_auto_parser.c > index 03b7399..7f57a14 100644 > --- a/sound/pci/hda/hda_auto_parser.c > +++ b/sound/pci/hda/hda_auto_parser.c > @@ -887,11 +887,32 @@ EXPORT_SYMBOL_GPL(snd_hda_apply_fixup); > static bool pin_config_match(struct hda_codec *codec, > const struct hda_pintbl *pins) > { > - for (; pins->nid; pins++) { > - u32 def_conf = snd_hda_codec_get_pincfg(codec, pins->nid); > - if (pins->val != def_conf) > + int i; > + > + for (i = 0; i < codec->init_pins.used; i++) { > + struct hda_pincfg *pin = snd_array_elem(&codec->init_pins, i); > + hda_nid_t nid = pin->nid; > + u32 cfg = pin->cfg; > + const struct hda_pintbl *t_pins; > + int found; > + > + t_pins = pins; > + found = 0; > + for (; t_pins->nid; t_pins++) { > + if (t_pins->nid == nid) { > + found = 1; > + if (t_pins->val == cfg) > + break; > + else if ((cfg & 0xf0000000) == 0x40000000 && (t_pins->val & 0xf0000000) == 0x40000000) > + break; > + else > + return false; > + } > + } > + if (!found && (cfg & 0xf0000000) != 0x40000000) > return false; > } > + > return true; > } > > diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c > index 18ae17e..d9a8b9f 100644 > --- a/sound/pci/hda/patch_realtek.c > +++ b/sound/pci/hda/patch_realtek.c > @@ -5386,399 +5386,192 @@ static const struct hda_model_fixup alc269_fixup_models[] = { > {} > }; > > -#define ALC255_STANDARD_PINS \ > - {0x18, 0x411111f0}, \ > - {0x19, 0x411111f0}, \ > - {0x1a, 0x411111f0}, \ > - {0x1b, 0x411111f0}, \ > - {0x1e, 0x411111f0} > - > #define ALC256_STANDARD_PINS \ > {0x12, 0x90a60140}, \ > {0x14, 0x90170110}, \ > - {0x19, 0x411111f0}, \ > - {0x1a, 0x411111f0}, \ > - {0x1b, 0x411111f0}, \ > {0x21, 0x02211020} > > #define ALC282_STANDARD_PINS \ > - {0x14, 0x90170110}, \ > - {0x18, 0x411111f0}, \ > - {0x1a, 0x411111f0}, \ > - {0x1b, 0x411111f0}, \ > - {0x1e, 0x411111f0} > - > -#define ALC288_STANDARD_PINS \ > - {0x17, 0x411111f0}, \ > - {0x18, 0x411111f0}, \ > - {0x19, 0x411111f0}, \ > - {0x1a, 0x411111f0}, \ > - {0x1e, 0x411111f0} > + {0x14, 0x90170110} > > #define ALC290_STANDARD_PINS \ > - {0x12, 0x99a30130}, \ > - {0x13, 0x40000000}, \ > - {0x16, 0x411111f0}, \ > - {0x17, 0x411111f0}, \ > - {0x19, 0x411111f0}, \ > - {0x1b, 0x411111f0}, \ > - {0x1e, 0x411111f0} > + {0x12, 0x99a30130} > > #define ALC292_STANDARD_PINS \ > {0x14, 0x90170110}, \ > - {0x15, 0x0221401f}, \ > - {0x1a, 0x411111f0}, \ > - {0x1b, 0x411111f0}, \ > - {0x1d, 0x40700001} > - > -#define ALC298_STANDARD_PINS \ > - {0x18, 0x411111f0}, \ > - {0x19, 0x411111f0}, \ > - {0x1a, 0x411111f0}, \ > - {0x1e, 0x411111f0}, \ > - {0x1f, 0x411111f0} > + {0x15, 0x0221401f} > > static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = { > SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL2_MIC_NO_PRESENCE, > - ALC255_STANDARD_PINS, > - {0x12, 0x40300000}, > {0x14, 0x90170110}, > - {0x17, 0x411111f0}, > - {0x1d, 0x40538029}, > {0x21, 0x02211020}), > SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, > - ALC255_STANDARD_PINS, > {0x12, 0x90a60140}, > {0x14, 0x90170110}, > - {0x17, 0x40000000}, > - {0x1d, 0x40700001}, > {0x21, 0x02211020}), > SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, > - ALC255_STANDARD_PINS, > {0x12, 0x90a60160}, > {0x14, 0x90170120}, > - {0x17, 0x40000000}, > - {0x1d, 0x40700001}, > {0x21, 0x02211030}), > SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, > - {0x12, 0x40000000}, > {0x14, 0x90170130}, > - {0x17, 0x411111f0}, > - {0x18, 0x411111f0}, > - {0x19, 0x411111f0}, > - {0x1a, 0x411111f0}, > {0x1b, 0x01014020}, > - {0x1d, 0x4054c029}, > - {0x1e, 0x411111f0}, > {0x21, 0x0221103f}), > SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, > - {0x12, 0x40000000}, > {0x14, 0x90170150}, > - {0x17, 0x411111f0}, > - {0x18, 0x411111f0}, > - {0x19, 0x411111f0}, > - {0x1a, 0x411111f0}, > {0x1b, 0x02011020}, > - {0x1d, 0x4054c029}, > - {0x1e, 0x411111f0}, > {0x21, 0x0221105f}), > SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, > - {0x12, 0x40000000}, > {0x14, 0x90170110}, > - {0x17, 0x411111f0}, > - {0x18, 0x411111f0}, > - {0x19, 0x411111f0}, > - {0x1a, 0x411111f0}, > {0x1b, 0x01014020}, > - {0x1d, 0x4054c029}, > - {0x1e, 0x411111f0}, > {0x21, 0x0221101f}), > SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, > {0x12, 0x90a60160}, > {0x14, 0x90170120}, > {0x17, 0x90170140}, > - {0x18, 0x40000000}, > - {0x19, 0x411111f0}, > - {0x1a, 0x411111f0}, > - {0x1b, 0x411111f0}, > - {0x1d, 0x41163b05}, > - {0x1e, 0x411111f0}, > {0x21, 0x0321102f}), > SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, > - ALC255_STANDARD_PINS, > {0x12, 0x90a60160}, > {0x14, 0x90170130}, > - {0x17, 0x40000000}, > - {0x1d, 0x40700001}, > {0x21, 0x02211040}), > SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, > - ALC255_STANDARD_PINS, > {0x12, 0x90a60160}, > {0x14, 0x90170140}, > - {0x17, 0x40000000}, > - {0x1d, 0x40700001}, > {0x21, 0x02211050}), > SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, > - ALC255_STANDARD_PINS, > {0x12, 0x90a60170}, > {0x14, 0x90170120}, > - {0x17, 0x40000000}, > - {0x1d, 0x40700001}, > {0x21, 0x02211030}), > SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, > - ALC255_STANDARD_PINS, > {0x12, 0x90a60170}, > {0x14, 0x90170130}, > - {0x17, 0x40000000}, > - {0x1d, 0x40700001}, > {0x21, 0x02211040}), > SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, > - ALC255_STANDARD_PINS, > {0x12, 0x90a60170}, > {0x14, 0x90170140}, > - {0x17, 0x40000000}, > - {0x1d, 0x40700001}, > {0x21, 0x02211050}), > SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell Inspiron 5548", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, > - ALC255_STANDARD_PINS, > {0x12, 0x90a60180}, > {0x14, 0x90170130}, > - {0x17, 0x40000000}, > - {0x1d, 0x40700001}, > {0x21, 0x02211040}), > SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, > - ALC255_STANDARD_PINS, > {0x12, 0x90a60160}, > {0x14, 0x90170120}, > - {0x17, 0x40000000}, > - {0x1d, 0x40700001}, > {0x21, 0x02211030}), > SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, > - ALC256_STANDARD_PINS, > - {0x13, 0x40000000}, > - {0x1d, 0x40700001}, > - {0x1e, 0x411111f0}), > - SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, > - ALC256_STANDARD_PINS, > - {0x13, 0x411111f0}, > - {0x1d, 0x40700001}, > - {0x1e, 0x411111f0}), > - SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, > - ALC256_STANDARD_PINS, > - {0x13, 0x411111f0}, > - {0x1d, 0x4077992d}, > - {0x1e, 0x411111ff}), > + ALC256_STANDARD_PINS), > SND_HDA_PIN_QUIRK(0x10ec0280, 0x103c, "HP", ALC280_FIXUP_HP_GPIO4, > {0x12, 0x90a60130}, > - {0x13, 0x40000000}, > {0x14, 0x90170110}, > {0x15, 0x0421101f}, > - {0x16, 0x411111f0}, > - {0x17, 0x411111f0}, > - {0x18, 0x411111f0}, > - {0x19, 0x411111f0}, > - {0x1a, 0x04a11020}, > - {0x1b, 0x411111f0}, > - {0x1d, 0x40748605}, > - {0x1e, 0x411111f0}), > + {0x1a, 0x04a11020}), > SND_HDA_PIN_QUIRK(0x10ec0280, 0x103c, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED, > {0x12, 0x90a60140}, > - {0x13, 0x40000000}, > {0x14, 0x90170110}, > {0x15, 0x0421101f}, > - {0x16, 0x411111f0}, > - {0x17, 0x411111f0}, > {0x18, 0x02811030}, > - {0x19, 0x411111f0}, > {0x1a, 0x04a1103f}, > - {0x1b, 0x02011020}, > - {0x1d, 0x40700001}, > - {0x1e, 0x411111f0}), > + {0x1b, 0x02011020}), > SND_HDA_PIN_QUIRK(0x10ec0282, 0x103c, "HP 15 Touchsmart", ALC269_FIXUP_HP_MUTE_LED_MIC1, > ALC282_STANDARD_PINS, > {0x12, 0x99a30130}, > - {0x17, 0x40000000}, > {0x19, 0x03a11020}, > - {0x1d, 0x40f41905}, > {0x21, 0x0321101f}), > SND_HDA_PIN_QUIRK(0x10ec0282, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1, > ALC282_STANDARD_PINS, > {0x12, 0x99a30130}, > - {0x17, 0x40020008}, > {0x19, 0x03a11020}, > - {0x1d, 0x40e00001}, > {0x21, 0x03211040}), > SND_HDA_PIN_QUIRK(0x10ec0282, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1, > ALC282_STANDARD_PINS, > {0x12, 0x99a30130}, > - {0x17, 0x40000000}, > {0x19, 0x03a11030}, > - {0x1d, 0x40e00001}, > {0x21, 0x03211020}), > SND_HDA_PIN_QUIRK(0x10ec0282, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1, > ALC282_STANDARD_PINS, > {0x12, 0x99a30130}, > - {0x17, 0x40000000}, > - {0x19, 0x03a11030}, > - {0x1d, 0x40f00001}, > - {0x21, 0x03211020}), > - SND_HDA_PIN_QUIRK(0x10ec0282, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1, > - ALC282_STANDARD_PINS, > - {0x12, 0x99a30130}, > - {0x17, 0x40000000}, > {0x19, 0x04a11020}, > - {0x1d, 0x40f00001}, > {0x21, 0x0421101f}), > - SND_HDA_PIN_QUIRK(0x10ec0282, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1, > - ALC282_STANDARD_PINS, > - {0x12, 0x99a30130}, > - {0x17, 0x40000000}, > - {0x19, 0x03a11030}, > - {0x1d, 0x40f00001}, > - {0x21, 0x04211020}), > SND_HDA_PIN_QUIRK(0x10ec0282, 0x103c, "HP", ALC269_FIXUP_HP_LINE1_MIC1_LED, > ALC282_STANDARD_PINS, > {0x12, 0x90a60140}, > - {0x17, 0x40000000}, > {0x19, 0x04a11030}, > - {0x1d, 0x40f00001}, > {0x21, 0x04211020}), > SND_HDA_PIN_QUIRK(0x10ec0283, 0x1028, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE, > ALC282_STANDARD_PINS, > {0x12, 0x90a60130}, > - {0x17, 0x40020008}, > - {0x19, 0x411111f0}, > - {0x1d, 0x40e00001}, > {0x21, 0x0321101f}), > SND_HDA_PIN_QUIRK(0x10ec0283, 0x1028, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE, > {0x12, 0x90a60160}, > {0x14, 0x90170120}, > - {0x17, 0x40000000}, > - {0x18, 0x411111f0}, > - {0x19, 0x411111f0}, > - {0x1a, 0x411111f0}, > - {0x1b, 0x411111f0}, > - {0x1d, 0x40700001}, > - {0x1e, 0x411111f0}, > {0x21, 0x02211030}), > SND_HDA_PIN_QUIRK(0x10ec0283, 0x1028, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE, > ALC282_STANDARD_PINS, > {0x12, 0x90a60130}, > - {0x17, 0x40020008}, > {0x19, 0x03a11020}, > - {0x1d, 0x40e00001}, > {0x21, 0x0321101f}), > SND_HDA_PIN_QUIRK(0x10ec0288, 0x1028, "Dell", ALC288_FIXUP_DELL_XPS_13_GPIO6, > - ALC288_STANDARD_PINS, > {0x12, 0x90a60120}, > - {0x13, 0x40000000}, > {0x14, 0x90170110}, > - {0x1d, 0x4076832d}, > {0x21, 0x0321101f}), > SND_HDA_PIN_QUIRK(0x10ec0290, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1, > ALC290_STANDARD_PINS, > - {0x14, 0x411111f0}, > {0x15, 0x04211040}, > {0x18, 0x90170112}, > - {0x1a, 0x04a11020}, > - {0x1d, 0x4075812d}), > + {0x1a, 0x04a11020}), > SND_HDA_PIN_QUIRK(0x10ec0290, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1, > ALC290_STANDARD_PINS, > - {0x14, 0x411111f0}, > {0x15, 0x04211040}, > {0x18, 0x90170110}, > - {0x1a, 0x04a11020}, > - {0x1d, 0x4075812d}), > + {0x1a, 0x04a11020}), > SND_HDA_PIN_QUIRK(0x10ec0290, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1, > ALC290_STANDARD_PINS, > - {0x14, 0x411111f0}, > {0x15, 0x0421101f}, > - {0x18, 0x411111f0}, > - {0x1a, 0x04a11020}, > - {0x1d, 0x4075812d}), > + {0x1a, 0x04a11020}), > SND_HDA_PIN_QUIRK(0x10ec0290, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1, > ALC290_STANDARD_PINS, > - {0x14, 0x411111f0}, > {0x15, 0x04211020}, > - {0x18, 0x411111f0}, > - {0x1a, 0x04a11040}, > - {0x1d, 0x4076a12d}), > + {0x1a, 0x04a11040}), > SND_HDA_PIN_QUIRK(0x10ec0290, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1, > ALC290_STANDARD_PINS, > {0x14, 0x90170110}, > {0x15, 0x04211020}, > - {0x18, 0x411111f0}, > - {0x1a, 0x04a11040}, > - {0x1d, 0x4076a12d}), > + {0x1a, 0x04a11040}), > SND_HDA_PIN_QUIRK(0x10ec0290, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1, > ALC290_STANDARD_PINS, > {0x14, 0x90170110}, > {0x15, 0x04211020}, > - {0x18, 0x411111f0}, > - {0x1a, 0x04a11020}, > - {0x1d, 0x4076a12d}), > + {0x1a, 0x04a11020}), > SND_HDA_PIN_QUIRK(0x10ec0290, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1, > ALC290_STANDARD_PINS, > {0x14, 0x90170110}, > {0x15, 0x0421101f}, > - {0x18, 0x411111f0}, > - {0x1a, 0x04a11020}, > - {0x1d, 0x4075812d}), > + {0x1a, 0x04a11020}), > SND_HDA_PIN_QUIRK(0x10ec0292, 0x1028, "Dell", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE, > ALC292_STANDARD_PINS, > {0x12, 0x90a60140}, > - {0x13, 0x411111f0}, > {0x16, 0x01014020}, > - {0x18, 0x411111f0}, > - {0x19, 0x01a19030}, > - {0x1e, 0x411111f0}), > + {0x19, 0x01a19030}), > SND_HDA_PIN_QUIRK(0x10ec0292, 0x1028, "Dell", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE, > ALC292_STANDARD_PINS, > {0x12, 0x90a60140}, > - {0x13, 0x411111f0}, > {0x16, 0x01014020}, > {0x18, 0x02a19031}, > - {0x19, 0x01a1903e}, > - {0x1e, 0x411111f0}), > + {0x19, 0x01a1903e}), > SND_HDA_PIN_QUIRK(0x10ec0292, 0x1028, "Dell", ALC269_FIXUP_DELL3_MIC_NO_PRESENCE, > ALC292_STANDARD_PINS, > - {0x12, 0x90a60140}, > - {0x13, 0x411111f0}, > - {0x16, 0x411111f0}, > - {0x18, 0x411111f0}, > - {0x19, 0x411111f0}, > - {0x1e, 0x411111f0}), > + {0x12, 0x90a60140}), > SND_HDA_PIN_QUIRK(0x10ec0293, 0x1028, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE, > ALC292_STANDARD_PINS, > - {0x12, 0x40000000}, > {0x13, 0x90a60140}, > {0x16, 0x21014020}, > - {0x18, 0x411111f0}, > - {0x19, 0x21a19030}, > - {0x1e, 0x411111f0}), > + {0x19, 0x21a19030}), > SND_HDA_PIN_QUIRK(0x10ec0293, 0x1028, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE, > ALC292_STANDARD_PINS, > - {0x12, 0x40000000}, > - {0x13, 0x90a60140}, > - {0x16, 0x411111f0}, > - {0x18, 0x411111f0}, > - {0x19, 0x411111f0}, > - {0x1e, 0x411111f0}), > - SND_HDA_PIN_QUIRK(0x10ec0293, 0x1028, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE, > - ALC292_STANDARD_PINS, > - {0x12, 0x40000000}, > - {0x13, 0x90a60140}, > - {0x16, 0x21014020}, > - {0x18, 0x411111f0}, > - {0x19, 0x21a19030}, > - {0x1e, 0x411111ff}), > + {0x13, 0x90a60140}), > SND_HDA_PIN_QUIRK(0x10ec0298, 0x1028, "Dell", ALC298_FIXUP_DELL1_MIC_NO_PRESENCE, > - ALC298_STANDARD_PINS, > {0x12, 0x90a60130}, > - {0x13, 0x40000000}, > - {0x14, 0x411111f0}, > {0x17, 0x90170140}, > - {0x1d, 0x4068a36d}, > {0x21, 0x03211020}), > {} > }; > @@ -6672,77 +6465,33 @@ static const struct hda_model_fixup alc662_fixup_models[] = { > > static const struct snd_hda_pin_quirk alc662_pin_fixup_tbl[] = { > SND_HDA_PIN_QUIRK(0x10ec0662, 0x1028, "Dell", ALC662_FIXUP_DELL_MIC_NO_PRESENCE, > - {0x12, 0x4004c000}, > {0x14, 0x01014010}, > - {0x15, 0x411111f0}, > - {0x16, 0x411111f0}, > {0x18, 0x01a19020}, > - {0x19, 0x411111f0}, > {0x1a, 0x0181302f}, > - {0x1b, 0x0221401f}, > - {0x1c, 0x411111f0}, > - {0x1d, 0x4054c601}, > - {0x1e, 0x411111f0}), > + {0x1b, 0x0221401f}), > SND_HDA_PIN_QUIRK(0x10ec0668, 0x1028, "Dell", ALC668_FIXUP_AUTO_MUTE, > {0x12, 0x99a30130}, > {0x14, 0x90170110}, > {0x15, 0x0321101f}, > - {0x16, 0x03011020}, > - {0x18, 0x40000008}, > - {0x19, 0x411111f0}, > - {0x1a, 0x411111f0}, > - {0x1b, 0x411111f0}, > - {0x1d, 0x41000001}, > - {0x1e, 0x411111f0}, > - {0x1f, 0x411111f0}), > + {0x16, 0x03011020}), > SND_HDA_PIN_QUIRK(0x10ec0668, 0x1028, "Dell", ALC668_FIXUP_AUTO_MUTE, > {0x12, 0x99a30140}, > {0x14, 0x90170110}, > {0x15, 0x0321101f}, > - {0x16, 0x03011020}, > - {0x18, 0x40000008}, > - {0x19, 0x411111f0}, > - {0x1a, 0x411111f0}, > - {0x1b, 0x411111f0}, > - {0x1d, 0x41000001}, > - {0x1e, 0x411111f0}, > - {0x1f, 0x411111f0}), > + {0x16, 0x03011020}), > SND_HDA_PIN_QUIRK(0x10ec0668, 0x1028, "Dell", ALC668_FIXUP_AUTO_MUTE, > {0x12, 0x99a30150}, > {0x14, 0x90170110}, > {0x15, 0x0321101f}, > - {0x16, 0x03011020}, > - {0x18, 0x40000008}, > - {0x19, 0x411111f0}, > - {0x1a, 0x411111f0}, > - {0x1b, 0x411111f0}, > - {0x1d, 0x41000001}, > - {0x1e, 0x411111f0}, > - {0x1f, 0x411111f0}), > + {0x16, 0x03011020}), > SND_HDA_PIN_QUIRK(0x10ec0668, 0x1028, "Dell", ALC668_FIXUP_AUTO_MUTE, > - {0x12, 0x411111f0}, > {0x14, 0x90170110}, > {0x15, 0x0321101f}, > - {0x16, 0x03011020}, > - {0x18, 0x40000008}, > - {0x19, 0x411111f0}, > - {0x1a, 0x411111f0}, > - {0x1b, 0x411111f0}, > - {0x1d, 0x41000001}, > - {0x1e, 0x411111f0}, > - {0x1f, 0x411111f0}), > + {0x16, 0x03011020}), > SND_HDA_PIN_QUIRK(0x10ec0668, 0x1028, "Dell XPS 15", ALC668_FIXUP_AUTO_MUTE, > {0x12, 0x90a60130}, > {0x14, 0x90170110}, > - {0x15, 0x0321101f}, > - {0x16, 0x40000000}, > - {0x18, 0x411111f0}, > - {0x19, 0x411111f0}, > - {0x1a, 0x411111f0}, > - {0x1b, 0x411111f0}, > - {0x1d, 0x40d6832d}, > - {0x1e, 0x411111f0}, > - {0x1f, 0x411111f0}), > + {0x15, 0x0321101f}), > {} > }; > > -- > 1.9.1 >
diff --git a/sound/pci/hda/hda_auto_parser.c b/sound/pci/hda/hda_auto_parser.c index 03b7399..7f57a14 100644 --- a/sound/pci/hda/hda_auto_parser.c +++ b/sound/pci/hda/hda_auto_parser.c @@ -887,11 +887,32 @@ EXPORT_SYMBOL_GPL(snd_hda_apply_fixup); static bool pin_config_match(struct hda_codec *codec, const struct hda_pintbl *pins) { - for (; pins->nid; pins++) { - u32 def_conf = snd_hda_codec_get_pincfg(codec, pins->nid); - if (pins->val != def_conf) + int i; + + for (i = 0; i < codec->init_pins.used; i++) { + struct hda_pincfg *pin = snd_array_elem(&codec->init_pins, i); + hda_nid_t nid = pin->nid; + u32 cfg = pin->cfg; + const struct hda_pintbl *t_pins; + int found; + + t_pins = pins; + found = 0; + for (; t_pins->nid; t_pins++) { + if (t_pins->nid == nid) { + found = 1; + if (t_pins->val == cfg) + break; + else if ((cfg & 0xf0000000) == 0x40000000 && (t_pins->val & 0xf0000000) == 0x40000000) + break; + else + return false; + } + } + if (!found && (cfg & 0xf0000000) != 0x40000000) return false; } + return true; } diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 18ae17e..d9a8b9f 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -5386,399 +5386,192 @@ static const struct hda_model_fixup alc269_fixup_models[] = { {} }; -#define ALC255_STANDARD_PINS \ - {0x18, 0x411111f0}, \ - {0x19, 0x411111f0}, \ - {0x1a, 0x411111f0}, \ - {0x1b, 0x411111f0}, \ - {0x1e, 0x411111f0} - #define ALC256_STANDARD_PINS \ {0x12, 0x90a60140}, \ {0x14, 0x90170110}, \ - {0x19, 0x411111f0}, \ - {0x1a, 0x411111f0}, \ - {0x1b, 0x411111f0}, \ {0x21, 0x02211020} #define ALC282_STANDARD_PINS \ - {0x14, 0x90170110}, \ - {0x18, 0x411111f0}, \ - {0x1a, 0x411111f0}, \ - {0x1b, 0x411111f0}, \ - {0x1e, 0x411111f0} - -#define ALC288_STANDARD_PINS \ - {0x17, 0x411111f0}, \ - {0x18, 0x411111f0}, \ - {0x19, 0x411111f0}, \ - {0x1a, 0x411111f0}, \ - {0x1e, 0x411111f0} + {0x14, 0x90170110} #define ALC290_STANDARD_PINS \ - {0x12, 0x99a30130}, \ - {0x13, 0x40000000}, \ - {0x16, 0x411111f0}, \ - {0x17, 0x411111f0}, \ - {0x19, 0x411111f0}, \ - {0x1b, 0x411111f0}, \ - {0x1e, 0x411111f0} + {0x12, 0x99a30130} #define ALC292_STANDARD_PINS \ {0x14, 0x90170110}, \ - {0x15, 0x0221401f}, \ - {0x1a, 0x411111f0}, \ - {0x1b, 0x411111f0}, \ - {0x1d, 0x40700001} - -#define ALC298_STANDARD_PINS \ - {0x18, 0x411111f0}, \ - {0x19, 0x411111f0}, \ - {0x1a, 0x411111f0}, \ - {0x1e, 0x411111f0}, \ - {0x1f, 0x411111f0} + {0x15, 0x0221401f} static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = { SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL2_MIC_NO_PRESENCE, - ALC255_STANDARD_PINS, - {0x12, 0x40300000}, {0x14, 0x90170110}, - {0x17, 0x411111f0}, - {0x1d, 0x40538029}, {0x21, 0x02211020}), SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, - ALC255_STANDARD_PINS, {0x12, 0x90a60140}, {0x14, 0x90170110}, - {0x17, 0x40000000}, - {0x1d, 0x40700001}, {0x21, 0x02211020}), SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, - ALC255_STANDARD_PINS, {0x12, 0x90a60160}, {0x14, 0x90170120}, - {0x17, 0x40000000}, - {0x1d, 0x40700001}, {0x21, 0x02211030}), SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, - {0x12, 0x40000000}, {0x14, 0x90170130}, - {0x17, 0x411111f0}, - {0x18, 0x411111f0}, - {0x19, 0x411111f0}, - {0x1a, 0x411111f0}, {0x1b, 0x01014020}, - {0x1d, 0x4054c029}, - {0x1e, 0x411111f0}, {0x21, 0x0221103f}), SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, - {0x12, 0x40000000}, {0x14, 0x90170150}, - {0x17, 0x411111f0}, - {0x18, 0x411111f0}, - {0x19, 0x411111f0}, - {0x1a, 0x411111f0}, {0x1b, 0x02011020}, - {0x1d, 0x4054c029}, - {0x1e, 0x411111f0}, {0x21, 0x0221105f}), SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, - {0x12, 0x40000000}, {0x14, 0x90170110}, - {0x17, 0x411111f0}, - {0x18, 0x411111f0}, - {0x19, 0x411111f0}, - {0x1a, 0x411111f0}, {0x1b, 0x01014020}, - {0x1d, 0x4054c029}, - {0x1e, 0x411111f0}, {0x21, 0x0221101f}), SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, {0x12, 0x90a60160}, {0x14, 0x90170120}, {0x17, 0x90170140}, - {0x18, 0x40000000}, - {0x19, 0x411111f0}, - {0x1a, 0x411111f0}, - {0x1b, 0x411111f0}, - {0x1d, 0x41163b05}, - {0x1e, 0x411111f0}, {0x21, 0x0321102f}), SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, - ALC255_STANDARD_PINS, {0x12, 0x90a60160}, {0x14, 0x90170130}, - {0x17, 0x40000000}, - {0x1d, 0x40700001}, {0x21, 0x02211040}), SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, - ALC255_STANDARD_PINS, {0x12, 0x90a60160}, {0x14, 0x90170140}, - {0x17, 0x40000000}, - {0x1d, 0x40700001}, {0x21, 0x02211050}), SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, - ALC255_STANDARD_PINS, {0x12, 0x90a60170}, {0x14, 0x90170120}, - {0x17, 0x40000000}, - {0x1d, 0x40700001}, {0x21, 0x02211030}), SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, - ALC255_STANDARD_PINS, {0x12, 0x90a60170}, {0x14, 0x90170130}, - {0x17, 0x40000000}, - {0x1d, 0x40700001}, {0x21, 0x02211040}), SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, - ALC255_STANDARD_PINS, {0x12, 0x90a60170}, {0x14, 0x90170140}, - {0x17, 0x40000000}, - {0x1d, 0x40700001}, {0x21, 0x02211050}), SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell Inspiron 5548", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, - ALC255_STANDARD_PINS, {0x12, 0x90a60180}, {0x14, 0x90170130}, - {0x17, 0x40000000}, - {0x1d, 0x40700001}, {0x21, 0x02211040}), SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, - ALC255_STANDARD_PINS, {0x12, 0x90a60160}, {0x14, 0x90170120}, - {0x17, 0x40000000}, - {0x1d, 0x40700001}, {0x21, 0x02211030}), SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, - ALC256_STANDARD_PINS, - {0x13, 0x40000000}, - {0x1d, 0x40700001}, - {0x1e, 0x411111f0}), - SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, - ALC256_STANDARD_PINS, - {0x13, 0x411111f0}, - {0x1d, 0x40700001}, - {0x1e, 0x411111f0}), - SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, - ALC256_STANDARD_PINS, - {0x13, 0x411111f0}, - {0x1d, 0x4077992d}, - {0x1e, 0x411111ff}), + ALC256_STANDARD_PINS), SND_HDA_PIN_QUIRK(0x10ec0280, 0x103c, "HP", ALC280_FIXUP_HP_GPIO4, {0x12, 0x90a60130}, - {0x13, 0x40000000}, {0x14, 0x90170110}, {0x15, 0x0421101f}, - {0x16, 0x411111f0}, - {0x17, 0x411111f0}, - {0x18, 0x411111f0}, - {0x19, 0x411111f0}, - {0x1a, 0x04a11020}, - {0x1b, 0x411111f0}, - {0x1d, 0x40748605}, - {0x1e, 0x411111f0}), + {0x1a, 0x04a11020}), SND_HDA_PIN_QUIRK(0x10ec0280, 0x103c, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED, {0x12, 0x90a60140}, - {0x13, 0x40000000}, {0x14, 0x90170110}, {0x15, 0x0421101f}, - {0x16, 0x411111f0}, - {0x17, 0x411111f0}, {0x18, 0x02811030}, - {0x19, 0x411111f0}, {0x1a, 0x04a1103f}, - {0x1b, 0x02011020}, - {0x1d, 0x40700001}, - {0x1e, 0x411111f0}), + {0x1b, 0x02011020}), SND_HDA_PIN_QUIRK(0x10ec0282, 0x103c, "HP 15 Touchsmart", ALC269_FIXUP_HP_MUTE_LED_MIC1, ALC282_STANDARD_PINS, {0x12, 0x99a30130}, - {0x17, 0x40000000}, {0x19, 0x03a11020}, - {0x1d, 0x40f41905}, {0x21, 0x0321101f}), SND_HDA_PIN_QUIRK(0x10ec0282, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1, ALC282_STANDARD_PINS, {0x12, 0x99a30130}, - {0x17, 0x40020008}, {0x19, 0x03a11020}, - {0x1d, 0x40e00001}, {0x21, 0x03211040}), SND_HDA_PIN_QUIRK(0x10ec0282, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1, ALC282_STANDARD_PINS, {0x12, 0x99a30130}, - {0x17, 0x40000000}, {0x19, 0x03a11030}, - {0x1d, 0x40e00001}, {0x21, 0x03211020}), SND_HDA_PIN_QUIRK(0x10ec0282, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1, ALC282_STANDARD_PINS, {0x12, 0x99a30130}, - {0x17, 0x40000000}, - {0x19, 0x03a11030}, - {0x1d, 0x40f00001}, - {0x21, 0x03211020}), - SND_HDA_PIN_QUIRK(0x10ec0282, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1, - ALC282_STANDARD_PINS, - {0x12, 0x99a30130}, - {0x17, 0x40000000}, {0x19, 0x04a11020}, - {0x1d, 0x40f00001}, {0x21, 0x0421101f}), - SND_HDA_PIN_QUIRK(0x10ec0282, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1, - ALC282_STANDARD_PINS, - {0x12, 0x99a30130}, - {0x17, 0x40000000}, - {0x19, 0x03a11030}, - {0x1d, 0x40f00001}, - {0x21, 0x04211020}), SND_HDA_PIN_QUIRK(0x10ec0282, 0x103c, "HP", ALC269_FIXUP_HP_LINE1_MIC1_LED, ALC282_STANDARD_PINS, {0x12, 0x90a60140}, - {0x17, 0x40000000}, {0x19, 0x04a11030}, - {0x1d, 0x40f00001}, {0x21, 0x04211020}), SND_HDA_PIN_QUIRK(0x10ec0283, 0x1028, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE, ALC282_STANDARD_PINS, {0x12, 0x90a60130}, - {0x17, 0x40020008}, - {0x19, 0x411111f0}, - {0x1d, 0x40e00001}, {0x21, 0x0321101f}), SND_HDA_PIN_QUIRK(0x10ec0283, 0x1028, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE, {0x12, 0x90a60160}, {0x14, 0x90170120}, - {0x17, 0x40000000}, - {0x18, 0x411111f0}, - {0x19, 0x411111f0}, - {0x1a, 0x411111f0}, - {0x1b, 0x411111f0}, - {0x1d, 0x40700001}, - {0x1e, 0x411111f0}, {0x21, 0x02211030}), SND_HDA_PIN_QUIRK(0x10ec0283, 0x1028, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE, ALC282_STANDARD_PINS, {0x12, 0x90a60130}, - {0x17, 0x40020008}, {0x19, 0x03a11020}, - {0x1d, 0x40e00001}, {0x21, 0x0321101f}), SND_HDA_PIN_QUIRK(0x10ec0288, 0x1028, "Dell", ALC288_FIXUP_DELL_XPS_13_GPIO6, - ALC288_STANDARD_PINS, {0x12, 0x90a60120}, - {0x13, 0x40000000}, {0x14, 0x90170110}, - {0x1d, 0x4076832d}, {0x21, 0x0321101f}), SND_HDA_PIN_QUIRK(0x10ec0290, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1, ALC290_STANDARD_PINS, - {0x14, 0x411111f0}, {0x15, 0x04211040}, {0x18, 0x90170112}, - {0x1a, 0x04a11020}, - {0x1d, 0x4075812d}), + {0x1a, 0x04a11020}), SND_HDA_PIN_QUIRK(0x10ec0290, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1, ALC290_STANDARD_PINS, - {0x14, 0x411111f0}, {0x15, 0x04211040}, {0x18, 0x90170110}, - {0x1a, 0x04a11020}, - {0x1d, 0x4075812d}), + {0x1a, 0x04a11020}), SND_HDA_PIN_QUIRK(0x10ec0290, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1, ALC290_STANDARD_PINS, - {0x14, 0x411111f0}, {0x15, 0x0421101f}, - {0x18, 0x411111f0}, - {0x1a, 0x04a11020}, - {0x1d, 0x4075812d}), + {0x1a, 0x04a11020}), SND_HDA_PIN_QUIRK(0x10ec0290, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1, ALC290_STANDARD_PINS, - {0x14, 0x411111f0}, {0x15, 0x04211020}, - {0x18, 0x411111f0}, - {0x1a, 0x04a11040}, - {0x1d, 0x4076a12d}), + {0x1a, 0x04a11040}), SND_HDA_PIN_QUIRK(0x10ec0290, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1, ALC290_STANDARD_PINS, {0x14, 0x90170110}, {0x15, 0x04211020}, - {0x18, 0x411111f0}, - {0x1a, 0x04a11040}, - {0x1d, 0x4076a12d}), + {0x1a, 0x04a11040}), SND_HDA_PIN_QUIRK(0x10ec0290, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1, ALC290_STANDARD_PINS, {0x14, 0x90170110}, {0x15, 0x04211020}, - {0x18, 0x411111f0}, - {0x1a, 0x04a11020}, - {0x1d, 0x4076a12d}), + {0x1a, 0x04a11020}), SND_HDA_PIN_QUIRK(0x10ec0290, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1, ALC290_STANDARD_PINS, {0x14, 0x90170110}, {0x15, 0x0421101f}, - {0x18, 0x411111f0}, - {0x1a, 0x04a11020}, - {0x1d, 0x4075812d}), + {0x1a, 0x04a11020}), SND_HDA_PIN_QUIRK(0x10ec0292, 0x1028, "Dell", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE, ALC292_STANDARD_PINS, {0x12, 0x90a60140}, - {0x13, 0x411111f0}, {0x16, 0x01014020}, - {0x18, 0x411111f0}, - {0x19, 0x01a19030}, - {0x1e, 0x411111f0}), + {0x19, 0x01a19030}), SND_HDA_PIN_QUIRK(0x10ec0292, 0x1028, "Dell", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE, ALC292_STANDARD_PINS, {0x12, 0x90a60140}, - {0x13, 0x411111f0}, {0x16, 0x01014020}, {0x18, 0x02a19031}, - {0x19, 0x01a1903e}, - {0x1e, 0x411111f0}), + {0x19, 0x01a1903e}), SND_HDA_PIN_QUIRK(0x10ec0292, 0x1028, "Dell", ALC269_FIXUP_DELL3_MIC_NO_PRESENCE, ALC292_STANDARD_PINS, - {0x12, 0x90a60140}, - {0x13, 0x411111f0}, - {0x16, 0x411111f0}, - {0x18, 0x411111f0}, - {0x19, 0x411111f0}, - {0x1e, 0x411111f0}), + {0x12, 0x90a60140}), SND_HDA_PIN_QUIRK(0x10ec0293, 0x1028, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE, ALC292_STANDARD_PINS, - {0x12, 0x40000000}, {0x13, 0x90a60140}, {0x16, 0x21014020}, - {0x18, 0x411111f0}, - {0x19, 0x21a19030}, - {0x1e, 0x411111f0}), + {0x19, 0x21a19030}), SND_HDA_PIN_QUIRK(0x10ec0293, 0x1028, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE, ALC292_STANDARD_PINS, - {0x12, 0x40000000}, - {0x13, 0x90a60140}, - {0x16, 0x411111f0}, - {0x18, 0x411111f0}, - {0x19, 0x411111f0}, - {0x1e, 0x411111f0}), - SND_HDA_PIN_QUIRK(0x10ec0293, 0x1028, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE, - ALC292_STANDARD_PINS, - {0x12, 0x40000000}, - {0x13, 0x90a60140}, - {0x16, 0x21014020}, - {0x18, 0x411111f0}, - {0x19, 0x21a19030}, - {0x1e, 0x411111ff}), + {0x13, 0x90a60140}), SND_HDA_PIN_QUIRK(0x10ec0298, 0x1028, "Dell", ALC298_FIXUP_DELL1_MIC_NO_PRESENCE, - ALC298_STANDARD_PINS, {0x12, 0x90a60130}, - {0x13, 0x40000000}, - {0x14, 0x411111f0}, {0x17, 0x90170140}, - {0x1d, 0x4068a36d}, {0x21, 0x03211020}), {} }; @@ -6672,77 +6465,33 @@ static const struct hda_model_fixup alc662_fixup_models[] = { static const struct snd_hda_pin_quirk alc662_pin_fixup_tbl[] = { SND_HDA_PIN_QUIRK(0x10ec0662, 0x1028, "Dell", ALC662_FIXUP_DELL_MIC_NO_PRESENCE, - {0x12, 0x4004c000}, {0x14, 0x01014010}, - {0x15, 0x411111f0}, - {0x16, 0x411111f0}, {0x18, 0x01a19020}, - {0x19, 0x411111f0}, {0x1a, 0x0181302f}, - {0x1b, 0x0221401f}, - {0x1c, 0x411111f0}, - {0x1d, 0x4054c601}, - {0x1e, 0x411111f0}), + {0x1b, 0x0221401f}), SND_HDA_PIN_QUIRK(0x10ec0668, 0x1028, "Dell", ALC668_FIXUP_AUTO_MUTE, {0x12, 0x99a30130}, {0x14, 0x90170110}, {0x15, 0x0321101f}, - {0x16, 0x03011020}, - {0x18, 0x40000008}, - {0x19, 0x411111f0}, - {0x1a, 0x411111f0}, - {0x1b, 0x411111f0}, - {0x1d, 0x41000001}, - {0x1e, 0x411111f0}, - {0x1f, 0x411111f0}), + {0x16, 0x03011020}), SND_HDA_PIN_QUIRK(0x10ec0668, 0x1028, "Dell", ALC668_FIXUP_AUTO_MUTE, {0x12, 0x99a30140}, {0x14, 0x90170110}, {0x15, 0x0321101f}, - {0x16, 0x03011020}, - {0x18, 0x40000008}, - {0x19, 0x411111f0}, - {0x1a, 0x411111f0}, - {0x1b, 0x411111f0}, - {0x1d, 0x41000001}, - {0x1e, 0x411111f0}, - {0x1f, 0x411111f0}), + {0x16, 0x03011020}), SND_HDA_PIN_QUIRK(0x10ec0668, 0x1028, "Dell", ALC668_FIXUP_AUTO_MUTE, {0x12, 0x99a30150}, {0x14, 0x90170110}, {0x15, 0x0321101f}, - {0x16, 0x03011020}, - {0x18, 0x40000008}, - {0x19, 0x411111f0}, - {0x1a, 0x411111f0}, - {0x1b, 0x411111f0}, - {0x1d, 0x41000001}, - {0x1e, 0x411111f0}, - {0x1f, 0x411111f0}), + {0x16, 0x03011020}), SND_HDA_PIN_QUIRK(0x10ec0668, 0x1028, "Dell", ALC668_FIXUP_AUTO_MUTE, - {0x12, 0x411111f0}, {0x14, 0x90170110}, {0x15, 0x0321101f}, - {0x16, 0x03011020}, - {0x18, 0x40000008}, - {0x19, 0x411111f0}, - {0x1a, 0x411111f0}, - {0x1b, 0x411111f0}, - {0x1d, 0x41000001}, - {0x1e, 0x411111f0}, - {0x1f, 0x411111f0}), + {0x16, 0x03011020}), SND_HDA_PIN_QUIRK(0x10ec0668, 0x1028, "Dell XPS 15", ALC668_FIXUP_AUTO_MUTE, {0x12, 0x90a60130}, {0x14, 0x90170110}, - {0x15, 0x0321101f}, - {0x16, 0x40000000}, - {0x18, 0x411111f0}, - {0x19, 0x411111f0}, - {0x1a, 0x411111f0}, - {0x1b, 0x411111f0}, - {0x1d, 0x40d6832d}, - {0x1e, 0x411111f0}, - {0x1f, 0x411111f0}), + {0x15, 0x0321101f}), {} };
To cleanup the pin_quirk table: - rewrite the pin_config_match(), comparing all pins on the machine with the corresponding pins in the quirk table. - remove all 0x4xxxxxxx pin configurations from pin_quirk table - after removing the 0x4xxxxxxx pin configurations, some pin tables are exactly same, so removing the redudant pin tables. Signed-off-by: Hui Wang <hui.wang@canonical.com> --- sound/pci/hda/hda_auto_parser.c | 27 +++- sound/pci/hda/patch_realtek.c | 299 ++++------------------------------------ 2 files changed, 48 insertions(+), 278 deletions(-)