drm/probe-helper: clamp unknown connector status in the poll work
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 21 Jan 2015 07:45:22 +0000 (08:45 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 22 Jan 2015 05:11:39 +0000 (06:11 +0100)
commitb7703726251191cd9f3ef3a80b2d9667901eec95
treee2398efa8afa5d991cc1d19d664c8065098d81ea
parent162b6a57ac50eec236530a16c071ffa50e87362a
drm/probe-helper: clamp unknown connector status in the poll work

On some chipset we try to avoid possibly invasive output detection
methods (like load detect which can cause flickering elsewhere) in the
output poll work. Drivers could hence return unknown when a previous
full ->detect call returned a different state.

This change will generate a hotplug event, forcing userspace to do a
full scan. This in turn updates the connector->status field so that we
will _again_ get a state change when the hotplug work re-runs in 10
seconds.

To avoid this ping-pong loop detect this situation and clamp the
connector state to the old value.

Patch is inspired by a patch from Knut Peterson. Knut's patch
completely ignored connector state changes if either the old or new
status was unknown, which seemed to be a bit too agressive to me.

v2: Rebased onto the drm_probe_helper.c extraction.

References: http://lists.freedesktop.org/archives/dri-devel/2012-August/025975.html
Cc: Knut Petersen <Knut_Petersen@t-online.de>
Cc: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Cc: Rob Clark <robdclark@gmail.com>
Reviewed-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/drm_probe_helper.c