diff options
author | Imre Deak <imre.deak@intel.com> | 2024-01-04 11:30:04 +0300 |
---|---|---|
committer | Imre Deak <imre.deak@intel.com> | 2024-01-08 19:56:45 +0300 |
commit | cd572b3bb27e86f4a4c814acabbf1f197259c011 (patch) | |
tree | 198efd35f2d644a7db05ed1ff659a8cc4b25d376 /drivers/gpu/drm/i915/display/intel_hotplug.h | |
parent | bd738d859e71acb9315634cf38676fd0585d4668 (diff) | |
download | linux-cd572b3bb27e86f4a4c814acabbf1f197259c011.tar.xz |
drm/i915: Disable hotplug detection works during driver init/shutdown
As described in the previous patch, an unexpected connector
detection/modeset started from the intel_hotplug::hotplug_work can
happen during the driver init/shutdown sequence. Prevent these by
disabling the queuing of and flushing all the intel_hotplug work that
can start them at the beginning of the init/shutdown sequence and allow
the queuing only while the display is in the initialized state.
Other work items - like the intel_connector::modeset_retry_work or the
MST probe works - are still enabled and can start a detection/modeset,
but after the previous patch these will be rejected. Disabling these
works as well is for a follow-up patchset.
Link: https://patchwork.freedesktop.org/patch/msgid/20240104083008.2715733-9-imre.deak@intel.com
Reviewed-by: Jouni Högander <jouni.hogander@intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Diffstat (limited to 'drivers/gpu/drm/i915/display/intel_hotplug.h')
-rw-r--r-- | drivers/gpu/drm/i915/display/intel_hotplug.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_hotplug.h b/drivers/gpu/drm/i915/display/intel_hotplug.h index 424ae5dbf5a0..a17253ddec83 100644 --- a/drivers/gpu/drm/i915/display/intel_hotplug.h +++ b/drivers/gpu/drm/i915/display/intel_hotplug.h @@ -30,4 +30,8 @@ bool intel_hpd_disable(struct drm_i915_private *dev_priv, enum hpd_pin pin); void intel_hpd_enable(struct drm_i915_private *dev_priv, enum hpd_pin pin); void intel_hpd_debugfs_register(struct drm_i915_private *i915); +void intel_hpd_enable_detection_work(struct drm_i915_private *i915); +void intel_hpd_disable_detection_work(struct drm_i915_private *i915); +bool intel_hpd_schedule_detection(struct drm_i915_private *i915); + #endif /* __INTEL_HOTPLUG_H__ */ |