ALSA: hda - Don't handle ELD notify from invalid port
authorTakashi Iwai <tiwai@suse.de>
Thu, 10 Mar 2016 11:02:49 +0000 (12:02 +0100)
committerTakashi Iwai <tiwai@suse.de>
Thu, 10 Mar 2016 11:02:49 +0000 (12:02 +0100)
The current Intel HDMI codec driver supports only three fixed ports
from port B to port D.  However, i915 driver may assign a DP on other
ports, e.g. port A, when no eDP is used.  This incompatibility is
caught later at pin_nid_to_pin_index() and results in a warning
message like "HDMI: pin nid 4 not registered" at each time.

This patch filters out such invalid events beforehand, so that the
kernel won't be too grumbling.

Reported-by: Stefan Assmann <sassmann@kpanic.de>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/patch_hdmi.c

index bcbc4ee10130a5ee86de2c23815eb85ec8684459..b90e4f3967de6885170d022fc1fa87381450bbcd 100644 (file)
@@ -2432,6 +2432,10 @@ static void intel_pin_eld_notify(void *audio_ptr, int port)
        struct hda_codec *codec = audio_ptr;
        int pin_nid = port + 0x04;
 
+       /* we assume only from port-B to port-D */
+       if (port < 1 || port > 3)
+               return;
+
        /* skip notification during system suspend (but not in runtime PM);
         * the state will be updated at resume
         */