sound fixes for 6.7-rc6
A collection of HD-audio quirks for TAS2781 codec and device-specific workarounds. -----BEGIN PGP SIGNATURE----- iQJCBAABCAAsFiEEIXTw5fNLNI7mMiVaLtJE4w1nLE8FAmV7+yQOHHRpd2FpQHN1 c2UuZGUACgkQLtJE4w1nLE9iQBAA0TxpzzVqstG9XdsDGJcAgrPlpviwgw0+y7zX YTL8qgo++LB2ask0oUy+p5bfElXkHaXHpjJfQoEgd+8TtVZkSh/QCvjoaxsi9f7M IXe3iRs4agvcCm6cDLu/Ye9pUaSO0FZ5QurkdUHf4DRIxwsyWvdG5uWRIyxuLusA h5UgfaG0mt3DfdoeVXBhiNSp8wPuALHwgaZFDEi6YwbhuCKvXHETwDw8JLvS/q3h n75Px4jPi4d7xlcL83gHWOYmQMFRfzerMckTMIRfEH5SQtgg8AxjVrsuwuHwfTIn eUaRskgeKNbxGZFWMlnaZ8o/An/htND+LV94BuAQwVbPHnS/NJR8KX14wEtYxnM0 QjBxBzTrlgBrMnXF/X6BY4GTZc/zTqhXbNHwrWzQ+NxEMVf5dPm7QdFVwlP3iR1o /LeCMKr/ZZFGHHjsMGHkBzhqCvGnt1hlperBmYYJjtUr+tIf42Lp2HftrW3dJ4ST zPFagZhVU9kBWllVbDVxehYpVP2sd4+2MM5ryrG5K+6KtuVspAw5Y+6GjPdfpTG+ /3TxLP4aJpijy+C14gsXaSoUYqqwNlIx5wfnTtOH/uJUQyVIuNDldex8og0S+SGY XKcodufTXjyDNb5xYQxrtgtJNOmnfvWXOf6F61OglaupO0qpPhZhCZm2FXC0zgq1 BLKGLzM= =LpMQ -----END PGP SIGNATURE----- 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
This commit is contained in:
commit
26e7a30141
@ -1993,7 +1993,10 @@ static const struct snd_pci_quirk force_connect_list[] = {
|
||||
SND_PCI_QUIRK(0x103c, 0x871a, "HP", 1),
|
||||
SND_PCI_QUIRK(0x103c, 0x8711, "HP", 1),
|
||||
SND_PCI_QUIRK(0x103c, 0x8715, "HP", 1),
|
||||
SND_PCI_QUIRK(0x1043, 0x86ae, "ASUS", 1), /* Z170 PRO */
|
||||
SND_PCI_QUIRK(0x1043, 0x86c7, "ASUS", 1), /* Z170M PLUS */
|
||||
SND_PCI_QUIRK(0x1462, 0xec94, "MS-7C94", 1),
|
||||
SND_PCI_QUIRK(0x8086, 0x2060, "Intel NUC5CPYB", 1),
|
||||
SND_PCI_QUIRK(0x8086, 0x2081, "Intel NUC 10", 1),
|
||||
{}
|
||||
};
|
||||
|
@ -9795,6 +9795,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
|
||||
SND_PCI_QUIRK(0x103c, 0x83b9, "HP Spectre x360", ALC269_FIXUP_HP_MUTE_LED_MIC3),
|
||||
SND_PCI_QUIRK(0x103c, 0x841c, "HP Pavilion 15-CK0xx", ALC269_FIXUP_HP_MUTE_LED_MIC3),
|
||||
SND_PCI_QUIRK(0x103c, 0x8497, "HP Envy x360", ALC269_FIXUP_HP_MUTE_LED_MIC3),
|
||||
SND_PCI_QUIRK(0x103c, 0x84ae, "HP 15-db0403ng", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2),
|
||||
SND_PCI_QUIRK(0x103c, 0x84da, "HP OMEN dc0019-ur", ALC295_FIXUP_HP_OMEN),
|
||||
SND_PCI_QUIRK(0x103c, 0x84e7, "HP Pavilion 15", ALC269_FIXUP_HP_MUTE_LED_MIC3),
|
||||
SND_PCI_QUIRK(0x103c, 0x8519, "HP Spectre x360 15-df0xxx", ALC285_FIXUP_HP_SPECTRE_X360),
|
||||
|
@ -455,9 +455,9 @@ static int tas2781_save_calibration(struct tasdevice_priv *tas_priv)
|
||||
status = efi.get_variable(efi_name, &efi_guid, &attr,
|
||||
&tas_priv->cali_data.total_sz,
|
||||
tas_priv->cali_data.data);
|
||||
if (status != EFI_SUCCESS)
|
||||
return -EINVAL;
|
||||
}
|
||||
if (status != EFI_SUCCESS)
|
||||
return -EINVAL;
|
||||
|
||||
tmp_val = (unsigned int *)tas_priv->cali_data.data;
|
||||
|
||||
@ -550,11 +550,6 @@ static void tasdev_fw_ready(const struct firmware *fmw, void *context)
|
||||
tas2781_save_calibration(tas_priv);
|
||||
|
||||
out:
|
||||
if (tas_priv->fw_state == TASDEVICE_DSP_FW_FAIL) {
|
||||
/*If DSP FW fail, kcontrol won't be created */
|
||||
tasdevice_config_info_remove(tas_priv);
|
||||
tasdevice_dsp_remove(tas_priv);
|
||||
}
|
||||
mutex_unlock(&tas_priv->codec_lock);
|
||||
if (fmw)
|
||||
release_firmware(fmw);
|
||||
@ -612,9 +607,13 @@ static void tas2781_hda_unbind(struct device *dev,
|
||||
{
|
||||
struct tasdevice_priv *tas_priv = dev_get_drvdata(dev);
|
||||
struct hda_component *comps = master_data;
|
||||
comps = &comps[tas_priv->index];
|
||||
|
||||
if (comps[tas_priv->index].dev == dev)
|
||||
memset(&comps[tas_priv->index], 0, sizeof(*comps));
|
||||
if (comps->dev == dev) {
|
||||
comps->dev = NULL;
|
||||
memset(comps->name, 0, sizeof(comps->name));
|
||||
comps->playback_hook = NULL;
|
||||
}
|
||||
|
||||
tasdevice_config_info_remove(tas_priv);
|
||||
tasdevice_dsp_remove(tas_priv);
|
||||
@ -675,14 +674,14 @@ static int tas2781_hda_i2c_probe(struct i2c_client *clt)
|
||||
|
||||
pm_runtime_put_autosuspend(tas_priv->dev);
|
||||
|
||||
tas2781_reset(tas_priv);
|
||||
|
||||
ret = component_add(tas_priv->dev, &tas2781_hda_comp_ops);
|
||||
if (ret) {
|
||||
dev_err(tas_priv->dev, "Register component failed: %d\n", ret);
|
||||
pm_runtime_disable(tas_priv->dev);
|
||||
goto err;
|
||||
}
|
||||
|
||||
tas2781_reset(tas_priv);
|
||||
err:
|
||||
if (ret)
|
||||
tas2781_hda_remove(&clt->dev);
|
||||
|
Loading…
x
Reference in New Issue
Block a user