[PATCH 2/3] !squash: drm/i915: Add support for retrying hotplug
José Roberto de Souza
jose.souza at intel.com
Fri Feb 22 02:16:28 UTC 2019
---
drivers/gpu/drm/i915/intel_hotplug.c | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_hotplug.c b/drivers/gpu/drm/i915/intel_hotplug.c
index 85fbdf636073..3eaa06526f6b 100644
--- a/drivers/gpu/drm/i915/intel_hotplug.c
+++ b/drivers/gpu/drm/i915/intel_hotplug.c
@@ -359,7 +359,7 @@ static void i915_hotplug_work_func(struct work_struct *work)
struct drm_connector *connector;
struct drm_connector_list_iter conn_iter;
bool changed = false;
- bool retry = false;
+ u32 retry = 0;
u32 hpd_event_bits;
u32 hpd_retry_bits;
@@ -380,7 +380,7 @@ static void i915_hotplug_work_func(struct work_struct *work)
drm_connector_list_iter_begin(dev, &conn_iter);
drm_for_each_connector_iter(connector, &conn_iter) {
- int hpd_bit;
+ u32 hpd_bit;
intel_connector = to_intel_connector(connector);
if (!intel_connector->encoder)
@@ -400,10 +400,7 @@ static void i915_hotplug_work_func(struct work_struct *work)
changed = true;
break;
case INTEL_HOTPLUG_RETRY:
- spin_lock_irq(&dev_priv->irq_lock);
- dev_priv->hotplug.retry_bits |= hpd_bit;
- spin_unlock_irq(&dev_priv->irq_lock);
- retry = true;
+ retry |= hpd_bit;
break;
}
}
@@ -414,9 +411,14 @@ static void i915_hotplug_work_func(struct work_struct *work)
if (changed)
drm_kms_helper_hotplug_event(dev);
- if (retry)
+ if (retry) {
+ spin_lock_irq(&dev_priv->irq_lock);
+ dev_priv->hotplug.retry_bits |= retry;
+ spin_unlock_irq(&dev_priv->irq_lock);
+
mod_delayed_work(system_wq, &dev_priv->hotplug.hotplug_work,
msecs_to_jiffies(HPD_RETRY_DELAY));
+ }
}
--
2.20.1
More information about the Intel-gfx-trybot
mailing list