Skip to content

Commit 7948fe1

Browse files
Kuogee Hsiehrobclark
Kuogee Hsieh
authored andcommitted
drm/msm/dp: return correct edid checksum after corrupted edid checksum read
Response with correct edid checksum saved at connector after corrupted edid checksum read. This fixes Link Layer CTS cases 4.2.2.3, 4.2.2.6. Signed-off-by: Kuogee Hsieh <[email protected]> Reviewed-by: Stephen Boyd <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Rob Clark <[email protected]>
1 parent 7e10bf4 commit 7948fe1

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

drivers/gpu/drm/msm/dp/dp_panel.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ static u8 dp_panel_get_edid_checksum(struct edid *edid)
271271
{
272272
struct edid *last_block;
273273
u8 *raw_edid;
274-
bool is_edid_corrupt;
274+
bool is_edid_corrupt = false;
275275

276276
if (!edid) {
277277
DRM_ERROR("invalid edid input\n");
@@ -303,7 +303,12 @@ void dp_panel_handle_sink_request(struct dp_panel *dp_panel)
303303
panel = container_of(dp_panel, struct dp_panel_private, dp_panel);
304304

305305
if (panel->link->sink_request & DP_TEST_LINK_EDID_READ) {
306-
u8 checksum = dp_panel_get_edid_checksum(dp_panel->edid);
306+
u8 checksum;
307+
308+
if (dp_panel->edid)
309+
checksum = dp_panel_get_edid_checksum(dp_panel->edid);
310+
else
311+
checksum = dp_panel->connector->real_edid_checksum;
307312

308313
dp_link_send_edid_checksum(panel->link, checksum);
309314
dp_link_send_test_response(panel->link);

0 commit comments

Comments
 (0)