[Intel-gfx] [PATCH] drm/i915: Prune 2560x2880 mode for 5K tiled dual DP monitors

Sharma, Shashank shashank.sharma at intel.com
Tue Aug 27 07:39:23 UTC 2019


Hello Ankit,

On 8/27/2019 11:59 AM, Nautiyal, Ankit K wrote:
> From: Ankit Nautiyal <ankit.k.nautiyal at intel.com>
>
> Currently, the transcoder port sync feature is not available, due to
> which the 5K-tiled dual DP monitors experience corruption when
> 2560x2880 mode is applied for both of the tiled DP connectors.
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97244
>
> There is a patch series to enable transcode port sync feature for
> tiled display for ICL+, which is under review:
> https://patchwork.kernel.org/project/intel-gfx/list/?series=137339
>
> For the older platforms, we need to remove the 2560x2880 mode to avoid
> a possibility of userspace choosing 2560x2880 mode for both tiled
> displays, resulting in corruption.
>
> This patch prunes 2560x2880 mode for one of the tiled DP connector.
> Since both the tiled DP connectors have different tile_h_loc and
> tile_v_loc, the tiled connector with tile_h_loc and tile_v_loc as '0',
> is chosen, for which the given resolution is removed.
>
> Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal at intel.com>
> CC: Manasi Navare <manasi.d.navare at intel.com>
> ---
>   drivers/gpu/drm/i915/display/intel_dp.c | 11 +++++++++++
>   1 file changed, 11 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> index 5c45a3b..aa43a3b 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -564,6 +564,17 @@ intel_dp_mode_valid(struct drm_connector *connector,
>   	if (mode->flags & DRM_MODE_FLAG_DBLCLK)
>   		return MODE_H_ILLEGAL;
>   
> +	/*
> +	 * For 5K tiled dual DP monitors, dual-DP sync is not yet supported.
> +	 * This results in display sync issues, when both tiled connectors run
> +	 * on 2560x2880 resolution. Therefore prune the 2560x2880 mode on one
> +	 * of the tiled connector, to avoid such a case.
> +	 */
> +	if (connector->has_tile &&
> +	    (connector->tile_h_loc == 0 && connector->tile_v_loc == 0) &&
> +	    (mode->hdisplay == 2560 && mode->vdisplay == 2880))

Shouldn't this be for >= 2560/2880 than == ? Also, do we want 
(mode->hdisplay >= 2560 *||* mode->vdisplay >= 2880 )

- Shashank

> +		return MODE_PANEL;
> +
>   	return MODE_OK;
>   }
>   
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/intel-gfx/attachments/20190827/690c73c8/attachment.html>


More information about the Intel-gfx mailing list