sound fixes for 5.11-rc3
Here is a collection of USB- and HD-audio fixes: most of them are device-specific quirks while one fix is for a regression by the incorrect mutex unlock introduced in 5.11-rc1. -----BEGIN PGP SIGNATURE----- iQJCBAABCAAsFiEEIXTw5fNLNI7mMiVaLtJE4w1nLE8FAl/0SIcOHHRpd2FpQHN1 c2UuZGUACgkQLtJE4w1nLE8ogBAA1Il8zJP0HIq4cfqxYJloGzfmNbqCCozGc7Ka EDyKr0eX6JYOgamPxPYhbKJdoK3t9cye6fpXgAEuwmviJCF3kQ9ixrCyJStOQ5X0 xaaMKhszVsBGVpVfU1371huH9GZ+HlvmjwTlfdJmVj6hCq+t6BJqwAw7xD7A+Tyc 0CQB9tYcMOiucvJhN4rw+QCZl+nIDraW65R8LkxSm+oYsPHW35R9kZQ+EgZfvZj4 tAC86UoLC06WXq1921mUhD+uZ4WnCF054jLsWVQdepT10vARb9QvE16nyOovsta9 W5OYX4YSAVhdLeGH7NhrXOz3pRr39eyRHllRhfErQh8LJUgGTGa4GgOYxoZpK0/Y PF44aXgm5jBf7ik0fFxZzQCKDaJOdrvlieVKdNhYw7C6V66Xvwy5Y9OQbeByzfrH YvhQim1wB9Nj2KyU080VzjWt67pCFy/vT+J1iE6412aLkppF1nkb+D6OgagLAdVl yOHk7FPTanjAQnizNQjgG0fbeeqv8fjYDuJewDJb9tRoVbEFD8tWG80HlTM97HaN /Fjudp5h2jN+WrSHaRCj8QrKB3gU8yNImoI3Z7CFc8SQ0zd6uKbHwYt3Sc145PJH E3z9XHBRTJoNxTLidudwXrguJzAqO3Bpt4Gc+w6t1pzwMKeQ3Cx1M7Cx5r1d2QTp Ey1U4ao= =2WUV -----END PGP SIGNATURE----- Merge tag 'sound-5.11-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "Here is a collection of USB- and HD-audio fixes. Most of them are device-specific quirks while one fix is for a regression due to an incorrect mutex unlock introduced in this merge window" * tag 'sound-5.11-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: hda/via: Fix runtime PM for Clevo W35xSS ALSA: usb-audio: Add quirk for RC-505 ALSA: hda/hdmi: Fix incorrect mutex unlock in silent_stream_disable() ALSA: hda/realtek: Enable mute and micmute LED on HP EliteBook 850 G7 ALSA: hda/realtek: Add two "Intel Reference board" SSID in the ALC256. ALSA: hda/realtek: Add mute LED quirk for more HP laptops ALSA: hda/conexant: add a new hda codec CX11970 ALSA: usb-audio: Add quirk for BOSS AD-10 ALSA: usb-audio: Fix UBSAN warnings for MIDI jacks ALSA: hda/realtek - Modify Dell platform name ALSA: hda/realtek - Fix speaker volume control on Lenovo C940
This commit is contained in:
Коммит
1d011777cd
|
@ -2220,8 +2220,6 @@ static const struct snd_pci_quirk power_save_denylist[] = {
|
|||
SND_PCI_QUIRK(0x1849, 0x7662, "Asrock H81M-HDS", 0),
|
||||
/* https://bugzilla.redhat.com/show_bug.cgi?id=1525104 */
|
||||
SND_PCI_QUIRK(0x1043, 0x8733, "Asus Prime X370-Pro", 0),
|
||||
/* https://bugzilla.redhat.com/show_bug.cgi?id=1581607 */
|
||||
SND_PCI_QUIRK(0x1558, 0x3501, "Clevo W35xSS_370SS", 0),
|
||||
/* https://bugzilla.redhat.com/show_bug.cgi?id=1525104 */
|
||||
SND_PCI_QUIRK(0x1558, 0x6504, "Clevo W65_67SB", 0),
|
||||
/* https://bugzilla.redhat.com/show_bug.cgi?id=1525104 */
|
||||
|
|
|
@ -1070,6 +1070,7 @@ static int patch_conexant_auto(struct hda_codec *codec)
|
|||
static const struct hda_device_id snd_hda_id_conexant[] = {
|
||||
HDA_CODEC_ENTRY(0x14f11f86, "CX8070", patch_conexant_auto),
|
||||
HDA_CODEC_ENTRY(0x14f12008, "CX8200", patch_conexant_auto),
|
||||
HDA_CODEC_ENTRY(0x14f120d0, "CX11970", patch_conexant_auto),
|
||||
HDA_CODEC_ENTRY(0x14f15045, "CX20549 (Venice)", patch_conexant_auto),
|
||||
HDA_CODEC_ENTRY(0x14f15047, "CX20551 (Waikiki)", patch_conexant_auto),
|
||||
HDA_CODEC_ENTRY(0x14f15051, "CX20561 (Hermosa)", patch_conexant_auto),
|
||||
|
|
|
@ -1733,7 +1733,7 @@ static void silent_stream_disable(struct hda_codec *codec,
|
|||
per_pin->silent_stream = false;
|
||||
|
||||
unlock_out:
|
||||
mutex_unlock(&spec->pcm_lock);
|
||||
mutex_unlock(&per_pin->lock);
|
||||
}
|
||||
|
||||
/* update ELD and jack state via audio component */
|
||||
|
|
|
@ -6289,6 +6289,7 @@ enum {
|
|||
ALC221_FIXUP_HP_FRONT_MIC,
|
||||
ALC292_FIXUP_TPT460,
|
||||
ALC298_FIXUP_SPK_VOLUME,
|
||||
ALC298_FIXUP_LENOVO_SPK_VOLUME,
|
||||
ALC256_FIXUP_DELL_INSPIRON_7559_SUBWOOFER,
|
||||
ALC269_FIXUP_ATIV_BOOK_8,
|
||||
ALC221_FIXUP_HP_MIC_NO_PRESENCE,
|
||||
|
@ -7119,6 +7120,10 @@ static const struct hda_fixup alc269_fixups[] = {
|
|||
.chained = true,
|
||||
.chain_id = ALC298_FIXUP_DELL_AIO_MIC_NO_PRESENCE,
|
||||
},
|
||||
[ALC298_FIXUP_LENOVO_SPK_VOLUME] = {
|
||||
.type = HDA_FIXUP_FUNC,
|
||||
.v.func = alc298_fixup_speaker_volume,
|
||||
},
|
||||
[ALC295_FIXUP_DISABLE_DAC3] = {
|
||||
.type = HDA_FIXUP_FUNC,
|
||||
.v.func = alc295_fixup_disable_dac3,
|
||||
|
@ -7885,7 +7890,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
|
|||
SND_PCI_QUIRK(0x1028, 0x09bf, "Dell Precision", ALC233_FIXUP_ASUS_MIC_NO_PRESENCE),
|
||||
SND_PCI_QUIRK(0x1028, 0x0a2e, "Dell", ALC236_FIXUP_DELL_AIO_HEADSET_MIC),
|
||||
SND_PCI_QUIRK(0x1028, 0x0a30, "Dell", ALC236_FIXUP_DELL_AIO_HEADSET_MIC),
|
||||
SND_PCI_QUIRK(0x1028, 0x0a58, "Dell Precision 3650 Tower", ALC255_FIXUP_DELL_HEADSET_MIC),
|
||||
SND_PCI_QUIRK(0x1028, 0x0a58, "Dell", ALC255_FIXUP_DELL_HEADSET_MIC),
|
||||
SND_PCI_QUIRK(0x1028, 0x164a, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
|
||||
SND_PCI_QUIRK(0x1028, 0x164b, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
|
||||
SND_PCI_QUIRK(0x103c, 0x1586, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC2),
|
||||
|
@ -7959,11 +7964,13 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
|
|||
SND_PCI_QUIRK(0x103c, 0x8497, "HP Envy x360", ALC269_FIXUP_HP_MUTE_LED_MIC3),
|
||||
SND_PCI_QUIRK(0x103c, 0x84e7, "HP Pavilion 15", ALC269_FIXUP_HP_MUTE_LED_MIC3),
|
||||
SND_PCI_QUIRK(0x103c, 0x869d, "HP", ALC236_FIXUP_HP_MUTE_LED),
|
||||
SND_PCI_QUIRK(0x103c, 0x8724, "HP EliteBook 850 G7", ALC285_FIXUP_HP_GPIO_LED),
|
||||
SND_PCI_QUIRK(0x103c, 0x8729, "HP", ALC285_FIXUP_HP_GPIO_LED),
|
||||
SND_PCI_QUIRK(0x103c, 0x8736, "HP", ALC285_FIXUP_HP_GPIO_AMP_INIT),
|
||||
SND_PCI_QUIRK(0x103c, 0x8760, "HP", ALC285_FIXUP_HP_MUTE_LED),
|
||||
SND_PCI_QUIRK(0x103c, 0x877a, "HP", ALC285_FIXUP_HP_MUTE_LED),
|
||||
SND_PCI_QUIRK(0x103c, 0x877d, "HP", ALC236_FIXUP_HP_MUTE_LED),
|
||||
SND_PCI_QUIRK(0x103c, 0x87c8, "HP", ALC287_FIXUP_HP_GPIO_LED),
|
||||
SND_PCI_QUIRK(0x103c, 0x87f4, "HP", ALC287_FIXUP_HP_GPIO_LED),
|
||||
SND_PCI_QUIRK(0x103c, 0x87f5, "HP", ALC287_FIXUP_HP_GPIO_LED),
|
||||
SND_PCI_QUIRK(0x1043, 0x103e, "ASUS X540SA", ALC256_FIXUP_ASUS_MIC),
|
||||
|
@ -8021,6 +8028,8 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
|
|||
SND_PCI_QUIRK(0x10cf, 0x1845, "Lifebook U904", ALC269_FIXUP_LIFEBOOK_EXTMIC),
|
||||
SND_PCI_QUIRK(0x10ec, 0x10f2, "Intel Reference board", ALC700_FIXUP_INTEL_REFERENCE),
|
||||
SND_PCI_QUIRK(0x10ec, 0x1230, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
|
||||
SND_PCI_QUIRK(0x10ec, 0x1252, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
|
||||
SND_PCI_QUIRK(0x10ec, 0x1254, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
|
||||
SND_PCI_QUIRK(0x10f7, 0x8338, "Panasonic CF-SZ6", ALC269_FIXUP_HEADSET_MODE),
|
||||
SND_PCI_QUIRK(0x144d, 0xc109, "Samsung Ativ book 9 (NP900X3G)", ALC269_FIXUP_INV_DMIC),
|
||||
SND_PCI_QUIRK(0x144d, 0xc169, "Samsung Notebook 9 Pen (NP930SBE-K01US)", ALC298_FIXUP_SAMSUNG_HEADPHONE_VERY_QUIET),
|
||||
|
@ -8126,6 +8135,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
|
|||
SND_PCI_QUIRK(0x17aa, 0x3151, "ThinkCentre Station", ALC283_FIXUP_HEADSET_MIC),
|
||||
SND_PCI_QUIRK(0x17aa, 0x3176, "ThinkCentre Station", ALC283_FIXUP_HEADSET_MIC),
|
||||
SND_PCI_QUIRK(0x17aa, 0x3178, "ThinkCentre Station", ALC283_FIXUP_HEADSET_MIC),
|
||||
SND_PCI_QUIRK(0x17aa, 0x3818, "Lenovo C940", ALC298_FIXUP_LENOVO_SPK_VOLUME),
|
||||
SND_PCI_QUIRK(0x17aa, 0x3902, "Lenovo E50-80", ALC269_FIXUP_DMIC_THINKPAD_ACPI),
|
||||
SND_PCI_QUIRK(0x17aa, 0x3977, "IdeaPad S210", ALC283_FIXUP_INT_MIC),
|
||||
SND_PCI_QUIRK(0x17aa, 0x3978, "Lenovo B50-70", ALC269_FIXUP_DMIC_THINKPAD_ACPI),
|
||||
|
|
|
@ -1002,6 +1002,7 @@ static const struct hda_verb vt1802_init_verbs[] = {
|
|||
enum {
|
||||
VIA_FIXUP_INTMIC_BOOST,
|
||||
VIA_FIXUP_ASUS_G75,
|
||||
VIA_FIXUP_POWER_SAVE,
|
||||
};
|
||||
|
||||
static void via_fixup_intmic_boost(struct hda_codec *codec,
|
||||
|
@ -1011,6 +1012,13 @@ static void via_fixup_intmic_boost(struct hda_codec *codec,
|
|||
override_mic_boost(codec, 0x30, 0, 2, 40);
|
||||
}
|
||||
|
||||
static void via_fixup_power_save(struct hda_codec *codec,
|
||||
const struct hda_fixup *fix, int action)
|
||||
{
|
||||
if (action == HDA_FIXUP_ACT_PRE_PROBE)
|
||||
codec->power_save_node = 0;
|
||||
}
|
||||
|
||||
static const struct hda_fixup via_fixups[] = {
|
||||
[VIA_FIXUP_INTMIC_BOOST] = {
|
||||
.type = HDA_FIXUP_FUNC,
|
||||
|
@ -1025,11 +1033,16 @@ static const struct hda_fixup via_fixups[] = {
|
|||
{ }
|
||||
}
|
||||
},
|
||||
[VIA_FIXUP_POWER_SAVE] = {
|
||||
.type = HDA_FIXUP_FUNC,
|
||||
.v.func = via_fixup_power_save,
|
||||
},
|
||||
};
|
||||
|
||||
static const struct snd_pci_quirk vt2002p_fixups[] = {
|
||||
SND_PCI_QUIRK(0x1043, 0x1487, "Asus G75", VIA_FIXUP_ASUS_G75),
|
||||
SND_PCI_QUIRK(0x1043, 0x8532, "Asus X202E", VIA_FIXUP_INTMIC_BOOST),
|
||||
SND_PCI_QUIRK(0x1558, 0x3501, "Clevo W35xSS_370SS", VIA_FIXUP_POWER_SAVE),
|
||||
{}
|
||||
};
|
||||
|
||||
|
|
|
@ -74,10 +74,12 @@ static const struct snd_usb_implicit_fb_match playback_implicit_fb_quirks[] = {
|
|||
|
||||
/* No quirk for playback but with capture quirk (see below) */
|
||||
IMPLICIT_FB_SKIP_DEV(0x0582, 0x0130), /* BOSS BR-80 */
|
||||
IMPLICIT_FB_SKIP_DEV(0x0582, 0x0171), /* BOSS RC-505 */
|
||||
IMPLICIT_FB_SKIP_DEV(0x0582, 0x0189), /* BOSS GT-100v2 */
|
||||
IMPLICIT_FB_SKIP_DEV(0x0582, 0x01d6), /* BOSS GT-1 */
|
||||
IMPLICIT_FB_SKIP_DEV(0x0582, 0x01d8), /* BOSS Katana */
|
||||
IMPLICIT_FB_SKIP_DEV(0x0582, 0x01e5), /* BOSS GT-001 */
|
||||
IMPLICIT_FB_SKIP_DEV(0x0582, 0x0203), /* BOSS AD-10 */
|
||||
|
||||
{} /* terminator */
|
||||
};
|
||||
|
@ -85,10 +87,12 @@ static const struct snd_usb_implicit_fb_match playback_implicit_fb_quirks[] = {
|
|||
/* Implicit feedback quirk table for capture: only FIXED type */
|
||||
static const struct snd_usb_implicit_fb_match capture_implicit_fb_quirks[] = {
|
||||
IMPLICIT_FB_FIXED_DEV(0x0582, 0x0130, 0x0d, 0x01), /* BOSS BR-80 */
|
||||
IMPLICIT_FB_FIXED_DEV(0x0582, 0x0171, 0x0d, 0x01), /* BOSS RC-505 */
|
||||
IMPLICIT_FB_FIXED_DEV(0x0582, 0x0189, 0x0d, 0x01), /* BOSS GT-100v2 */
|
||||
IMPLICIT_FB_FIXED_DEV(0x0582, 0x01d6, 0x0d, 0x01), /* BOSS GT-1 */
|
||||
IMPLICIT_FB_FIXED_DEV(0x0582, 0x01d8, 0x0d, 0x01), /* BOSS Katana */
|
||||
IMPLICIT_FB_FIXED_DEV(0x0582, 0x01e5, 0x0d, 0x01), /* BOSS GT-001 */
|
||||
IMPLICIT_FB_FIXED_DEV(0x0582, 0x0203, 0x0d, 0x01), /* BOSS AD-10 */
|
||||
|
||||
{} /* terminator */
|
||||
};
|
||||
|
|
|
@ -1889,6 +1889,8 @@ static int snd_usbmidi_get_ms_info(struct snd_usb_midi *umidi,
|
|||
ms_ep = find_usb_ms_endpoint_descriptor(hostep);
|
||||
if (!ms_ep)
|
||||
continue;
|
||||
if (ms_ep->bNumEmbMIDIJack > 0x10)
|
||||
continue;
|
||||
if (usb_endpoint_dir_out(ep)) {
|
||||
if (endpoints[epidx].out_ep) {
|
||||
if (++epidx >= MIDI_MAX_ENDPOINTS) {
|
||||
|
@ -2141,6 +2143,8 @@ static int snd_usbmidi_detect_roland(struct snd_usb_midi *umidi,
|
|||
cs_desc[1] == USB_DT_CS_INTERFACE &&
|
||||
cs_desc[2] == 0xf1 &&
|
||||
cs_desc[3] == 0x02) {
|
||||
if (cs_desc[4] > 0x10 || cs_desc[5] > 0x10)
|
||||
continue;
|
||||
endpoint->in_cables = (1 << cs_desc[4]) - 1;
|
||||
endpoint->out_cables = (1 << cs_desc[5]) - 1;
|
||||
return snd_usbmidi_detect_endpoints(umidi, endpoint, 1);
|
||||
|
|
Загрузка…
Ссылка в новой задаче