drm: ignore disconnected <-> unknown status changes
Subsystems (2)
PATCH 1/1 drm: ignore disconnected <-> unknown status changes
On an AOpen i915GMm-hfs the hotplug events generated by transitions between connector_status_unknown and connector_status_disconnected cause screen distortions.
The attached patch cures the problem by disabling the generation of hotplug events in those cases. That should be safe for everybody as the only relevant changes are those from / to connector_status_connected.
cu,
Knut
Quoted 1 line
From
f631128c46f916eb58bbdabf867248a04a0d2fc5Mon Sep 17 00:00:00 2001
From: Knut Petersen <[email protected]>
Date: Thu, 2 Aug 2012 08:52:04 +0200
Subject: [PATCH] drm: ignore disconnected <-> unknown status changes
Only generate a hotplug event if the status changed to / from connector_status_connected.
On some hardware the connector status is oscillating between disconnected and unknown, and the hotplug events mirroring these transitions cause screen distortions. As the only reasonable action on such a status change is to ignore it, it also is safe not to genereate a hotplug event at all.
Needed for / tested on AOpen i915GMm-hfs mobo.
--- drivers/gpu/drm/drm_crtc_helper.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-)
drivers/gpu/drm/drm_crtc_helper.c +5 -1
@@ -954,7 +954,11 @@ static void output_poll_execute(struct work_struct *work) connector->base.id,drm_get_connector_name (connector), old_status, connector->status); -if (old_status != connector->status) +/* changes are only relevant if previous or +current status is connector_status_connected */ +if (old_status != connector->status && + (old_status == connector_status_connected || + connector->status == connector_status_connected)) changed = true; }
Signature · 1 line
1.7.7
Quoted 8 lines · Knut Petersen
On an AOpen i915GMm-hfs the hotplug events generated by transitions between
connector_status_unknownandconnector_status_disconnectedcause screen distortions.The attached patch cures the problem by disabling the generation of hotplug events in those cases. That should be safe for everybody as the only relevant changes are those from / to
connector_status_connected.
Seems reasonable to me. We should just drop unknown.
Quoted 9 lines
cu,
Knut_______________________________________________
dri-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/dri-devel
Daniel Vetter
Reviewed-byQuoted 11 lines · Alex Deucher
Quoted 8 lines · Knut Petersen
On an AOpen i915GMm-hfs the hotplug events generated by transitions between
connector_status_unknownandconnector_status_disconnectedcause screen distortions.The attached patch cures the problem by disabling the generation of hotplug events in those cases. That should be safe for everybody as the only relevant changes are those from / to
connector_status_connected.Seems reasonable to me. We should just drop unknown.
We (ab)use that in i915 to avoid some (more costly) load-detection tricks in the hotplug code (but only on rather ancient hw), instead returning unknown. When userspace then inquires the connector status, we flip-flop back to connected. The issue is that we need to avoid these, for the current kms locking would stall the cursor for a while, which is not acceptable to do every 10s. Until the kms locking is fixed, we hence can't drop the unknown state.
Quoted 1 line
Reviewed-by Alex Deucher <[email protected]>
Signature · 3 lines
Daniel Vetter Mail: [email protected] Mobile: +41 (0)79 365 57 48