[PATCH] drm/i915: Wait one vblank before sending hotplug event to userspace
Mika Kahola
mika.kahola at intel.com
Thu Nov 29 13:57:45 UTC 2018
If we fail to train link for DisplayPort, we send out a hotplug event to
userspace to reprobe and re-train the link. Let's wait for one additional
vblank event before sending a hotplug event to userspace.
References: https://bugs.freedesktop.org/show_bug.cgi?id=108835
Signed-off-by: Mika Kahola <mika.kahola at intel.com>
---
drivers/gpu/drm/i915/intel_dp.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 70ae3d57316b..1e3a4f447131 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -6557,6 +6557,8 @@ static void intel_dp_modeset_retry_work_fn(struct work_struct *work)
{
struct intel_connector *intel_connector;
struct drm_connector *connector;
+ struct drm_i915_private *dev_priv;
+ enum pipe pipe;
intel_connector = container_of(work, typeof(*intel_connector),
modeset_retry_work);
@@ -6564,6 +6566,9 @@ static void intel_dp_modeset_retry_work_fn(struct work_struct *work)
DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n", connector->base.id,
connector->name);
+ dev_priv = to_i915(connector->dev);
+ pipe = intel_connector_get_pipe(intel_connector);
+
/* Grab the locks before changing connector property*/
mutex_lock(&connector->dev->mode_config.mutex);
/* Set connector link status to BAD and send a Uevent to notify
@@ -6572,6 +6577,9 @@ static void intel_dp_modeset_retry_work_fn(struct work_struct *work)
drm_connector_set_link_status_property(connector,
DRM_MODE_LINK_STATUS_BAD);
mutex_unlock(&connector->dev->mode_config.mutex);
+
+ intel_wait_for_vblank(dev_priv, pipe);
+
/* Send Hotplug uevent so userspace can reprobe */
drm_kms_helper_hotplug_event(connector->dev);
}
--
2.17.1
More information about the Intel-gfx-trybot
mailing list