Skip to content

Commit 26e7a30

Browse files
committed
Merge tag 'sound-6.7-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound fixes from Takashi Iwai: "A collection of HD-audio quirks for TAS2781 codec and device-specific workarounds" * tag 'sound-6.7-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: hda/tas2781: reset the amp before component_add ALSA: hda/tas2781: call cleanup functions only once ALSA: hda/tas2781: handle missing EFI calibration data ALSA: hda/tas2781: leave hda_component in usable state ALSA: hda/realtek: Apply mute LED quirk for HP15-db ALSA: hda/hdmi: add force-connect quirks for ASUSTeK Z170 variants ALSA: hda/hdmi: add force-connect quirk for NUC5CPYB
2 parents 595609b + 315deab commit 26e7a30

3 files changed

Lines changed: 14 additions & 11 deletions

File tree

sound/pci/hda/patch_hdmi.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1993,7 +1993,10 @@ static const struct snd_pci_quirk force_connect_list[] = {
19931993
SND_PCI_QUIRK(0x103c, 0x871a, "HP", 1),
19941994
SND_PCI_QUIRK(0x103c, 0x8711, "HP", 1),
19951995
SND_PCI_QUIRK(0x103c, 0x8715, "HP", 1),
1996+
SND_PCI_QUIRK(0x1043, 0x86ae, "ASUS", 1), /* Z170 PRO */
1997+
SND_PCI_QUIRK(0x1043, 0x86c7, "ASUS", 1), /* Z170M PLUS */
19961998
SND_PCI_QUIRK(0x1462, 0xec94, "MS-7C94", 1),
1999+
SND_PCI_QUIRK(0x8086, 0x2060, "Intel NUC5CPYB", 1),
19972000
SND_PCI_QUIRK(0x8086, 0x2081, "Intel NUC 10", 1),
19982001
{}
19992002
};

sound/pci/hda/patch_realtek.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9795,6 +9795,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
97959795
SND_PCI_QUIRK(0x103c, 0x83b9, "HP Spectre x360", ALC269_FIXUP_HP_MUTE_LED_MIC3),
97969796
SND_PCI_QUIRK(0x103c, 0x841c, "HP Pavilion 15-CK0xx", ALC269_FIXUP_HP_MUTE_LED_MIC3),
97979797
SND_PCI_QUIRK(0x103c, 0x8497, "HP Envy x360", ALC269_FIXUP_HP_MUTE_LED_MIC3),
9798+
SND_PCI_QUIRK(0x103c, 0x84ae, "HP 15-db0403ng", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2),
97989799
SND_PCI_QUIRK(0x103c, 0x84da, "HP OMEN dc0019-ur", ALC295_FIXUP_HP_OMEN),
97999800
SND_PCI_QUIRK(0x103c, 0x84e7, "HP Pavilion 15", ALC269_FIXUP_HP_MUTE_LED_MIC3),
98009801
SND_PCI_QUIRK(0x103c, 0x8519, "HP Spectre x360 15-df0xxx", ALC285_FIXUP_HP_SPECTRE_X360),

sound/pci/hda/tas2781_hda_i2c.c

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -455,9 +455,9 @@ static int tas2781_save_calibration(struct tasdevice_priv *tas_priv)
455455
status = efi.get_variable(efi_name, &efi_guid, &attr,
456456
&tas_priv->cali_data.total_sz,
457457
tas_priv->cali_data.data);
458-
if (status != EFI_SUCCESS)
459-
return -EINVAL;
460458
}
459+
if (status != EFI_SUCCESS)
460+
return -EINVAL;
461461

462462
tmp_val = (unsigned int *)tas_priv->cali_data.data;
463463

@@ -550,11 +550,6 @@ static void tasdev_fw_ready(const struct firmware *fmw, void *context)
550550
tas2781_save_calibration(tas_priv);
551551

552552
out:
553-
if (tas_priv->fw_state == TASDEVICE_DSP_FW_FAIL) {
554-
/*If DSP FW fail, kcontrol won't be created */
555-
tasdevice_config_info_remove(tas_priv);
556-
tasdevice_dsp_remove(tas_priv);
557-
}
558553
mutex_unlock(&tas_priv->codec_lock);
559554
if (fmw)
560555
release_firmware(fmw);
@@ -612,9 +607,13 @@ static void tas2781_hda_unbind(struct device *dev,
612607
{
613608
struct tasdevice_priv *tas_priv = dev_get_drvdata(dev);
614609
struct hda_component *comps = master_data;
610+
comps = &comps[tas_priv->index];
615611

616-
if (comps[tas_priv->index].dev == dev)
617-
memset(&comps[tas_priv->index], 0, sizeof(*comps));
612+
if (comps->dev == dev) {
613+
comps->dev = NULL;
614+
memset(comps->name, 0, sizeof(comps->name));
615+
comps->playback_hook = NULL;
616+
}
618617

619618
tasdevice_config_info_remove(tas_priv);
620619
tasdevice_dsp_remove(tas_priv);
@@ -675,14 +674,14 @@ static int tas2781_hda_i2c_probe(struct i2c_client *clt)
675674

676675
pm_runtime_put_autosuspend(tas_priv->dev);
677676

677+
tas2781_reset(tas_priv);
678+
678679
ret = component_add(tas_priv->dev, &tas2781_hda_comp_ops);
679680
if (ret) {
680681
dev_err(tas_priv->dev, "Register component failed: %d\n", ret);
681682
pm_runtime_disable(tas_priv->dev);
682-
goto err;
683683
}
684684

685-
tas2781_reset(tas_priv);
686685
err:
687686
if (ret)
688687
tas2781_hda_remove(&clt->dev);

0 commit comments

Comments
 (0)