summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2025-02-15 20:52:44 +0200
committerVille Syrjälä <ville.syrjala@linux.intel.com>2025-02-15 21:04:01 +0200
commit1562a536ff4289c10d44b6d79b2be3e070dc3973 (patch)
tree3688402ea8c4764889fe4028e11c56a67578f966
parent78ecd904ee85f09360a8c4f1d15fb0a62ee4191e (diff)
drm/i915: Extract intel_connector_cancel_modeset_retry_work()
Hide the implementation details of the modeset retry work better. v2: Include prototype and sort includes correctly (Jani) Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20250213150220.13580-4-ville.syrjala@linux.intel.com Reviewed-by: Jani Nikula <jani.nikula@intel.com>
-rw-r--r--drivers/gpu/drm/i915/display/intel_connector.c6
-rw-r--r--drivers/gpu/drm/i915/display/intel_connector.h1
-rw-r--r--drivers/gpu/drm/i915/display/intel_display.c4
3 files changed, 9 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_connector.c b/drivers/gpu/drm/i915/display/intel_connector.c
index b1240be2ec6d..358965fc7f55 100644
--- a/drivers/gpu/drm/i915/display/intel_connector.c
+++ b/drivers/gpu/drm/i915/display/intel_connector.c
@@ -70,6 +70,12 @@ void intel_connector_queue_modeset_retry_work(struct intel_connector *connector)
drm_connector_put(&connector->base);
}
+void intel_connector_cancel_modeset_retry_work(struct intel_connector *connector)
+{
+ if (cancel_work_sync(&connector->modeset_retry_work))
+ drm_connector_put(&connector->base);
+}
+
int intel_connector_init(struct intel_connector *connector)
{
struct intel_digital_connector_state *conn_state;
diff --git a/drivers/gpu/drm/i915/display/intel_connector.h b/drivers/gpu/drm/i915/display/intel_connector.h
index 6d4a6b26d8f0..aafb25a814fa 100644
--- a/drivers/gpu/drm/i915/display/intel_connector.h
+++ b/drivers/gpu/drm/i915/display/intel_connector.h
@@ -34,5 +34,6 @@ void intel_attach_hdmi_colorspace_property(struct drm_connector *connector);
void intel_attach_dp_colorspace_property(struct drm_connector *connector);
void intel_attach_scaling_mode_property(struct drm_connector *connector);
void intel_connector_queue_modeset_retry_work(struct intel_connector *connector);
+void intel_connector_cancel_modeset_retry_work(struct intel_connector *connector);
#endif /* __INTEL_CONNECTOR_H__ */
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 31feefb1bc29..cc24edf4f01c 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -63,6 +63,7 @@
#include "intel_cdclk.h"
#include "intel_clock_gating.h"
#include "intel_color.h"
+#include "intel_connector.h"
#include "intel_crt.h"
#include "intel_crtc.h"
#include "intel_crtc_state_dump.h"
@@ -8544,8 +8545,7 @@ void intel_hpd_poll_fini(struct drm_i915_private *i915)
/* Kill all the work that may have been queued by hpd. */
drm_connector_list_iter_begin(&i915->drm, &conn_iter);
for_each_intel_connector_iter(connector, &conn_iter) {
- if (cancel_work_sync(&connector->modeset_retry_work))
- drm_connector_put(&connector->base);
+ intel_connector_cancel_modeset_retry_work(connector);
if (connector->hdcp.shim) {
cancel_delayed_work_sync(&connector->hdcp.check_work);
cancel_work_sync(&connector->hdcp.prop_work);