drm/i915: Fix the old vs. new epoch counter check during hotplug detect
authorImre Deak <imre.deak@intel.com>
Wed, 1 Jul 2020 18:00:01 +0000 (21:00 +0300)
committerImre Deak <imre.deak@intel.com>
Thu, 2 Jul 2020 08:30:11 +0000 (11:30 +0300)
The old epoch counter was left uninited, so the function returned a
changed state always.

While at it debug print the old epoch counter as well.

Fixes: 35205ee9ba46 ("drm/i915: Send hotplug event if edid had changed")
Cc: Kunal Joshi <kunal1.joshi@intel.com>
Cc: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200701180001.15857-1-imre.deak@intel.com
drivers/gpu/drm/i915/display/intel_hotplug.c

index 126e03e..252090c 100644 (file)
@@ -279,6 +279,7 @@ intel_encoder_hotplug(struct intel_encoder *encoder,
 
        drm_WARN_ON(dev, !mutex_is_locked(&dev->mode_config.mutex));
        old_status = connector->base.status;
+       old_epoch_counter = connector->base.epoch_counter;
 
        connector->base.status =
                drm_helper_probe_detect(&connector->base, NULL, false);
@@ -287,11 +288,12 @@ intel_encoder_hotplug(struct intel_encoder *encoder,
                ret = true;
 
        if (ret) {
-               DRM_DEBUG_KMS("[CONNECTOR:%d:%s] status updated from %s to %s(epoch counter %llu)\n",
+               DRM_DEBUG_KMS("[CONNECTOR:%d:%s] status updated from %s to %s (epoch counter %llu->%llu)\n",
                              connector->base.base.id,
                              connector->base.name,
                              drm_get_connector_status_name(old_status),
                              drm_get_connector_status_name(connector->base.status),
+                             old_epoch_counter,
                              connector->base.epoch_counter);
                return INTEL_HOTPLUG_CHANGED;
        }