From: Sasha Levin Date: Wed, 4 Jan 2023 13:05:37 +0000 (-0500) Subject: Fixes for 6.0 X-Git-Tag: v6.1.4~64^2~4 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=31a3ae738c23eaf835ae41cb014d6bccee840b05;p=thirdparty%2Fkernel%2Fstable-queue.git Fixes for 6.0 Signed-off-by: Sasha Levin --- diff --git a/queue-6.0/alsa-hda-realtek-apply-dual-codec-fixup-for-dell-lat.patch b/queue-6.0/alsa-hda-realtek-apply-dual-codec-fixup-for-dell-lat.patch new file mode 100644 index 00000000000..2851cabc5fa --- /dev/null +++ b/queue-6.0/alsa-hda-realtek-apply-dual-codec-fixup-for-dell-lat.patch @@ -0,0 +1,69 @@ +From 1bfd96845cf2d82a77b795b02eacae3a6a65984a Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Mon, 26 Dec 2022 19:43:03 +0800 +Subject: ALSA: hda/realtek: Apply dual codec fixup for Dell Latitude laptops + +From: Chris Chiu + +[ Upstream commit a4517c4f3423c7c448f2c359218f97c1173523a1 ] + +The Dell Latiture 3340/3440/3540 laptops with Realtek ALC3204 have +dual codecs and need the ALC1220_FIXUP_GB_DUAL_CODECS to fix the +conflicts of Master controls. The existing headset mic fixup for +Dell is also required to enable the jack sense and the headset mic. + +Introduce a new fixup to fix the dual codec and headset mic issues +for particular Dell laptops since other old Dell laptops with the +same codec configuration are already well handled by the fixup in +alc269_fallback_pin_fixup_tbl[]. + +Signed-off-by: Chris Chiu +Cc: +Link: https://lore.kernel.org/r/20221226114303.4027500-1-chris.chiu@canonical.com +Signed-off-by: Takashi Iwai +Signed-off-by: Sasha Levin +--- + sound/pci/hda/patch_realtek.c | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c +index d2f122833830..cca6e8fdec5f 100644 +--- a/sound/pci/hda/patch_realtek.c ++++ b/sound/pci/hda/patch_realtek.c +@@ -7197,6 +7197,7 @@ enum { + ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK, + ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN, + ALC295_FIXUP_DELL_INSPIRON_TOP_SPEAKERS, ++ ALC236_FIXUP_DELL_DUAL_CODECS, + }; + + /* A special fixup for Lenovo C940 and Yoga Duet 7; +@@ -9152,6 +9153,12 @@ static const struct hda_fixup alc269_fixups[] = { + .chained = true, + .chain_id = ALC269_FIXUP_DELL4_MIC_NO_PRESENCE, + }, ++ [ALC236_FIXUP_DELL_DUAL_CODECS] = { ++ .type = HDA_FIXUP_PINS, ++ .v.func = alc1220_fixup_gb_dual_codecs, ++ .chained = true, ++ .chain_id = ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, ++ }, + }; + + static const struct snd_pci_quirk alc269_fixup_tbl[] = { +@@ -9254,6 +9261,12 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { + SND_PCI_QUIRK(0x1028, 0x0b1a, "Dell Precision 5570", ALC289_FIXUP_DUAL_SPK), + SND_PCI_QUIRK(0x1028, 0x0b37, "Dell Inspiron 16 Plus 7620 2-in-1", ALC295_FIXUP_DELL_INSPIRON_TOP_SPEAKERS), + SND_PCI_QUIRK(0x1028, 0x0b71, "Dell Inspiron 16 Plus 7620", ALC295_FIXUP_DELL_INSPIRON_TOP_SPEAKERS), ++ SND_PCI_QUIRK(0x1028, 0x0c19, "Dell Precision 3340", ALC236_FIXUP_DELL_DUAL_CODECS), ++ SND_PCI_QUIRK(0x1028, 0x0c1a, "Dell Precision 3340", ALC236_FIXUP_DELL_DUAL_CODECS), ++ SND_PCI_QUIRK(0x1028, 0x0c1b, "Dell Precision 3440", ALC236_FIXUP_DELL_DUAL_CODECS), ++ SND_PCI_QUIRK(0x1028, 0x0c1c, "Dell Precision 3540", ALC236_FIXUP_DELL_DUAL_CODECS), ++ SND_PCI_QUIRK(0x1028, 0x0c1d, "Dell Precision 3440", ALC236_FIXUP_DELL_DUAL_CODECS), ++ SND_PCI_QUIRK(0x1028, 0x0c1e, "Dell Precision 3540", ALC236_FIXUP_DELL_DUAL_CODECS), + 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), +-- +2.35.1 + diff --git a/queue-6.0/alsa-patch_realtek-fix-dell-inspiron-plus-16.patch b/queue-6.0/alsa-patch_realtek-fix-dell-inspiron-plus-16.patch new file mode 100644 index 00000000000..b669947ec7a --- /dev/null +++ b/queue-6.0/alsa-patch_realtek-fix-dell-inspiron-plus-16.patch @@ -0,0 +1,94 @@ +From 494e5614f99ef67a7d448354fc3ca620642e36b8 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Mon, 5 Dec 2022 17:37:13 +0100 +Subject: ALSA: patch_realtek: Fix Dell Inspiron Plus 16 + +From: Philipp Jungkamp + +[ Upstream commit 2912cdda734d9136615ed05636d9fcbca2a7a3c5 ] + +The Dell Inspiron Plus 16, in both laptop and 2in1 form factor, has top +speakers connected on NID 0x17, which the codec reports as unconnected. +These speakers should be connected to the DAC on NID 0x03. + +Signed-off-by: Philipp Jungkamp +Link: https://lore.kernel.org/r/20221205163713.7476-1-p.jungkamp@gmx.net +Signed-off-by: Takashi Iwai +Stable-dep-of: a4517c4f3423 ("ALSA: hda/realtek: Apply dual codec fixup for Dell Latitude laptops") +Signed-off-by: Sasha Levin +--- + sound/pci/hda/patch_realtek.c | 37 +++++++++++++++++++++++++++++++++++ + 1 file changed, 37 insertions(+) + +diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c +index 94fe84217894..d2f122833830 100644 +--- a/sound/pci/hda/patch_realtek.c ++++ b/sound/pci/hda/patch_realtek.c +@@ -6925,6 +6925,34 @@ static void alc287_fixup_yoga9_14iap7_bass_spk_pin(struct hda_codec *codec, + } + } + ++static void alc295_fixup_dell_inspiron_top_speakers(struct hda_codec *codec, ++ const struct hda_fixup *fix, int action) ++{ ++ static const struct hda_pintbl pincfgs[] = { ++ { 0x14, 0x90170151 }, ++ { 0x17, 0x90170150 }, ++ { } ++ }; ++ static const hda_nid_t conn[] = { 0x02, 0x03 }; ++ static const hda_nid_t preferred_pairs[] = { ++ 0x14, 0x02, ++ 0x17, 0x03, ++ 0x21, 0x02, ++ 0 ++ }; ++ struct alc_spec *spec = codec->spec; ++ ++ alc_fixup_no_shutup(codec, fix, action); ++ ++ switch (action) { ++ case HDA_FIXUP_ACT_PRE_PROBE: ++ snd_hda_apply_pincfgs(codec, pincfgs); ++ snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn); ++ spec->gen.preferred_dacs = preferred_pairs; ++ break; ++ } ++} ++ + enum { + ALC269_FIXUP_GPIO2, + ALC269_FIXUP_SONY_VAIO, +@@ -7168,6 +7196,7 @@ enum { + ALC287_FIXUP_LEGION_16ITHG6, + ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK, + ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN, ++ ALC295_FIXUP_DELL_INSPIRON_TOP_SPEAKERS, + }; + + /* A special fixup for Lenovo C940 and Yoga Duet 7; +@@ -9117,6 +9146,12 @@ static const struct hda_fixup alc269_fixups[] = { + .chained = true, + .chain_id = ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK, + }, ++ [ALC295_FIXUP_DELL_INSPIRON_TOP_SPEAKERS] = { ++ .type = HDA_FIXUP_FUNC, ++ .v.func = alc295_fixup_dell_inspiron_top_speakers, ++ .chained = true, ++ .chain_id = ALC269_FIXUP_DELL4_MIC_NO_PRESENCE, ++ }, + }; + + static const struct snd_pci_quirk alc269_fixup_tbl[] = { +@@ -9217,6 +9252,8 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { + SND_PCI_QUIRK(0x1028, 0x0a9e, "Dell Latitude 5430", ALC269_FIXUP_DELL4_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0x1028, 0x0b19, "Dell XPS 15 9520", ALC289_FIXUP_DUAL_SPK), + SND_PCI_QUIRK(0x1028, 0x0b1a, "Dell Precision 5570", ALC289_FIXUP_DUAL_SPK), ++ SND_PCI_QUIRK(0x1028, 0x0b37, "Dell Inspiron 16 Plus 7620 2-in-1", ALC295_FIXUP_DELL_INSPIRON_TOP_SPEAKERS), ++ SND_PCI_QUIRK(0x1028, 0x0b71, "Dell Inspiron 16 Plus 7620", ALC295_FIXUP_DELL_INSPIRON_TOP_SPEAKERS), + 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), +-- +2.35.1 + diff --git a/queue-6.0/bpf-resolve-fext-program-type-when-checking-map-comp.patch b/queue-6.0/bpf-resolve-fext-program-type-when-checking-map-comp.patch new file mode 100644 index 00000000000..585ae733a21 --- /dev/null +++ b/queue-6.0/bpf-resolve-fext-program-type-when-checking-map-comp.patch @@ -0,0 +1,87 @@ +From 7df70a17b4a10472af8278f9df58474da189ac30 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 15 Dec 2022 00:02:53 +0100 +Subject: bpf: Resolve fext program type when checking map compatibility +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Toke Høiland-Jørgensen + +[ Upstream commit 1c123c567fb138ebd187480b7fc0610fcb0851f5 ] + +The bpf_prog_map_compatible() check makes sure that BPF program types are +not mixed inside BPF map types that can contain programs (tail call maps, +cpumaps and devmaps). It does this by setting the fields of the map->owner +struct to the values of the first program being checked against, and +rejecting any subsequent programs if the values don't match. + +One of the values being set in the map owner struct is the program type, +and since the code did not resolve the prog type for fext programs, the map +owner type would be set to PROG_TYPE_EXT and subsequent loading of programs +of the target type into the map would fail. + +This bug is seen in particular for XDP programs that are loaded as +PROG_TYPE_EXT using libxdp; these cannot insert programs into devmaps and +cpumaps because the check fails as described above. + +Fix the bug by resolving the fext program type to its target program type +as elsewhere in the verifier. + +v3: +- Add Yonghong's ACK + +Fixes: f45d5b6ce2e8 ("bpf: generalise tail call map compatibility check") +Acked-by: Yonghong Song +Signed-off-by: Toke Høiland-Jørgensen +Link: https://lore.kernel.org/r/20221214230254.790066-1-toke@redhat.com +Signed-off-by: Martin KaFai Lau +Signed-off-by: Sasha Levin +--- + include/linux/bpf_verifier.h | 2 +- + kernel/bpf/core.c | 5 +++-- + 2 files changed, 4 insertions(+), 3 deletions(-) + +diff --git a/include/linux/bpf_verifier.h b/include/linux/bpf_verifier.h +index 184b957e28ad..1eac74cacc96 100644 +--- a/include/linux/bpf_verifier.h ++++ b/include/linux/bpf_verifier.h +@@ -634,7 +634,7 @@ static inline u32 type_flag(u32 type) + } + + /* only use after check_attach_btf_id() */ +-static inline enum bpf_prog_type resolve_prog_type(struct bpf_prog *prog) ++static inline enum bpf_prog_type resolve_prog_type(const struct bpf_prog *prog) + { + return prog->type == BPF_PROG_TYPE_EXT ? + prog->aux->dst_prog->type : prog->type; +diff --git a/kernel/bpf/core.c b/kernel/bpf/core.c +index c4600a5781de..7d315c94b80a 100644 +--- a/kernel/bpf/core.c ++++ b/kernel/bpf/core.c +@@ -2088,6 +2088,7 @@ static unsigned int __bpf_prog_ret0_warn(const void *ctx, + bool bpf_prog_map_compatible(struct bpf_map *map, + const struct bpf_prog *fp) + { ++ enum bpf_prog_type prog_type = resolve_prog_type(fp); + bool ret; + + if (fp->kprobe_override) +@@ -2098,12 +2099,12 @@ bool bpf_prog_map_compatible(struct bpf_map *map, + /* There's no owner yet where we could check for + * compatibility. + */ +- map->owner.type = fp->type; ++ map->owner.type = prog_type; + map->owner.jited = fp->jited; + map->owner.xdp_has_frags = fp->aux->xdp_has_frags; + ret = true; + } else { +- ret = map->owner.type == fp->type && ++ ret = map->owner.type == prog_type && + map->owner.jited == fp->jited && + map->owner.xdp_has_frags == fp->aux->xdp_has_frags; + } +-- +2.35.1 + diff --git a/queue-6.0/series b/queue-6.0/series index f70ea5ce168..ad50d0aa94b 100644 --- a/queue-6.0/series +++ b/queue-6.0/series @@ -1 +1,4 @@ drm-amdgpu-skip-mes-for-s0ix-as-well-since-it-s-part-of-gfx.patch +bpf-resolve-fext-program-type-when-checking-map-comp.patch +alsa-patch_realtek-fix-dell-inspiron-plus-16.patch +alsa-hda-realtek-apply-dual-codec-fixup-for-dell-lat.patch