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
