On Mon, 19 Jan 2026, Tomasz Pakuła <[email protected]> wrote:
> [Why]
> The function would continue to try to parse EDID even if DisplayID
> extension block wasn't found. Sometimes it got lucky and found AMD vsdb
> in CEA extension block which made debugging harder.
>
> [How]
> Add a return if DisplayID extension block wasn't found

Maybe don't use homegrown EDID parsing, but use drm_edid.c instead?

BR,
Jani.

>
> Signed-off-by: Tomasz Pakuła <[email protected]>
> ---
>  drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c 
> b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> index 655c9fcb078a..a0d23853b8fc 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -13113,6 +13113,9 @@ static int parse_amd_vsdb(struct amdgpu_dm_connector 
> *aconnector,
>                       break;
>       }
>  
> +     if (i == edid->extensions)
> +             return false;
> +
>       while (j < EDID_LENGTH - sizeof(struct amd_vsdb_block)) {
>               struct amd_vsdb_block *amd_vsdb = (struct amd_vsdb_block 
> *)&edid_ext[j];
>               unsigned int ieeeId = (amd_vsdb->ieee_id[2] << 16) | 
> (amd_vsdb->ieee_id[1] << 8) | (amd_vsdb->ieee_id[0]);

-- 
Jani Nikula, Intel

Reply via email to