OSDN Git Service

drm/bridge: anx7625: Propagate errors from sp_tx_edid_read()
authorRobert Foss <robert.foss@linaro.org>
Wed, 18 Aug 2021 17:13:18 +0000 (19:13 +0200)
committerRobert Foss <robert.foss@linaro.org>
Wed, 18 Aug 2021 18:57:03 +0000 (20:57 +0200)
During the sp_tx_edid_read() call the return value of sp_tx_edid_read()
is ignored, which could cause potential errors to go unhandled.

All errors which are returned by sp_tx_edid_read() are handled in
anx7625_get_edid().

Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Robert Foss <robert.foss@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20210818171318.1848272-2-robert.foss@linaro.org
drivers/gpu/drm/bridge/analogix/anx7625.c

index ea414cd..abc8db7 100644 (file)
@@ -845,8 +845,11 @@ static int sp_tx_edid_read(struct anx7625_data *ctx,
                                if (g_edid_break == 1)
                                        break;
 
-                               segments_edid_read(ctx, count / 2,
-                                                  pblock_buf, offset);
+                               ret = segments_edid_read(ctx, count / 2,
+                                                        pblock_buf, offset);
+                               if (ret < 0)
+                                       return ret;
+
                                memcpy(&pedid_blocks_buf[edid_pos],
                                       pblock_buf,
                                       MAX_DPCD_BUFFER_SIZE);
@@ -863,8 +866,11 @@ static int sp_tx_edid_read(struct anx7625_data *ctx,
                                if (g_edid_break == 1)
                                        break;
 
-                               segments_edid_read(ctx, count / 2,
-                                                  pblock_buf, offset);
+                               ret = segments_edid_read(ctx, count / 2,
+                                                        pblock_buf, offset);
+                               if (ret < 0)
+                                       return ret;
+
                                memcpy(&pedid_blocks_buf[edid_pos],
                                       pblock_buf,
                                       MAX_DPCD_BUFFER_SIZE);