From: Greg Kroah-Hartman Date: Sun, 17 Oct 2021 10:24:38 +0000 (+0200) Subject: 5.4-stable patches X-Git-Tag: v4.14.252~51 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d11c93e1b999d183b4b4e3d325436ba56053d1db;p=thirdparty%2Fkernel%2Fstable-queue.git 5.4-stable patches added patches: alsa-hda-realtek-add-quirk-for-clevo-x170km-g.patch alsa-hda-realtek-alc236-headset-mic-recording-issue.patch alsa-hda-realtek-complete-partial-device-name-to-avoid-ambiguity.patch alsa-hda-realtek-fix-the-mic-type-detection-issue-for-asus-g551jw.patch alsa-seq-fix-a-potential-uaf-by-wrong-private_free-call-order.patch alsa-usb-audio-add-quirk-for-vf0770.patch --- diff --git a/queue-5.4/alsa-hda-realtek-add-quirk-for-clevo-x170km-g.patch b/queue-5.4/alsa-hda-realtek-add-quirk-for-clevo-x170km-g.patch new file mode 100644 index 00000000000..e3501caed4e --- /dev/null +++ b/queue-5.4/alsa-hda-realtek-add-quirk-for-clevo-x170km-g.patch @@ -0,0 +1,31 @@ +From cc03069a397005da24f6783835c274d5aedf6043 Mon Sep 17 00:00:00 2001 +From: Werner Sembach +Date: Fri, 1 Oct 2021 15:31:11 +0200 +Subject: ALSA: hda/realtek: Add quirk for Clevo X170KM-G + +From: Werner Sembach + +commit cc03069a397005da24f6783835c274d5aedf6043 upstream. + +This applies a SND_PCI_QUIRK(...) to the Clevo X170KM-G barebone. This +fixes the issue of the devices internal Speaker not working. + +Signed-off-by: Werner Sembach +Cc: +Link: https://lore.kernel.org/r/20211001133111.428249-3-wse@tuxedocomputers.com +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman +--- + sound/pci/hda/patch_realtek.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/sound/pci/hda/patch_realtek.c ++++ b/sound/pci/hda/patch_realtek.c +@@ -2540,6 +2540,7 @@ static const struct snd_pci_quirk alc882 + SND_PCI_QUIRK(0x1558, 0x67e5, "Clevo PC70D[PRS](?:-D|-G)?", ALC1220_FIXUP_CLEVO_PB51ED_PINS), + SND_PCI_QUIRK(0x1558, 0x70d1, "Clevo PC70[ER][CDF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS), + SND_PCI_QUIRK(0x1558, 0x7714, "Clevo X170SM", ALC1220_FIXUP_CLEVO_PB51ED_PINS), ++ SND_PCI_QUIRK(0x1558, 0x7715, "Clevo X170KM-G", ALC1220_FIXUP_CLEVO_PB51ED), + SND_PCI_QUIRK(0x1558, 0x9501, "Clevo P950HR", ALC1220_FIXUP_CLEVO_P950), + SND_PCI_QUIRK(0x1558, 0x9506, "Clevo P955HQ", ALC1220_FIXUP_CLEVO_P950), + SND_PCI_QUIRK(0x1558, 0x950a, "Clevo P955H[PR]", ALC1220_FIXUP_CLEVO_P950), diff --git a/queue-5.4/alsa-hda-realtek-alc236-headset-mic-recording-issue.patch b/queue-5.4/alsa-hda-realtek-alc236-headset-mic-recording-issue.patch new file mode 100644 index 00000000000..b0e9c2b8811 --- /dev/null +++ b/queue-5.4/alsa-hda-realtek-alc236-headset-mic-recording-issue.patch @@ -0,0 +1,45 @@ +From 5aec98913095ed3b4424ed6c5fdeb6964e9734da Mon Sep 17 00:00:00 2001 +From: Kailang Yang +Date: Tue, 5 Oct 2021 14:35:14 +0800 +Subject: ALSA: hda/realtek - ALC236 headset MIC recording issue + +From: Kailang Yang + +commit 5aec98913095ed3b4424ed6c5fdeb6964e9734da upstream. + +In power save mode, the recording voice from headset mic will 2s more delay. +Add this patch will solve this issue. + +[ minor coding style fix by tiwai ] + +Signed-off-by: Kailang Yang +Tested-by: Kai-Heng Feng +Cc: +Link: https://lore.kernel.org/r/ccb0cdd5bbd7486eabbd8d987d384cb0@realtek.com +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman +--- + sound/pci/hda/patch_realtek.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +--- a/sound/pci/hda/patch_realtek.c ++++ b/sound/pci/hda/patch_realtek.c +@@ -517,6 +517,8 @@ static void alc_shutup_pins(struct hda_c + struct alc_spec *spec = codec->spec; + + switch (codec->core.vendor_id) { ++ case 0x10ec0236: ++ case 0x10ec0256: + case 0x10ec0283: + case 0x10ec0286: + case 0x10ec0288: +@@ -3522,7 +3524,8 @@ static void alc256_shutup(struct hda_cod + /* If disable 3k pulldown control for alc257, the Mic detection will not work correctly + * when booting with headset plugged. So skip setting it for the codec alc257 + */ +- if (codec->core.vendor_id != 0x10ec0257) ++ if (spec->codec_variant != ALC269_TYPE_ALC257 && ++ spec->codec_variant != ALC269_TYPE_ALC256) + alc_update_coef_idx(codec, 0x46, 0, 3 << 12); + + if (!spec->no_shutup_pins) diff --git a/queue-5.4/alsa-hda-realtek-complete-partial-device-name-to-avoid-ambiguity.patch b/queue-5.4/alsa-hda-realtek-complete-partial-device-name-to-avoid-ambiguity.patch new file mode 100644 index 00000000000..c1b798df651 --- /dev/null +++ b/queue-5.4/alsa-hda-realtek-complete-partial-device-name-to-avoid-ambiguity.patch @@ -0,0 +1,35 @@ +From 1f8d398e1cd8813f8ec16d55c086e8270a9c18ab Mon Sep 17 00:00:00 2001 +From: Werner Sembach +Date: Fri, 1 Oct 2021 15:31:10 +0200 +Subject: ALSA: hda/realtek: Complete partial device name to avoid ambiguity + +From: Werner Sembach + +commit 1f8d398e1cd8813f8ec16d55c086e8270a9c18ab upstream. + +The string "Clevo X170" is not enough to unambiguously identify the correct +device. + +Fixing it so another Clevo barebone name starting with "X170" can be added +without causing confusion. + +Signed-off-by: Werner Sembach +Cc: +Link: https://lore.kernel.org/r/20211001133111.428249-2-wse@tuxedocomputers.com +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman +--- + sound/pci/hda/patch_realtek.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/sound/pci/hda/patch_realtek.c ++++ b/sound/pci/hda/patch_realtek.c +@@ -2539,7 +2539,7 @@ static const struct snd_pci_quirk alc882 + SND_PCI_QUIRK(0x1558, 0x67e1, "Clevo PB71[DE][CDF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS), + SND_PCI_QUIRK(0x1558, 0x67e5, "Clevo PC70D[PRS](?:-D|-G)?", ALC1220_FIXUP_CLEVO_PB51ED_PINS), + SND_PCI_QUIRK(0x1558, 0x70d1, "Clevo PC70[ER][CDF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS), +- SND_PCI_QUIRK(0x1558, 0x7714, "Clevo X170", ALC1220_FIXUP_CLEVO_PB51ED_PINS), ++ SND_PCI_QUIRK(0x1558, 0x7714, "Clevo X170SM", ALC1220_FIXUP_CLEVO_PB51ED_PINS), + SND_PCI_QUIRK(0x1558, 0x9501, "Clevo P950HR", ALC1220_FIXUP_CLEVO_P950), + SND_PCI_QUIRK(0x1558, 0x9506, "Clevo P955HQ", ALC1220_FIXUP_CLEVO_P950), + SND_PCI_QUIRK(0x1558, 0x950a, "Clevo P955H[PR]", ALC1220_FIXUP_CLEVO_P950), diff --git a/queue-5.4/alsa-hda-realtek-fix-the-mic-type-detection-issue-for-asus-g551jw.patch b/queue-5.4/alsa-hda-realtek-fix-the-mic-type-detection-issue-for-asus-g551jw.patch new file mode 100644 index 00000000000..55e45515d91 --- /dev/null +++ b/queue-5.4/alsa-hda-realtek-fix-the-mic-type-detection-issue-for-asus-g551jw.patch @@ -0,0 +1,82 @@ +From a3fd1a986e499a06ac5ef95c3a39aa4611e7444c Mon Sep 17 00:00:00 2001 +From: Hui Wang +Date: Tue, 12 Oct 2021 19:47:48 +0800 +Subject: ALSA: hda/realtek: Fix the mic type detection issue for ASUS G551JW + +From: Hui Wang + +commit a3fd1a986e499a06ac5ef95c3a39aa4611e7444c upstream. + +We need to define the codec pin 0x1b to be the mic, but somehow +the mic doesn't support hot plugging detection, and Windows also has +this issue, so we set it to phantom headset-mic. + +Also the determine_headset_type() often returns the omtp type by a +mistake when we plug a ctia headset, this makes the mic can't record +sound at all. Because most of the headset are ctia type nowadays and +some machines have the fixed ctia type audio jack, it is possible this +machine has the fixed ctia jack too. Here we set this mic jack to +fixed ctia type, this could avoid the mic type detection mistake and +make the ctia headset work stable. + +BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=214537 +Reported-and-tested-by: msd +Cc: +Signed-off-by: Hui Wang +Link: https://lore.kernel.org/r/20211012114748.5238-1-hui.wang@canonical.com +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman +--- + sound/pci/hda/patch_realtek.c | 27 +++++++++++++++++++++++++++ + 1 file changed, 27 insertions(+) + +--- a/sound/pci/hda/patch_realtek.c ++++ b/sound/pci/hda/patch_realtek.c +@@ -9692,6 +9692,9 @@ enum { + ALC671_FIXUP_HP_HEADSET_MIC2, + ALC662_FIXUP_ACER_X2660G_HEADSET_MODE, + ALC662_FIXUP_ACER_NITRO_HEADSET_MODE, ++ ALC668_FIXUP_ASUS_NO_HEADSET_MIC, ++ ALC668_FIXUP_HEADSET_MIC, ++ ALC668_FIXUP_MIC_DET_COEF, + }; + + static const struct hda_fixup alc662_fixups[] = { +@@ -10075,6 +10078,29 @@ static const struct hda_fixup alc662_fix + .chained = true, + .chain_id = ALC662_FIXUP_USI_FUNC + }, ++ [ALC668_FIXUP_ASUS_NO_HEADSET_MIC] = { ++ .type = HDA_FIXUP_PINS, ++ .v.pins = (const struct hda_pintbl[]) { ++ { 0x1b, 0x04a1112c }, ++ { } ++ }, ++ .chained = true, ++ .chain_id = ALC668_FIXUP_HEADSET_MIC ++ }, ++ [ALC668_FIXUP_HEADSET_MIC] = { ++ .type = HDA_FIXUP_FUNC, ++ .v.func = alc269_fixup_headset_mic, ++ .chained = true, ++ .chain_id = ALC668_FIXUP_MIC_DET_COEF ++ }, ++ [ALC668_FIXUP_MIC_DET_COEF] = { ++ .type = HDA_FIXUP_VERBS, ++ .v.verbs = (const struct hda_verb[]) { ++ { 0x20, AC_VERB_SET_COEF_INDEX, 0x15 }, ++ { 0x20, AC_VERB_SET_PROC_COEF, 0x0d60 }, ++ {} ++ }, ++ }, + }; + + static const struct snd_pci_quirk alc662_fixup_tbl[] = { +@@ -10110,6 +10136,7 @@ static const struct snd_pci_quirk alc662 + SND_PCI_QUIRK(0x1043, 0x15a7, "ASUS UX51VZH", ALC662_FIXUP_BASS_16), + SND_PCI_QUIRK(0x1043, 0x177d, "ASUS N551", ALC668_FIXUP_ASUS_Nx51), + SND_PCI_QUIRK(0x1043, 0x17bd, "ASUS N751", ALC668_FIXUP_ASUS_Nx51), ++ SND_PCI_QUIRK(0x1043, 0x185d, "ASUS G551JW", ALC668_FIXUP_ASUS_NO_HEADSET_MIC), + SND_PCI_QUIRK(0x1043, 0x1963, "ASUS X71SL", ALC662_FIXUP_ASUS_MODE8), + SND_PCI_QUIRK(0x1043, 0x1b73, "ASUS N55SF", ALC662_FIXUP_BASS_16), + SND_PCI_QUIRK(0x1043, 0x1bf3, "ASUS N76VZ", ALC662_FIXUP_BASS_MODE4_CHMAP), diff --git a/queue-5.4/alsa-seq-fix-a-potential-uaf-by-wrong-private_free-call-order.patch b/queue-5.4/alsa-seq-fix-a-potential-uaf-by-wrong-private_free-call-order.patch new file mode 100644 index 00000000000..d9ccf926f6a --- /dev/null +++ b/queue-5.4/alsa-seq-fix-a-potential-uaf-by-wrong-private_free-call-order.patch @@ -0,0 +1,59 @@ +From 1f8763c59c4ec6254d629fe77c0a52220bd907aa Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Thu, 30 Sep 2021 13:41:14 +0200 +Subject: ALSA: seq: Fix a potential UAF by wrong private_free call order + +From: Takashi Iwai + +commit 1f8763c59c4ec6254d629fe77c0a52220bd907aa upstream. + +John Keeping reported and posted a patch for a potential UAF in +rawmidi sequencer destruction: the snd_rawmidi_dev_seq_free() may be +called after the associated rawmidi object got already freed. +After a deeper look, it turned out that the bug is rather the +incorrect private_free call order for a snd_seq_device. The +snd_seq_device private_free gets called at the release callback of the +sequencer device object, while this was rather expected to be executed +at the snd_device call chains that runs at the beginning of the whole +card-free procedure. It's been broken since the rewrite of +sequencer-device binding (although it hasn't surfaced because the +sequencer device release happens usually right along with the card +device release). + +This patch corrects the private_free call to be done in the right +place, at snd_seq_device_dev_free(). + +Fixes: 7c37ae5c625a ("ALSA: seq: Rewrite sequencer device binding with standard bus") +Reported-and-tested-by: John Keeping +Cc: +Link: https://lore.kernel.org/r/20210930114114.8645-1-tiwai@suse.de +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman +--- + sound/core/seq_device.c | 8 +++----- + 1 file changed, 3 insertions(+), 5 deletions(-) + +--- a/sound/core/seq_device.c ++++ b/sound/core/seq_device.c +@@ -147,6 +147,8 @@ static int snd_seq_device_dev_free(struc + struct snd_seq_device *dev = device->device_data; + + cancel_autoload_drivers(); ++ if (dev->private_free) ++ dev->private_free(dev); + put_device(&dev->dev); + return 0; + } +@@ -174,11 +176,7 @@ static int snd_seq_device_dev_disconnect + + static void snd_seq_dev_release(struct device *dev) + { +- struct snd_seq_device *sdev = to_seq_dev(dev); +- +- if (sdev->private_free) +- sdev->private_free(sdev); +- kfree(sdev); ++ kfree(to_seq_dev(dev)); + } + + /* diff --git a/queue-5.4/alsa-usb-audio-add-quirk-for-vf0770.patch b/queue-5.4/alsa-usb-audio-add-quirk-for-vf0770.patch new file mode 100644 index 00000000000..26e6eae7302 --- /dev/null +++ b/queue-5.4/alsa-usb-audio-add-quirk-for-vf0770.patch @@ -0,0 +1,75 @@ +From 48827e1d6af58f219e89c7ec08dccbca28c7694e Mon Sep 17 00:00:00 2001 +From: Jonas Hahnfeld +Date: Tue, 12 Oct 2021 22:09:07 +0200 +Subject: ALSA: usb-audio: Add quirk for VF0770 + +From: Jonas Hahnfeld + +commit 48827e1d6af58f219e89c7ec08dccbca28c7694e upstream. + +The device advertises 8 formats, but only a rate of 48kHz is honored +by the hardware and 24 bits give chopped audio, so only report the +one working combination. This fixes out-of-the-box audio experience +with PipeWire which otherwise attempts to choose S24_3LE (while +PulseAudio defaulted to S16_LE). + +Signed-off-by: Jonas Hahnfeld +Cc: +Link: https://lore.kernel.org/r/20211012200906.3492-1-hahnjo@hahnjo.de +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman +--- + sound/usb/quirks-table.h | 42 ++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 42 insertions(+) + +--- a/sound/usb/quirks-table.h ++++ b/sound/usb/quirks-table.h +@@ -126,6 +126,48 @@ + }, + + /* ++ * Creative Technology, Ltd Live! Cam Sync HD [VF0770] ++ * The device advertises 8 formats, but only a rate of 48kHz is honored by the ++ * hardware and 24 bits give chopped audio, so only report the one working ++ * combination. ++ */ ++{ ++ USB_DEVICE(0x041e, 0x4095), ++ .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) { ++ .ifnum = QUIRK_ANY_INTERFACE, ++ .type = QUIRK_COMPOSITE, ++ .data = &(const struct snd_usb_audio_quirk[]) { ++ { ++ .ifnum = 2, ++ .type = QUIRK_AUDIO_STANDARD_MIXER, ++ }, ++ { ++ .ifnum = 3, ++ .type = QUIRK_AUDIO_FIXED_ENDPOINT, ++ .data = &(const struct audioformat) { ++ .formats = SNDRV_PCM_FMTBIT_S16_LE, ++ .channels = 2, ++ .fmt_bits = 16, ++ .iface = 3, ++ .altsetting = 4, ++ .altset_idx = 4, ++ .endpoint = 0x82, ++ .ep_attr = 0x05, ++ .rates = SNDRV_PCM_RATE_48000, ++ .rate_min = 48000, ++ .rate_max = 48000, ++ .nr_rates = 1, ++ .rate_table = (unsigned int[]) { 48000 }, ++ }, ++ }, ++ { ++ .ifnum = -1 ++ }, ++ }, ++ }, ++}, ++ ++/* + * HP Wireless Audio + * When not ignored, causes instability issues for some users, forcing them to + * blacklist the entire module. diff --git a/queue-5.4/series b/queue-5.4/series index db9e05b74b7..b9873814628 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -1 +1,7 @@ ovl-simplify-file-splice.patch +alsa-usb-audio-add-quirk-for-vf0770.patch +alsa-seq-fix-a-potential-uaf-by-wrong-private_free-call-order.patch +alsa-hda-realtek-complete-partial-device-name-to-avoid-ambiguity.patch +alsa-hda-realtek-add-quirk-for-clevo-x170km-g.patch +alsa-hda-realtek-alc236-headset-mic-recording-issue.patch +alsa-hda-realtek-fix-the-mic-type-detection-issue-for-asus-g551jw.patch