Re: [PATCH] drm/edid: Dump the EDID when drm_edid_get_panel_id() has an error

From: Abhinav Kumar
Date: Fri Oct 21 2022 - 17:19:59 EST


Hi Doug

On 10/21/2022 1:07 PM, Douglas Anderson wrote:
If we fail to get a valid panel ID in drm_edid_get_panel_id() we'd
like to see the EDID that was read so we have a chance of
understanding what's wrong. There's already a function for that, so
let's call it in the error case.

NOTE: edid_block_read() has a retry loop in it, so actually we'll only
print the block read back from the final attempt. This still seems
better than nothing.

Signed-off-by: Douglas Anderson <dianders@xxxxxxxxxxxx>

Instead of checkinf for edid_block_status_valid() on the base_block, do you want to use drm_edid_block_valid() instead?

That way you get the edid_block_dump() for free if it was invalid.

---

drivers/gpu/drm/drm_edid.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 47465b9765f1..d63e26ec88b1 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -2721,6 +2721,8 @@ u32 drm_edid_get_panel_id(struct i2c_adapter *adapter)
if (edid_block_status_valid(status, edid_block_tag(base_block)))
panel_id = edid_extract_panel_id(base_block);
+ else
+ edid_block_dump(KERN_NOTICE, base_block, 0);
kfree(base_block);