]> git.itanic.dy.fi Git - linux-stable/commitdiff
drm/bridge: anx7625: Fix edid_read break case in sp_tx_edid_read()
authorHsin-Yi Wang <hsinyi@chromium.org>
Thu, 18 Nov 2021 19:30:02 +0000 (03:30 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 14 Dec 2022 10:37:18 +0000 (11:37 +0100)
[ Upstream commit 0bae5687bc689b64343fd8b52db2ad9e448f3f16 ]

edid_read() was assumed to return 0 on success. After commit
7f16d0f3b8e2("drm/bridge: anx7625: Propagate errors from sp_tx_rst_aux()"),
the function will return > 0 for successful case, representing the i2c
read bytes. Otherwise -EIO on failure cases. Update the g_edid_break
break condition accordingly.

Fixes: 7f16d0f3b8e2("drm/bridge: anx7625: Propagate errors from sp_tx_rst_aux()")
Signed-off-by: Hsin-Yi Wang <hsinyi@chromium.org>
Reviewed-by: Robert Foss <robert.foss@linaro.org>
Reviewed-by: Xin Ji <xji@analogixsemi.com>
Signed-off-by: Robert Foss <robert.foss@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20211118193002.407168-1-hsinyi@chromium.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/bridge/analogix/anx7625.c

index 392a9c56e9a00cea04edd338eed992d773a57a3d..f895ef1939fa0cbcb38f6893100153b5ee55cbbb 100644 (file)
@@ -796,7 +796,7 @@ static int sp_tx_edid_read(struct anx7625_data *ctx,
        int count, blocks_num;
        u8 pblock_buf[MAX_DPCD_BUFFER_SIZE];
        u8 i, j;
-       u8 g_edid_break = 0;
+       int g_edid_break = 0;
        int ret;
        struct device *dev = &ctx->client->dev;
 
@@ -827,7 +827,7 @@ static int sp_tx_edid_read(struct anx7625_data *ctx,
                                g_edid_break = edid_read(ctx, offset,
                                                         pblock_buf);
 
-                               if (g_edid_break)
+                               if (g_edid_break < 0)
                                        break;
 
                                memcpy(&pedid_blocks_buf[offset],