From: Greg Kroah-Hartman Date: Wed, 27 Nov 2019 16:12:31 +0000 (+0100) Subject: 5.4-stable patches X-Git-Tag: v4.4.204~15 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5d05aa4a3e664060f201903c90419b19188640ea;p=thirdparty%2Fkernel%2Fstable-queue.git 5.4-stable patches added patches: alsa-hda-disable-audio-component-for-legacy-nvidia-hdmi-codecs.patch --- diff --git a/queue-5.4/alsa-hda-disable-audio-component-for-legacy-nvidia-hdmi-codecs.patch b/queue-5.4/alsa-hda-disable-audio-component-for-legacy-nvidia-hdmi-codecs.patch new file mode 100644 index 00000000000..a59f81dd079 --- /dev/null +++ b/queue-5.4/alsa-hda-disable-audio-component-for-legacy-nvidia-hdmi-codecs.patch @@ -0,0 +1,80 @@ +From 5a858e79c911330678b5a9be91a24830e94a0dc9 Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Fri, 22 Nov 2019 14:20:00 +0100 +Subject: ALSA: hda - Disable audio component for legacy Nvidia HDMI codecs + +From: Takashi Iwai + +commit 5a858e79c911330678b5a9be91a24830e94a0dc9 upstream. + +The old Nvidia chips have multiple HD-audio codecs on the same +HD-audio controller, and this doesn't work as expected with the current +audio component binding that is implemented under the one-codec-per- +controller assumption; at the probe time, the driver leads to several +kernel WARNING messages. + +For the proper support, we may change the pin2port and port2pin to +traverse the codec list per the given pin number, but this needs more +development and testing. + +As a quick workaround, instead, this patch drops the binding in the +audio side for these legacy chips since the audio component support in +nouveau graphics driver is still not merged (hence it's basically +unused). + +[ Unlike the original commit, this patch actually disables the audio + component binding for all Nvidia chips, not only for legacy chips. + It doesn't matter much, though: nouveau gfx driver still doesn't + provide the audio component binding on 5.4.y, so it's only a + placeholder for now. Also, another difference from the original + commit is that this removes the nvhdmi_audio_ops and other + definitions completely in order to avoid a compile warning due to + unused stuff. -- tiwai ] + +BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=205625 +Fixes: ade49db337a9 ("ALSA: hda/hdmi - Allow audio component for AMD/ATI and Nvidia HDMI") +Link: https://lore.kernel.org/r/20191122132000.4460-1-tiwai@suse.de +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman +--- + sound/pci/hda/patch_hdmi.c | 22 ---------------------- + 1 file changed, 22 deletions(-) + +--- a/sound/pci/hda/patch_hdmi.c ++++ b/sound/pci/hda/patch_hdmi.c +@@ -3454,26 +3454,6 @@ static int nvhdmi_chmap_validate(struct + return 0; + } + +-/* map from pin NID to port; port is 0-based */ +-/* for Nvidia: assume widget NID starting from 4, with step 1 (4, 5, 6, ...) */ +-static int nvhdmi_pin2port(void *audio_ptr, int pin_nid) +-{ +- return pin_nid - 4; +-} +- +-/* reverse-map from port to pin NID: see above */ +-static int nvhdmi_port2pin(struct hda_codec *codec, int port) +-{ +- return port + 4; +-} +- +-static const struct drm_audio_component_audio_ops nvhdmi_audio_ops = { +- .pin2port = nvhdmi_pin2port, +- .pin_eld_notify = generic_acomp_pin_eld_notify, +- .master_bind = generic_acomp_master_bind, +- .master_unbind = generic_acomp_master_unbind, +-}; +- + static int patch_nvhdmi(struct hda_codec *codec) + { + struct hdmi_spec *spec; +@@ -3492,8 +3472,6 @@ static int patch_nvhdmi(struct hda_codec + + codec->link_down_at_suspend = 1; + +- generic_acomp_init(codec, &nvhdmi_audio_ops, nvhdmi_port2pin); +- + return 0; + } + diff --git a/queue-5.4/series b/queue-5.4/series index 173add60c21..a657ea187d2 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -49,3 +49,4 @@ media-b2c2-flexcop-usb-add-sanity-checking.patch media-cxusb-detect-cxusb_ctrl_msg-error-in-query.patch media-imon-invalid-dereference-in-imon_touch_event.patch media-mceusb-fix-out-of-bounds-read-in-mce-receiver-buffer.patch +alsa-hda-disable-audio-component-for-legacy-nvidia-hdmi-codecs.patch