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

Abhinav Kumar quic_abhinavk at quicinc.com
Fri Oct 21 21:18:16 UTC 2022


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 at chromium.org>

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);
>   


More information about the dri-devel mailing list