Skip to content
  • Daniel Vetter's avatar
    drm: don't start the poll engine in probe_single_connector · 905bc9ff
    Daniel Vetter authored
    Actually there's a reason this stuff is there, and it's called
    
    commit e58f637b
    Author: Chris Wilson <chris@chris-wilson.co.uk>
    Date:   Fri Aug 20 09:13:36 2010 +0100
    
        drm/kms: Add a module parameter to disable polling
    
    The idea has been that users can enable/disable polling at runtime. So
    the quick hack has been to just re-enable the output polling if xrandr
    asks for the latest state of the connectors.
    
    The problem with that hack is that when we force connectors to another
    state than what would be detected, we nicely ping-pong:
    - Userspace calls probe, gets the forced state, but polling starts
      again.
    - Polling notices that the state is actually different, wakes up
      userspace.
    - Repeat.
    
    As that commit already explains, the right fix would be to make the
    locking more fine-grained, so that hotplug detection on one output
    does not interfere with cursor updates on another crtc.
    
    But that is way too much work. So let's just safe this gross hack by
    caching the last-seen state of drm_kms_helper_poll for that driver,
    and only fire up the poll engine again if it changed from off to on.
    
    v2: Fixup the edge detection of drm_kms_helper_poll.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=49907
    
    
    Tested-by: default avatarTvrtko Ursulin <tvrtko.ursulin@onelan.co.uk>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
    Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
    905bc9ff