drm/probe-helper: warn about negative .get_modes()
authorjsg <jsg@openbsd.org>
Thu, 4 Apr 2024 07:20:55 +0000 (07:20 +0000)
committerjsg <jsg@openbsd.org>
Thu, 4 Apr 2024 07:20:55 +0000 (07:20 +0000)
From Jani Nikula
12bbe2c25cdb571190d523fd814e7696964a84d9 in linux-6.6.y/6.6.24
7af03e688792293ba33149fb8df619a8dff90e80 in mainline linux

sys/dev/pci/drm/drm_probe_helper.c
sys/dev/pci/drm/include/drm/drm_modeset_helper_vtables.h

index e5ccdc8..169df04 100644 (file)
@@ -419,6 +419,13 @@ static int drm_helper_probe_get_modes(struct drm_connector *connector)
 
        count = connector_funcs->get_modes(connector);
 
+       /* The .get_modes() callback should not return negative values. */
+       if (count < 0) {
+               drm_err(connector->dev, ".get_modes() returned %pe\n",
+                       ERR_PTR(count));
+               count = 0;
+       }
+
        /*
         * Fallback for when DDC probe failed in drm_get_edid() and thus skipped
         * override/firmware EDID.
index e3c3ac6..1592137 100644 (file)
@@ -898,7 +898,8 @@ struct drm_connector_helper_funcs {
         *
         * RETURNS:
         *
-        * The number of modes added by calling drm_mode_probed_add().
+        * The number of modes added by calling drm_mode_probed_add(). Return 0
+        * on failures (no modes) instead of negative error codes.
         */
        int (*get_modes)(struct drm_connector *connector);