The patch below does not apply to the 4.19-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <[email protected]>.

Thanks,
Sasha

------------------ original commit in Linus's tree ------------------

>From 171b711b26cce208bb628526b1b368aeec7b6fa4 Mon Sep 17 00:00:00 2001
From: Jani Nikula <[email protected]>
Date: Fri, 8 Mar 2024 18:03:42 +0200
Subject: [PATCH] drm/bridge: lt8912b: do not return negative values from
 .get_modes()

The .get_modes() hooks aren't supposed to return negative error
codes. Return 0 for no modes, whatever the reason.

Cc: Adrien Grassein <[email protected]>
Cc: [email protected]
Acked-by: Thomas Zimmermann <[email protected]>
Link: 
https://patchwork.freedesktop.org/patch/msgid/dcdddcbcb64b6f6cdc55022ee50c10dee8ddbc3d.1709913674.git.jani.nik...@intel.com
Signed-off-by: Jani Nikula <[email protected]>
---
 drivers/gpu/drm/bridge/lontium-lt8912b.c | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/bridge/lontium-lt8912b.c 
b/drivers/gpu/drm/bridge/lontium-lt8912b.c
index e7c4bef74aa46..4b2ae27f0a57f 100644
--- a/drivers/gpu/drm/bridge/lontium-lt8912b.c
+++ b/drivers/gpu/drm/bridge/lontium-lt8912b.c
@@ -441,23 +441,21 @@ lt8912_connector_mode_valid(struct drm_connector 
*connector,
 static int lt8912_connector_get_modes(struct drm_connector *connector)
 {
        const struct drm_edid *drm_edid;
-       int ret = -1;
-       int num = 0;
        struct lt8912 *lt = connector_to_lt8912(connector);
        u32 bus_format = MEDIA_BUS_FMT_RGB888_1X24;
+       int ret, num;
 
        drm_edid = drm_bridge_edid_read(lt->hdmi_port, connector);
        drm_edid_connector_update(connector, drm_edid);
-       if (drm_edid) {
-               num = drm_edid_connector_add_modes(connector);
-       } else {
-               return ret;
-       }
+       if (!drm_edid)
+               return 0;
+
+       num = drm_edid_connector_add_modes(connector);
 
        ret = drm_display_info_set_bus_formats(&connector->display_info,
                                               &bus_format, 1);
-       if (ret)
-               num = ret;
+       if (ret < 0)
+               num = 0;
 
        drm_edid_free(drm_edid);
        return num;
-- 
2.43.0




Reply via email to