aboutsummaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/i915/display/intel_load_detect.c
diff options
context:
space:
mode:
authorJani Nikula <jani.nikula@intel.com>2023-04-17 18:37:41 +0300
committerJani Nikula <jani.nikula@intel.com>2023-04-20 14:06:44 +0300
commit8902a55dfcff7add5d8cc77781ecc311fba8855a (patch)
tree9e00d5d1bcbcb66523f57926afee28af59e1a27e /drivers/gpu/drm/i915/display/intel_load_detect.c
parentb13604c0ff26ecde5f708ef5e1fd233f8e89e1f6 (diff)
drm/i915/display: throw out struct intel_load_detect_pipe
An error-valued pointer can handle all in one without the wrapper struct. Signed-off-by: Jani Nikula <jani.nikula@intel.com> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230417153741.1074692-2-jani.nikula@intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/display/intel_load_detect.c')
-rw-r--r--drivers/gpu/drm/i915/display/intel_load_detect.c20
1 files changed, 8 insertions, 12 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_load_detect.c b/drivers/gpu/drm/i915/display/intel_load_detect.c
index 5d6bb6d712bc..d5a0aecf3e8f 100644
--- a/drivers/gpu/drm/i915/display/intel_load_detect.c
+++ b/drivers/gpu/drm/i915/display/intel_load_detect.c
@@ -44,9 +44,9 @@ static int intel_modeset_disable_planes(struct drm_atomic_state *state,
return 0;
}
-int intel_load_detect_get_pipe(struct drm_connector *connector,
- struct intel_load_detect_pipe *old,
- struct drm_modeset_acquire_ctx *ctx)
+struct drm_atomic_state *
+intel_load_detect_get_pipe(struct drm_connector *connector,
+ struct drm_modeset_acquire_ctx *ctx)
{
struct intel_encoder *encoder =
intel_attached_encoder(to_intel_connector(connector));
@@ -64,8 +64,6 @@ int intel_load_detect_get_pipe(struct drm_connector *connector,
connector->base.id, connector->name,
encoder->base.base.id, encoder->base.name);
- old->restore_state = NULL;
-
drm_WARN_ON(dev, !drm_modeset_is_locked(&config->connection_mutex));
/*
@@ -179,13 +177,12 @@ found:
goto fail;
}
- old->restore_state = restore_state;
drm_atomic_state_put(state);
/* let the connector get through one full cycle before testing */
intel_crtc_wait_for_next_vblank(crtc);
- return true;
+ return restore_state;
fail:
if (state) {
@@ -198,27 +195,26 @@ fail:
}
if (ret == -EDEADLK)
- return ret;
+ return ERR_PTR(ret);
- return false;
+ return NULL;
}
void intel_load_detect_release_pipe(struct drm_connector *connector,
- struct intel_load_detect_pipe *old,
+ struct drm_atomic_state *state,
struct drm_modeset_acquire_ctx *ctx)
{
struct intel_encoder *intel_encoder =
intel_attached_encoder(to_intel_connector(connector));
struct drm_i915_private *i915 = to_i915(intel_encoder->base.dev);
struct drm_encoder *encoder = &intel_encoder->base;
- struct drm_atomic_state *state = old->restore_state;
int ret;
drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s], [ENCODER:%d:%s]\n",
connector->base.id, connector->name,
encoder->base.id, encoder->name);
- if (!state)
+ if (IS_ERR_OR_NULL(state))
return;
ret = drm_atomic_helper_commit_duplicated_state(state, ctx);