• Wang Xingchao's avatar
    drm/i915: HDMI - Clear Audio Enable bit for Hot Plug · b98b6016
    Wang Xingchao authored
    Clear Audio Enable bit to trigger unsolicated event to notify Audio
    Driver part the HDMI hot plug change. The patch fixed the bug when
    remove HDMI cable the bit was not cleared correctly.
    
    In intel_hdmi_dpms(), if intel_hdmi->has_audio been true, the "Audio enable bit" will
    be set to trigger unsolicated event to notify Alsa driver the change.
    
    intel_hdmi->has_audio will be reset to false from intel_hdmi_detect() after
    remove the hdmi cable, here's debug log:
    
    [  187.494153] [drm:output_poll_execute], [CONNECTOR:17:HDMI-A-1] status updated from 1 to 2
    [  187.525349] [drm:intel_hdmi_detect], HDMI: has_audio = 0
    
    so when comes back to intel_hdmi_dpms(), the "Audio enable bit" will not be cleared. And this
    cause the eld infomation and pin presence doesnot update accordingly in alsa driver side.
    
    This patch will also trigger unsolicated event to alsa driver to notify the hot plug event:
    
    [  187.853159] ALSA sound/pci/hda/patch_hdmi.c:772 HDMI hot plug event: Codec=3 Pin=5 Presence_Detect=0 ELD_Valid=1
    [  187.853268] ALSA sound/pci/hda/patch_hdmi.c:990 HDMI status: Codec=3 Pin=5 Presence_Detect=0 ELD_Valid=0
    Signed-off-by: default avatarWang Xingchao <xingchao.wang@intel.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    b98b6016
intel_hdmi.c 27.7 KB