Move the logic to call the connector's detect helper into a single
internal function. Reduces code dupliction.

Signed-off-by: Thomas Zimmermann <tzimmerm...@suse.de>
---
 drivers/gpu/drm/drm_probe_helper.c | 33 +++++++++++++++---------------
 1 file changed, 17 insertions(+), 16 deletions(-)

diff --git a/drivers/gpu/drm/drm_probe_helper.c 
b/drivers/gpu/drm/drm_probe_helper.c
index bb49d552e671..f14301abf53f 100644
--- a/drivers/gpu/drm/drm_probe_helper.c
+++ b/drivers/gpu/drm/drm_probe_helper.c
@@ -338,10 +338,23 @@ void drm_kms_helper_poll_reschedule(struct drm_device 
*dev)
 }
 EXPORT_SYMBOL(drm_kms_helper_poll_reschedule);
 
+static int detect_connector_status(struct drm_connector *connector,
+                                  struct drm_modeset_acquire_ctx *ctx,
+                                  bool force)
+{
+       const struct drm_connector_helper_funcs *funcs = 
connector->helper_private;
+
+       if (funcs->detect_ctx)
+               return funcs->detect_ctx(connector, ctx, force);
+       else if (connector->funcs->detect)
+               return connector->funcs->detect(connector, force);
+
+       return connector_status_connected;
+}
+
 static enum drm_connector_status
 drm_helper_probe_detect_ctx(struct drm_connector *connector, bool force)
 {
-       const struct drm_connector_helper_funcs *funcs = 
connector->helper_private;
        struct drm_modeset_acquire_ctx ctx;
        int ret;
 
@@ -349,14 +362,8 @@ drm_helper_probe_detect_ctx(struct drm_connector 
*connector, bool force)
 
 retry:
        ret = drm_modeset_lock(&connector->dev->mode_config.connection_mutex, 
&ctx);
-       if (!ret) {
-               if (funcs->detect_ctx)
-                       ret = funcs->detect_ctx(connector, &ctx, force);
-               else if (connector->funcs->detect)
-                       ret = connector->funcs->detect(connector, force);
-               else
-                       ret = connector_status_connected;
-       }
+       if (!ret)
+               ret = detect_connector_status(connector, &ctx, force);
 
        if (ret == -EDEADLK) {
                drm_modeset_backoff(&ctx);
@@ -390,7 +397,6 @@ drm_helper_probe_detect(struct drm_connector *connector,
                        struct drm_modeset_acquire_ctx *ctx,
                        bool force)
 {
-       const struct drm_connector_helper_funcs *funcs = 
connector->helper_private;
        struct drm_device *dev = connector->dev;
        int ret;
 
@@ -401,12 +407,7 @@ drm_helper_probe_detect(struct drm_connector *connector,
        if (ret)
                return ret;
 
-       if (funcs->detect_ctx)
-               ret = funcs->detect_ctx(connector, ctx, force);
-       else if (connector->funcs->detect)
-               ret = connector->funcs->detect(connector, force);
-       else
-               ret = connector_status_connected;
+       ret = detect_connector_status(connector, ctx, force);
 
        if (ret != connector->status)
                connector->epoch_counter += 1;
-- 
2.45.2

Reply via email to