Merge drm/drm-next into drm-intel-next
authorJani Nikula <jani.nikula@intel.com>
Mon, 15 Jan 2024 07:38:05 +0000 (09:38 +0200)
committerJani Nikula <jani.nikula@intel.com>
Mon, 15 Jan 2024 07:38:05 +0000 (09:38 +0200)
Backmerge to bring Xe driver to drm-intel-next.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
1  2 
drivers/gpu/drm/i915/display/intel_display.c
drivers/gpu/drm/i915/display/intel_display_core.h
drivers/gpu/drm/i915/display/intel_dp.c
drivers/gpu/drm/i915/display/intel_sdvo.c
drivers/gpu/drm/i915/i915_driver.c
include/drm/display/drm_dp.h
include/drm/drm_print.h

index 3730a4de480fd155ee8244d77dae74828cc6b8f2,c3b906ebe542f24151180fbd880575a1619287c1..ab415f41924d7d1a615ae19d19c11c750f94e27b
@@@ -6055,11 -6040,21 +6052,21 @@@ static void intel_dp_oob_hotplug_event(
  {
        struct intel_encoder *encoder = intel_attached_encoder(to_intel_connector(connector));
        struct drm_i915_private *i915 = to_i915(connector->dev);
+       bool hpd_high = hpd_state == connector_status_connected;
+       unsigned int hpd_pin = encoder->hpd_pin;
+       bool need_work = false;
  
        spin_lock_irq(&i915->irq_lock);
-       i915->display.hotplug.event_bits |= BIT(encoder->hpd_pin);
+       if (hpd_high != test_bit(hpd_pin, &i915->display.hotplug.oob_hotplug_last_state)) {
+               i915->display.hotplug.event_bits |= BIT(hpd_pin);
+               __assign_bit(hpd_pin, &i915->display.hotplug.oob_hotplug_last_state, hpd_high);
+               need_work = true;
+       }
        spin_unlock_irq(&i915->irq_lock);
-       intel_hpd_schedule_detection(i915);
+       if (need_work)
 -              queue_delayed_work(i915->unordered_wq, &i915->display.hotplug.hotplug_work, 0);
++              intel_hpd_schedule_detection(i915);
  }
  
  static const struct drm_connector_funcs intel_dp_connector_funcs = {
Simple merge
Simple merge
Simple merge