• Lyude's avatar
    drm/i915: intel_hpd_init(): Fix suspend/resume reprobing · 07c51913
    Lyude authored
    This fixes reprobing of display connectors on resume.  After some
    talking with danvet on IRC, I learned that calling
    drm_helper_hpd_irq_event() does actually trigger a full reprobe of each
    connector's status. It turns out this is the actual reason reprobing on
    resume hasn't been working (this was observed on a T440s):
    
    	- We call hpd_init()
    	- We check each connector for a couple of things before marking
    	  connector->polled with DRM_CONNECTOR_POLL_HPD, one of which is an
    	  active encoder. Of course, a disconnected port won't have an
    	  active encoder, so we don't add the flag to any of the
    	  connectors.
    	- We call drm_helper_hpd_irq_event()
    	- drm_helper_irq_event() checks each connector for the
    	  DRM_CONNECTOR_POLL_HPD flag. The only one that has it is eDP-1,
    	  so we skip reprobing each connector except that one.
    
    In addition, we also now avoid setting connector->polled to
    DRM_CONNECTOR_POLL_HPD for MST connectors, since their reprobing is
    handled by the mst helpers. This is probably what was originally
    intended to happen here.
    
    Changes since V1:
    * Use the explanation of the issue as the commit message instead
    * Change the title of the commit, since this does more then just stop a
      check for an encoder now
    * Add "Fixes" line for the patch that introduced this regression
    * Don't enable DRM_CONNECTOR_POLL_HPD for mst connectors
    
    Changes since V2:
    * Put patch changelog above Signed-off-by
    * Follow Daniel Vetter's suggestion for making the code here a bit more
      legible
    
    Fixes: 0e32b39c ("drm/i915: add DP 1.2 MST support (v0.7)")
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarLyude <cpaul@redhat.com>
    Link: http://patchwork.freedesktop.org/patch/msgid/1452181408-14777-1-git-send-email-cpaul@redhat.comSigned-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    07c51913
intel_hotplug.c 16.4 KB