Message ID | 501A2A6F.4030502@t-online.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Thu, Aug 2, 2012 at 3:21 AM, Knut Petersen <Knut_Petersen@t-online.de> wrote: > 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. Seems reasonable to me. We should just drop unknown. Reviewed-by: Alex Deucher <alexander.deucher@amd.com> > > cu, > Knut > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/dri-devel >
On Fri, Aug 03, 2012 at 09:32:44AM -0400, Alex Deucher wrote: > On Thu, Aug 2, 2012 at 3:21 AM, Knut Petersen <Knut_Petersen@t-online.de> wrote: > > 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. > > 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. > Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
From f631128c46f916eb58bbdabf867248a04a0d2fc5 Mon Sep 17 00:00:00 2001 From: Knut Petersen <Knut_Petersen@t-online.de> 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. Signed-off-by: Knut Petersen <Knut_Petersen@t-online.de> --- drivers/gpu/drm/drm_crtc_helper.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c index 3252e70..fb6160b 100644 --- a/drivers/gpu/drm/drm_crtc_helper.c +++ b/drivers/gpu/drm/drm_crtc_helper.c @@ -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; } -- 1.7.7