This is a note to let you know that I've just added the patch titled ALSA: hda - Fix missing module loading with model=generic option to the 4.4-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: alsa-hda-fix-missing-module-loading-with-model-generic-option.patch and it can be found in the queue-4.4 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From bca8e988043e39483afd7872a2641f03ed7201a6 Mon Sep 17 00:00:00 2001 From: Takashi Iwai <tiwai@xxxxxxx> Date: Wed, 20 Jan 2016 15:46:44 +0100 Subject: ALSA: hda - Fix missing module loading with model=generic option From: Takashi Iwai <tiwai@xxxxxxx> commit bca8e988043e39483afd7872a2641f03ed7201a6 upstream. When the generic codec driver is specified via model option or such, the hda driver doesn't try to load the generic driver module but still loads the codec-specific driver, and this ends up with the binding failure. This patch fixes it by moving the generic module request in the common helper code. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=111021 Signed-off-by: Takashi Iwai <tiwai@xxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- sound/pci/hda/hda_bind.c | 42 ++++++++++++++++++++++++++++++++---------- 1 file changed, 32 insertions(+), 10 deletions(-) --- a/sound/pci/hda/hda_bind.c +++ b/sound/pci/hda/hda_bind.c @@ -174,14 +174,40 @@ static inline bool codec_probed(struct h return device_attach(hda_codec_dev(codec)) > 0 && codec->preset; } -/* try to auto-load and bind the codec module */ -static void codec_bind_module(struct hda_codec *codec) +/* try to auto-load codec module */ +static void request_codec_module(struct hda_codec *codec) { #ifdef MODULE char modalias[32]; + const char *mod = NULL; + + switch (codec->probe_id) { + case HDA_CODEC_ID_GENERIC_HDMI: +#if IS_MODULE(CONFIG_SND_HDA_CODEC_HDMI) + mod = "snd-hda-codec-hdmi"; +#endif + break; + case HDA_CODEC_ID_GENERIC: +#if IS_MODULE(CONFIG_SND_HDA_GENERIC) + mod = "snd-hda-codec-generic"; +#endif + break; + default: + snd_hdac_codec_modalias(&codec->core, modalias, sizeof(modalias)); + mod = modalias; + break; + } + + if (mod) + request_module(mod); +#endif /* MODULE */ +} - snd_hdac_codec_modalias(&codec->core, modalias, sizeof(modalias)); - request_module(modalias); +/* try to auto-load and bind the codec module */ +static void codec_bind_module(struct hda_codec *codec) +{ +#ifdef MODULE + request_codec_module(codec); if (codec_probed(codec)) return; #endif @@ -218,17 +244,13 @@ static int codec_bind_generic(struct hda if (is_likely_hdmi_codec(codec)) { codec->probe_id = HDA_CODEC_ID_GENERIC_HDMI; -#if IS_MODULE(CONFIG_SND_HDA_CODEC_HDMI) - request_module("snd-hda-codec-hdmi"); -#endif + request_codec_module(codec); if (codec_probed(codec)) return 0; } codec->probe_id = HDA_CODEC_ID_GENERIC; -#if IS_MODULE(CONFIG_SND_HDA_GENERIC) - request_module("snd-hda-codec-generic"); -#endif + request_codec_module(codec); if (codec_probed(codec)) return 0; return -ENODEV; Patches currently in stable-queue which might be from tiwai@xxxxxxx are queue-4.4/alsa-hrtimer-fix-stall-by-hrtimer_cancel.patch queue-4.4/alsa-hda-fix-white-noise-on-dell-latitude-e5550.patch queue-4.4/alsa-hda-fix-the-headset-mic-detection-problem-for-a-dell-laptop.patch queue-4.4/alsa-timer-harden-slave-timer-list-handling.patch queue-4.4/alsa-timer-fix-double-unlink-of-active_list.patch queue-4.4/alsa-control-avoid-kernel-warnings-from-tlv-ioctl-with-numid-0.patch queue-4.4/alsa-hda-flush-the-pending-probe-work-at-remove.patch queue-4.4/alsa-hda-fixup-inverted-internal-mic-for-lenovo-e50-80.patch queue-4.4/alsa-usb-add-native-dsd-support-for-oppo-ha-1.patch queue-4.4/alsa-hda-fix-missing-module-loading-with-model-generic-option.patch queue-4.4/alsa-seq-fix-race-at-timer-setup-and-close.patch queue-4.4/alsa-pcm-fix-snd_pcm_hw_params-struct-copy-in-compat-mode.patch queue-4.4/alsa-seq-fix-snd_seq_call_port_info_ioctl-in-compat-mode.patch queue-4.4/alsa-seq-fix-missing-null-check-at-remove_events-ioctl.patch queue-4.4/alsa-usb-audio-fix-mixer-ctl-regression-of-native-instrument-devices.patch queue-4.4/alsa-timer-handle-disconnection-more-safely.patch queue-4.4/alsa-hda-fix-bass-pin-fixup-for-asus-n550jx.patch queue-4.4/alsa-timer-fix-race-among-timer-ioctls.patch queue-4.4/alsa-hda-add-fixup-for-dell-latitidue-e6540.patch queue-4.4/alsa-usb-audio-avoid-calling-usb_autopm_put_interface-at-disconnect.patch -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html