All of lore.kernel.org
 help / color / mirror / Atom feed
From: Imre Deak <imre.deak@intel.com>
To: intel-gfx@lists.freedesktop.org
Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Subject: [PATCH v2 04/11] drm/i915/dp_mst: Account for channel coding efficiency in the DSC DPT bpp limit
Date: Wed, 17 Apr 2024 01:10:03 +0300	[thread overview]
Message-ID: <20240416221010.376865-5-imre.deak@intel.com> (raw)
In-Reply-To: <20240416221010.376865-1-imre.deak@intel.com>

The DSC DPT interface BW limit check should take into account the link
clock's (aka DDI clock in bspec) channel coding efficiency overhead.
Bspec suggests that the FEC overhead needs to be applied, however HW
people claim this isn't the case, nor is any overhead applicable.

However based on testing various 5k/6k modes both on the DELL U3224KBA
monitor and the Unigraf UCD-500 CTS test device, both the channel coding
efficiency (which includes the FEC overhead) and an additional 3%
overhead must be accounted for to get these modes working.

Bspec: 49259

v2:
- Apply an additional 3% overhead, add a commit log and code comment
  about these overheads and the relation to the Bspec BW limit formula.

Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com> (v1)
Signed-off-by: Imre Deak <imre.deak@intel.com>
---
 drivers/gpu/drm/i915/display/intel_dp_mst.c | 23 +++++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
index 58eb6bf33c92e..0448cc343a33f 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
@@ -59,11 +59,30 @@ static int intel_dp_mst_check_constraints(struct drm_i915_private *i915, int bpp
 	if (intel_dp_is_uhbr(crtc_state) && DISPLAY_VER(i915) < 14 && dsc) {
 		int output_bpp = bpp;
 		int symbol_clock = intel_dp_link_symbol_clock(crtc_state->port_clock);
+		/*
+		 * Bspec/49259 suggests that the FEC overhead needs to be
+		 * applied here, though HW people claim that neither this FEC
+		 * or any other overhead is applicable here (that is the actual
+		 * available_bw is just symbol_clock * 72). However based on
+		 * testing on MTL-P the
+		 * - DELL U3224KBA display
+		 * - Unigraf UCD-500 CTS test sink
+		 * devices the
+		 * - 5120x2880/995.59Mhz
+		 * - 6016x3384/1357.23Mhz
+		 * - 6144x3456/1413.39Mhz
+		 * modes (all which had a DPT limit on the above devices),
+		 * both the channel coding efficiency and an additional 3%
+		 * overhead needs to be accounted for.
+		 */
+		int available_bw = mul_u32_u32(symbol_clock * 72,
+					       drm_dp_bw_channel_coding_efficiency(true)) /
+				   1030000;
 
 		if (output_bpp * adjusted_mode->crtc_clock >
-		    symbol_clock * 72) {
+		    available_bw) {
 			drm_dbg_kms(&i915->drm, "UHBR check failed(required bw %d available %d)\n",
-				    output_bpp * adjusted_mode->crtc_clock, symbol_clock * 72);
+				    output_bpp * adjusted_mode->crtc_clock, available_bw);
 			return -EINVAL;
 		}
 	}
-- 
2.43.3


  parent reply	other threads:[~2024-04-16 22:09 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-16 22:09 [PATCH v2 00/11] drm/i915/dp: Few MTL/DSC and a UHBR monitor fix Imre Deak
2024-04-16 22:10 ` [PATCH v2 01/11] drm/i915/dp: Fix DSC line buffer depth programming Imre Deak
2024-04-16 22:10 ` [PATCH v2 02/11] drm/i915/dp_mst: Fix symbol clock when calculating the DSC DPT bpp limit Imre Deak
2024-04-16 22:10 ` [PATCH v2 03/11] drm/i915/dp_mst: Fix BW limit check when calculating DSC DPT bpp Imre Deak
2024-04-16 22:10 ` Imre Deak [this message]
2024-04-17 12:42   ` [PATCH v2 04/11] drm/i915/dp_mst: Account for channel coding efficiency in the DSC DPT bpp limit Nautiyal, Ankit K
2024-04-16 22:10 ` [PATCH v2 05/11] drm/i915/dp_mst: Account with the DSC DPT bpp limit on MTL Imre Deak
2024-04-16 22:10 ` [PATCH v2 06/11] drm/i915/dp_mst: Sanitize calculating the DSC DPT bpp limit Imre Deak
2024-04-16 22:10 ` [PATCH v2 07/11] drm/dp: Add drm_dp_uhbr_channel_coding_supported() Imre Deak
2024-04-17  9:21   ` Jani Nikula
2024-04-17 11:49     ` Imre Deak
2024-04-17 14:19   ` [PATCH v3 07/11] drm/dp: Add drm_dp_128b132b_supported() Imre Deak
2024-04-16 22:10 ` [PATCH v2 08/11] drm/dp_mst: Factor out drm_dp_mst_port_is_logical() Imre Deak
2024-04-16 22:10 ` [PATCH v2 09/11] drm/dp_mst: Add drm_dp_mst_aux_for_parent() Imre Deak
2024-04-16 22:10 ` [PATCH v2 10/11] drm/i915/dp_mst: Make HBLANK expansion quirk work for logical ports Imre Deak
2024-04-16 22:10 ` [PATCH v2 11/11] drm/i915/dp_mst: Enable HBLANK expansion quirk for UHBR rates Imre Deak
2024-04-17  9:39   ` Jani Nikula
2024-04-17 11:46     ` Imre Deak
2024-04-17 14:22   ` [PATCH v3 " Imre Deak
2024-04-16 22:44 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915/dp: Few MTL/DSC and a UHBR monitor fix (rev2) Patchwork
2024-04-16 22:44 ` ✗ Fi.CI.SPARSE: " Patchwork
2024-04-16 22:51 ` ✓ Fi.CI.BAT: success " Patchwork
2024-04-17  6:20 ` ✗ Fi.CI.IGT: failure " Patchwork
2024-04-17 16:34 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915/dp: Few MTL/DSC and a UHBR monitor fix (rev4) Patchwork
2024-04-17 16:34 ` ✗ Fi.CI.SPARSE: " Patchwork
2024-04-17 16:43 ` ✓ Fi.CI.BAT: success " Patchwork
2024-04-18 12:22 ` ✗ Fi.CI.IGT: failure " Patchwork
2024-04-19 14:45   ` Imre Deak
2024-04-24 12:41     ` Illipilli, TejasreeX
2024-04-24  6:52 ` ✓ Fi.CI.IGT: success " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240416221010.376865-5-imre.deak@intel.com \
    --to=imre.deak@intel.com \
    --cc=ankit.k.nautiyal@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.