aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2016-03-15 13:15:26 -0400
committerTakashi Iwai <tiwai@suse.de>2016-03-15 13:15:26 -0400
commitb62232d429fa8b1dcf5d8503aa5a5397a03e646a (patch)
treeb03cdc0f6024355371c867e088b4ef0f5cd2d8ac
parent1f7c6658962fa1260c1658d681bd6bb0c746b99a (diff)
ALSA: hda - Limit i915 HDMI binding only for HSW and later
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>
-rw-r--r--sound/pci/hda/patch_hdmi.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
index 3fc259154c0b..cde9746cda8e 100644
--- a/sound/pci/hda/patch_hdmi.c
+++ b/sound/pci/hda/patch_hdmi.c
@@ -2243,9 +2243,10 @@ static int patch_generic_hdmi(struct hda_codec *codec)
2243 codec->spec = spec; 2243 codec->spec = spec;
2244 hdmi_array_init(spec, 4); 2244 hdmi_array_init(spec, 4);
2245 2245
2246 /* Try to bind with i915 for any Intel codecs (if not done yet) */ 2246 /* Try to bind with i915 for Intel HSW+ codecs (if not done yet) */
2247 if (!codec_has_acomp(codec) && 2247 if (!codec_has_acomp(codec) &&
2248 (codec->core.vendor_id >> 16) == 0x8086) 2248 (codec->core.vendor_id >> 16) == 0x8086 &&
2249 is_haswell_plus(codec))
2249 if (!snd_hdac_i915_init(&codec->bus->core)) 2250 if (!snd_hdac_i915_init(&codec->bus->core))
2250 spec->i915_bound = true; 2251 spec->i915_bound = true;
2251 2252