ALSA: hda - Limit i915 HDMI binding only for HSW and later
authorTakashi Iwai <tiwai@suse.de>
Tue, 15 Mar 2016 17:15:26 +0000 (18:15 +0100)
committerTakashi Iwai <tiwai@suse.de>
Tue, 15 Mar 2016 17:15:26 +0000 (18:15 +0100)
It turned out that the pre-HSW Intel chips are incompatible with the
naive assumption we had -- the fixed mapping between the port and the
HD-audio widget.  This may result in the bad access, as captured by
the recent patch to add a WARN_ON() for the port mapping check.

As a quick workaround, disable the i915 audio component binding for
all pre-Haswell models.

Reported-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: <stable@vger.kernel.org> # v4.5
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/patch_hdmi.c

index 3fc259154c0b562e0d67f99bc2a55fafd590d30f..cde9746cda8eceb7e144fa80ca77177c5e222df4 100644 (file)
@@ -2243,9 +2243,10 @@ static int patch_generic_hdmi(struct hda_codec *codec)
        codec->spec = spec;
        hdmi_array_init(spec, 4);
 
-       /* Try to bind with i915 for any Intel codecs (if not done yet) */
+       /* Try to bind with i915 for Intel HSW+ codecs (if not done yet) */
        if (!codec_has_acomp(codec) &&
-           (codec->core.vendor_id >> 16) == 0x8086)
+           (codec->core.vendor_id >> 16) == 0x8086 &&
+           is_haswell_plus(codec))
                if (!snd_hdac_i915_init(&codec->bus->core))
                        spec->i915_bound = true;