[PATCH 5/4] drm/edid: parse Tiled Display Topology Data Block for DisplayID 2.0

Dmitry Osipenko dmitry.osipenko at collabora.com
Tue Feb 21 16:28:22 UTC 2023


On 2/17/23 13:46, Jani Nikula wrote:
> Currently we only parse the Tiled Display Topology Data Block for
> DisplayID structure version 1.2, but not 2.0. The contents seem to be
> the same for both, so expand the parsing to structure version 2.0.
> 
> Note that DisplayID spec version is not the same as DisplayID structure
> version; DisplayID 1.3 uses structure version 1.2, and DisplayID 2.0-2.1
> use structure version 2.0. Lovely.
> 
> Signed-off-by: Jani Nikula <jani.nikula at intel.com>
> ---
>  drivers/gpu/drm/drm_edid.c | 11 ++++++++++-
>  1 file changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
> index 03ad53a1ba82..ebab862b8b1a 100644
> --- a/drivers/gpu/drm/drm_edid.c
> +++ b/drivers/gpu/drm/drm_edid.c
> @@ -7267,6 +7267,15 @@ static void drm_parse_tiled_block(struct drm_connector *connector,
>  	}
>  }
>  
> +static bool displayid_is_tiled_block(const struct displayid_iter *iter,
> +				     const struct displayid_block *block)
> +{
> +	return (displayid_version(iter) == DISPLAY_ID_STRUCTURE_VER_12 &&
> +		block->tag == DATA_BLOCK_TILED_DISPLAY) ||
> +		(displayid_version(iter) == DISPLAY_ID_STRUCTURE_VER_20 &&
> +		 block->tag == DATA_BLOCK_2_TILED_DISPLAY_TOPOLOGY);
> +}
> +
>  static void _drm_update_tile_info(struct drm_connector *connector,
>  				  const struct drm_edid *drm_edid)
>  {
> @@ -7277,7 +7286,7 @@ static void _drm_update_tile_info(struct drm_connector *connector,
>  
>  	displayid_iter_edid_begin(drm_edid, &iter);
>  	displayid_iter_for_each(block, &iter) {
> -		if (block->tag == DATA_BLOCK_TILED_DISPLAY)
> +		if (displayid_is_tiled_block(&iter, block))
>  			drm_parse_tiled_block(connector, block);
>  	}
>  	displayid_iter_end(&iter);

I don't have display setup to test this, but looks okay.

Reviewed-by: Dmitry Osipenko <dmitry.osipenko at collabora.com>

-- 
Best regards,
Dmitry



More information about the dri-devel mailing list