• Lyude's avatar
    drm/i915/vlv: Disable HPD in valleyview_crt_detect_hotplug() · 14c1c9e6
    Lyude authored
    commit 21842ea8 upstream.
    
    One of the things preventing us from using polling is the fact that
    calling valleyview_crt_detect_hotplug() when there's a VGA cable
    connected results in sending another hotplug. With polling enabled when
    HPD is disabled, this results in a scenario like this:
    
    - We enable power wells and reset the ADPA
    - output_poll_exec does force probe on VGA, triggering a hpd
    - HPD handler waits for poll to unlock dev->mode_config.mutex
    - output_poll_exec shuts off the ADPA, unlocks dev->mode_config.mutex
    - HPD handler runs, resets ADPA and brings us back to the start
    
    This results in an endless irq storm getting sent from the ADPA
    whenever a VGA connector gets detected in the middle of polling.
    
    Somewhat based off of the "drm/i915: Disable CRT HPD around force
    trigger" patch Ville Syrjälä sent a while back
    
    Cc: stable@vger.kernel.org
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Signed-off-by: default avatarLyude <cpaul@redhat.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    (cherry picked from commit b236d7c8)
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    14c1c9e6
intel_hotplug.c 17 KB