drm/panel: do not return negative error codes from drm_panel_get_modes()
authorjsg <jsg@openbsd.org>
Thu, 4 Apr 2024 07:23:40 +0000 (07:23 +0000)
committerjsg <jsg@openbsd.org>
Thu, 4 Apr 2024 07:23:40 +0000 (07:23 +0000)
From Jani Nikula
a686732df6cecc3561595e6ce7a962a0121eed00 in linux-6.6.y/6.6.24
fc4e97726530241d96dd7db72eb65979217422c9 in mainline linux

sys/dev/pci/drm/drm_panel.c

index 10b107e..e2bd20b 100644 (file)
@@ -274,19 +274,24 @@ EXPORT_SYMBOL(drm_panel_disable);
  * The modes probed from the panel are automatically added to the connector
  * that the panel is attached to.
  *
- * Return: The number of modes available from the panel on success or a
- * negative error code on failure.
+ * Return: The number of modes available from the panel on success, or 0 on
+ * failure (no modes).
  */
 int drm_panel_get_modes(struct drm_panel *panel,
                        struct drm_connector *connector)
 {
        if (!panel)
-               return -EINVAL;
+               return 0;
 
-       if (panel->funcs && panel->funcs->get_modes)
-               return panel->funcs->get_modes(panel, connector);
+       if (panel->funcs && panel->funcs->get_modes) {
+               int num;
 
-       return -EOPNOTSUPP;
+               num = panel->funcs->get_modes(panel, connector);
+               if (num > 0)
+                       return num;
+       }
+
+       return 0;
 }
 EXPORT_SYMBOL(drm_panel_get_modes);