Skip to content

Commit 1d01177

Browse files
committed
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
2 parents f6e7a02 + 4bfd624 commit 1d01177

File tree

7 files changed

+34
-4
lines changed

7 files changed

+34
-4
lines changed

sound/pci/hda/hda_intel.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2220,8 +2220,6 @@ static const struct snd_pci_quirk power_save_denylist[] = {
22202220
SND_PCI_QUIRK(0x1849, 0x7662, "Asrock H81M-HDS", 0),
22212221
/* https://bugzilla.redhat.com/show_bug.cgi?id=1525104 */
22222222
SND_PCI_QUIRK(0x1043, 0x8733, "Asus Prime X370-Pro", 0),
2223-
/* https://bugzilla.redhat.com/show_bug.cgi?id=1581607 */
2224-
SND_PCI_QUIRK(0x1558, 0x3501, "Clevo W35xSS_370SS", 0),
22252223
/* https://bugzilla.redhat.com/show_bug.cgi?id=1525104 */
22262224
SND_PCI_QUIRK(0x1558, 0x6504, "Clevo W65_67SB", 0),
22272225
/* https://bugzilla.redhat.com/show_bug.cgi?id=1525104 */

sound/pci/hda/patch_conexant.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1070,6 +1070,7 @@ static int patch_conexant_auto(struct hda_codec *codec)
10701070
static const struct hda_device_id snd_hda_id_conexant[] = {
10711071
HDA_CODEC_ENTRY(0x14f11f86, "CX8070", patch_conexant_auto),
10721072
HDA_CODEC_ENTRY(0x14f12008, "CX8200", patch_conexant_auto),
1073+
HDA_CODEC_ENTRY(0x14f120d0, "CX11970", patch_conexant_auto),
10731074
HDA_CODEC_ENTRY(0x14f15045, "CX20549 (Venice)", patch_conexant_auto),
10741075
HDA_CODEC_ENTRY(0x14f15047, "CX20551 (Waikiki)", patch_conexant_auto),
10751076
HDA_CODEC_ENTRY(0x14f15051, "CX20561 (Hermosa)", patch_conexant_auto),

sound/pci/hda/patch_hdmi.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1733,7 +1733,7 @@ static void silent_stream_disable(struct hda_codec *codec,
17331733
per_pin->silent_stream = false;
17341734

17351735
unlock_out:
1736-
mutex_unlock(&spec->pcm_lock);
1736+
mutex_unlock(&per_pin->lock);
17371737
}
17381738

17391739
/* update ELD and jack state via audio component */

sound/pci/hda/patch_realtek.c

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6289,6 +6289,7 @@ enum {
62896289
ALC221_FIXUP_HP_FRONT_MIC,
62906290
ALC292_FIXUP_TPT460,
62916291
ALC298_FIXUP_SPK_VOLUME,
6292+
ALC298_FIXUP_LENOVO_SPK_VOLUME,
62926293
ALC256_FIXUP_DELL_INSPIRON_7559_SUBWOOFER,
62936294
ALC269_FIXUP_ATIV_BOOK_8,
62946295
ALC221_FIXUP_HP_MIC_NO_PRESENCE,
@@ -7119,6 +7120,10 @@ static const struct hda_fixup alc269_fixups[] = {
71197120
.chained = true,
71207121
.chain_id = ALC298_FIXUP_DELL_AIO_MIC_NO_PRESENCE,
71217122
},
7123+
[ALC298_FIXUP_LENOVO_SPK_VOLUME] = {
7124+
.type = HDA_FIXUP_FUNC,
7125+
.v.func = alc298_fixup_speaker_volume,
7126+
},
71227127
[ALC295_FIXUP_DISABLE_DAC3] = {
71237128
.type = HDA_FIXUP_FUNC,
71247129
.v.func = alc295_fixup_disable_dac3,
@@ -7885,7 +7890,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
78857890
SND_PCI_QUIRK(0x1028, 0x09bf, "Dell Precision", ALC233_FIXUP_ASUS_MIC_NO_PRESENCE),
78867891
SND_PCI_QUIRK(0x1028, 0x0a2e, "Dell", ALC236_FIXUP_DELL_AIO_HEADSET_MIC),
78877892
SND_PCI_QUIRK(0x1028, 0x0a30, "Dell", ALC236_FIXUP_DELL_AIO_HEADSET_MIC),
7888-
SND_PCI_QUIRK(0x1028, 0x0a58, "Dell Precision 3650 Tower", ALC255_FIXUP_DELL_HEADSET_MIC),
7893+
SND_PCI_QUIRK(0x1028, 0x0a58, "Dell", ALC255_FIXUP_DELL_HEADSET_MIC),
78897894
SND_PCI_QUIRK(0x1028, 0x164a, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
78907895
SND_PCI_QUIRK(0x1028, 0x164b, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
78917896
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[] = {
79597964
SND_PCI_QUIRK(0x103c, 0x8497, "HP Envy x360", ALC269_FIXUP_HP_MUTE_LED_MIC3),
79607965
SND_PCI_QUIRK(0x103c, 0x84e7, "HP Pavilion 15", ALC269_FIXUP_HP_MUTE_LED_MIC3),
79617966
SND_PCI_QUIRK(0x103c, 0x869d, "HP", ALC236_FIXUP_HP_MUTE_LED),
7967+
SND_PCI_QUIRK(0x103c, 0x8724, "HP EliteBook 850 G7", ALC285_FIXUP_HP_GPIO_LED),
79627968
SND_PCI_QUIRK(0x103c, 0x8729, "HP", ALC285_FIXUP_HP_GPIO_LED),
79637969
SND_PCI_QUIRK(0x103c, 0x8736, "HP", ALC285_FIXUP_HP_GPIO_AMP_INIT),
79647970
SND_PCI_QUIRK(0x103c, 0x8760, "HP", ALC285_FIXUP_HP_MUTE_LED),
79657971
SND_PCI_QUIRK(0x103c, 0x877a, "HP", ALC285_FIXUP_HP_MUTE_LED),
79667972
SND_PCI_QUIRK(0x103c, 0x877d, "HP", ALC236_FIXUP_HP_MUTE_LED),
7973+
SND_PCI_QUIRK(0x103c, 0x87c8, "HP", ALC287_FIXUP_HP_GPIO_LED),
79677974
SND_PCI_QUIRK(0x103c, 0x87f4, "HP", ALC287_FIXUP_HP_GPIO_LED),
79687975
SND_PCI_QUIRK(0x103c, 0x87f5, "HP", ALC287_FIXUP_HP_GPIO_LED),
79697976
SND_PCI_QUIRK(0x1043, 0x103e, "ASUS X540SA", ALC256_FIXUP_ASUS_MIC),
@@ -8021,6 +8028,8 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
80218028
SND_PCI_QUIRK(0x10cf, 0x1845, "Lifebook U904", ALC269_FIXUP_LIFEBOOK_EXTMIC),
80228029
SND_PCI_QUIRK(0x10ec, 0x10f2, "Intel Reference board", ALC700_FIXUP_INTEL_REFERENCE),
80238030
SND_PCI_QUIRK(0x10ec, 0x1230, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
8031+
SND_PCI_QUIRK(0x10ec, 0x1252, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
8032+
SND_PCI_QUIRK(0x10ec, 0x1254, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
80248033
SND_PCI_QUIRK(0x10f7, 0x8338, "Panasonic CF-SZ6", ALC269_FIXUP_HEADSET_MODE),
80258034
SND_PCI_QUIRK(0x144d, 0xc109, "Samsung Ativ book 9 (NP900X3G)", ALC269_FIXUP_INV_DMIC),
80268035
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[] = {
81268135
SND_PCI_QUIRK(0x17aa, 0x3151, "ThinkCentre Station", ALC283_FIXUP_HEADSET_MIC),
81278136
SND_PCI_QUIRK(0x17aa, 0x3176, "ThinkCentre Station", ALC283_FIXUP_HEADSET_MIC),
81288137
SND_PCI_QUIRK(0x17aa, 0x3178, "ThinkCentre Station", ALC283_FIXUP_HEADSET_MIC),
8138+
SND_PCI_QUIRK(0x17aa, 0x3818, "Lenovo C940", ALC298_FIXUP_LENOVO_SPK_VOLUME),
81298139
SND_PCI_QUIRK(0x17aa, 0x3902, "Lenovo E50-80", ALC269_FIXUP_DMIC_THINKPAD_ACPI),
81308140
SND_PCI_QUIRK(0x17aa, 0x3977, "IdeaPad S210", ALC283_FIXUP_INT_MIC),
81318141
SND_PCI_QUIRK(0x17aa, 0x3978, "Lenovo B50-70", ALC269_FIXUP_DMIC_THINKPAD_ACPI),

sound/pci/hda/patch_via.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1002,6 +1002,7 @@ static const struct hda_verb vt1802_init_verbs[] = {
10021002
enum {
10031003
VIA_FIXUP_INTMIC_BOOST,
10041004
VIA_FIXUP_ASUS_G75,
1005+
VIA_FIXUP_POWER_SAVE,
10051006
};
10061007

10071008
static void via_fixup_intmic_boost(struct hda_codec *codec,
@@ -1011,6 +1012,13 @@ static void via_fixup_intmic_boost(struct hda_codec *codec,
10111012
override_mic_boost(codec, 0x30, 0, 2, 40);
10121013
}
10131014

1015+
static void via_fixup_power_save(struct hda_codec *codec,
1016+
const struct hda_fixup *fix, int action)
1017+
{
1018+
if (action == HDA_FIXUP_ACT_PRE_PROBE)
1019+
codec->power_save_node = 0;
1020+
}
1021+
10141022
static const struct hda_fixup via_fixups[] = {
10151023
[VIA_FIXUP_INTMIC_BOOST] = {
10161024
.type = HDA_FIXUP_FUNC,
@@ -1025,11 +1033,16 @@ static const struct hda_fixup via_fixups[] = {
10251033
{ }
10261034
}
10271035
},
1036+
[VIA_FIXUP_POWER_SAVE] = {
1037+
.type = HDA_FIXUP_FUNC,
1038+
.v.func = via_fixup_power_save,
1039+
},
10281040
};
10291041

10301042
static const struct snd_pci_quirk vt2002p_fixups[] = {
10311043
SND_PCI_QUIRK(0x1043, 0x1487, "Asus G75", VIA_FIXUP_ASUS_G75),
10321044
SND_PCI_QUIRK(0x1043, 0x8532, "Asus X202E", VIA_FIXUP_INTMIC_BOOST),
1045+
SND_PCI_QUIRK(0x1558, 0x3501, "Clevo W35xSS_370SS", VIA_FIXUP_POWER_SAVE),
10331046
{}
10341047
};
10351048

sound/usb/implicit.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,21 +74,25 @@ static const struct snd_usb_implicit_fb_match playback_implicit_fb_quirks[] = {
7474

7575
/* No quirk for playback but with capture quirk (see below) */
7676
IMPLICIT_FB_SKIP_DEV(0x0582, 0x0130), /* BOSS BR-80 */
77+
IMPLICIT_FB_SKIP_DEV(0x0582, 0x0171), /* BOSS RC-505 */
7778
IMPLICIT_FB_SKIP_DEV(0x0582, 0x0189), /* BOSS GT-100v2 */
7879
IMPLICIT_FB_SKIP_DEV(0x0582, 0x01d6), /* BOSS GT-1 */
7980
IMPLICIT_FB_SKIP_DEV(0x0582, 0x01d8), /* BOSS Katana */
8081
IMPLICIT_FB_SKIP_DEV(0x0582, 0x01e5), /* BOSS GT-001 */
82+
IMPLICIT_FB_SKIP_DEV(0x0582, 0x0203), /* BOSS AD-10 */
8183

8284
{} /* terminator */
8385
};
8486

8587
/* Implicit feedback quirk table for capture: only FIXED type */
8688
static const struct snd_usb_implicit_fb_match capture_implicit_fb_quirks[] = {
8789
IMPLICIT_FB_FIXED_DEV(0x0582, 0x0130, 0x0d, 0x01), /* BOSS BR-80 */
90+
IMPLICIT_FB_FIXED_DEV(0x0582, 0x0171, 0x0d, 0x01), /* BOSS RC-505 */
8891
IMPLICIT_FB_FIXED_DEV(0x0582, 0x0189, 0x0d, 0x01), /* BOSS GT-100v2 */
8992
IMPLICIT_FB_FIXED_DEV(0x0582, 0x01d6, 0x0d, 0x01), /* BOSS GT-1 */
9093
IMPLICIT_FB_FIXED_DEV(0x0582, 0x01d8, 0x0d, 0x01), /* BOSS Katana */
9194
IMPLICIT_FB_FIXED_DEV(0x0582, 0x01e5, 0x0d, 0x01), /* BOSS GT-001 */
95+
IMPLICIT_FB_FIXED_DEV(0x0582, 0x0203, 0x0d, 0x01), /* BOSS AD-10 */
9296

9397
{} /* terminator */
9498
};

sound/usb/midi.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1889,6 +1889,8 @@ static int snd_usbmidi_get_ms_info(struct snd_usb_midi *umidi,
18891889
ms_ep = find_usb_ms_endpoint_descriptor(hostep);
18901890
if (!ms_ep)
18911891
continue;
1892+
if (ms_ep->bNumEmbMIDIJack > 0x10)
1893+
continue;
18921894
if (usb_endpoint_dir_out(ep)) {
18931895
if (endpoints[epidx].out_ep) {
18941896
if (++epidx >= MIDI_MAX_ENDPOINTS) {
@@ -2141,6 +2143,8 @@ static int snd_usbmidi_detect_roland(struct snd_usb_midi *umidi,
21412143
cs_desc[1] == USB_DT_CS_INTERFACE &&
21422144
cs_desc[2] == 0xf1 &&
21432145
cs_desc[3] == 0x02) {
2146+
if (cs_desc[4] > 0x10 || cs_desc[5] > 0x10)
2147+
continue;
21442148
endpoint->in_cables = (1 << cs_desc[4]) - 1;
21452149
endpoint->out_cables = (1 << cs_desc[5]) - 1;
21462150
return snd_usbmidi_detect_endpoints(umidi, endpoint, 1);

0 commit comments

Comments
 (0)