On Thu, Jun 06, 2013 at 12:17:26AM +0200, Daniel Vetter wrote:
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.
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 Signed-off-by: Daniel Vetter daniel.vetter@ffwll.ch
Also Reviewed-by: Chris Wilson chris@chris-wilson.co.uk
I don't think this has any effect for i915, the circumstances where it might we return connector->status rather than Unknown, so we need some input from nouveau/radeon/architect as to our sanity. -Chris