]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/probe-helper: Do not fail from drmm_kms_helper_poll_init()
authorThomas Zimmermann <tzimmermann@suse.de>
Mon, 3 Mar 2025 14:52:58 +0000 (15:52 +0100)
committerThomas Zimmermann <tzimmermann@suse.de>
Mon, 24 Mar 2025 08:31:03 +0000 (09:31 +0100)
Failing to set up connector polling is not significant enough to
fail device probing. Print a warning and return nothing from the
init helper.

This only affects the managed init function. The unmanaged init
already never fails with an error.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250303145604.62962-4-tzimmermann@suse.de
drivers/gpu/drm/ast/ast_mode.c
drivers/gpu/drm/drm_probe_helper.c
include/drm/drm_probe_helper.h

index 4cac5c7f45474a95eadf5eaa60c790e0fdaad863..c6df32278bcffca0dcf3933a242044ac962c29ea 100644 (file)
@@ -1035,10 +1035,7 @@ int ast_mode_config_init(struct ast_device *ast)
                return ret;
 
        drm_mode_config_reset(dev);
-
-       ret = drmm_kms_helper_poll_init(dev);
-       if (ret)
-               return ret;
+       drmm_kms_helper_poll_init(dev);
 
        return 0;
 }
index 7ba16323e7c2f4bc7ec61f96b01ddfe28461b6a0..6b3541159c0ffdd6dc05b6a2324ec0de9d1c5474 100644 (file)
@@ -958,15 +958,16 @@ static void drm_kms_helper_poll_init_release(struct drm_device *dev, void *res)
  * cleaned up when the DRM device goes away.
  *
  * See drm_kms_helper_poll_init() for more information.
- *
- * Returns:
- * 0 on success, or a negative errno code otherwise.
  */
-int drmm_kms_helper_poll_init(struct drm_device *dev)
+void drmm_kms_helper_poll_init(struct drm_device *dev)
 {
+       int ret;
+
        drm_kms_helper_poll_init(dev);
 
-       return drmm_add_action_or_reset(dev, drm_kms_helper_poll_init_release, dev);
+       ret = drmm_add_action_or_reset(dev, drm_kms_helper_poll_init_release, dev);
+       if (ret)
+               drm_warn(dev, "Connector status will not be updated, error %d\n", ret);
 }
 EXPORT_SYMBOL(drmm_kms_helper_poll_init);
 
index d6ce7b218b774180e368287bce6d53fa19e1c661..840ae5f798c28f8f1fb5ffe0146ad13d13107cc7 100644 (file)
@@ -17,7 +17,7 @@ int drm_helper_probe_detect(struct drm_connector *connector,
                            struct drm_modeset_acquire_ctx *ctx,
                            bool force);
 
-int drmm_kms_helper_poll_init(struct drm_device *dev);
+void drmm_kms_helper_poll_init(struct drm_device *dev);
 void drm_kms_helper_poll_init(struct drm_device *dev);
 void drm_kms_helper_poll_fini(struct drm_device *dev);
 bool drm_helper_hpd_irq_event(struct drm_device *dev);