From: "Michał Grzelak" <michal.grzelak@intel.com>
To: intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org
Cc: "Jani Nikula" <jani.nikula@linux.intel.com>,
"Michał Grzelak" <michal.grzelak@intel.com>
Subject: [PATCH v1 12/16] drm/i915/buf_trans: compute LT's VS/PE Override index
Date: Tue, 31 Mar 2026 20:33:28 +0200 [thread overview]
Message-ID: <20260331183332.1773886-13-michal.grzelak@intel.com> (raw)
In-Reply-To: <20260331183332.1773886-1-michal.grzelak@intel.com>
Add support for VS/PE Override on LT. Basing on the mode & CRTC type
found, compute the most appropriate index. Assume default index as 0.
Add FIXME & warning when EDP is requested to be overridden.
Signed-off-by: Michał Grzelak <michal.grzelak@intel.com>
---
.../drm/i915/display/intel_ddi_buf_trans.c | 31 +++++++++++++++++--
1 file changed, 29 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c b/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
index 06c2869d3e7a..e94b1eb84e58 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
@@ -1786,6 +1786,25 @@ xe3plpd_get_lt_buf_trans(struct intel_encoder *encoder,
return intel_get_buf_trans(&xe3plpd_lt_trans_dp14, n_entries);
}
+static enum lt_vswing_preemph_index
+_compute_index_lt(const struct intel_crtc_state *crtc_state)
+{
+ if (intel_crtc_has_dp_encoder(crtc_state) && intel_dp_is_uhbr(crtc_state)) {
+ return XE3P_VS_PE_DP21;
+ } else if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_EDP)) {
+ /* FIXME need to check correct parsing & table index should
+ * this ever trigger.
+ */
+ drm_WARN(to_intel_display(crtc_state)->drm, 1,
+ "Ask to override EDP's vswing/preemph tables\n");
+ return XE3P_VS_PE_EDP;
+ } else {
+ return XE3P_VS_PE_DP14;
+ }
+
+ return (enum lt_vswing_preemph_index) 0;
+}
+
static union ddi_vswing_preemph_index
vswing_preemph_compute_index(struct intel_encoder *encoder,
const struct intel_crtc_state *crtc_state)
@@ -1793,8 +1812,12 @@ vswing_preemph_compute_index(struct intel_encoder *encoder,
struct intel_display *display = to_intel_display(encoder);
union ddi_vswing_preemph_index index;
- drm_dbg_kms(display->drm, "using default VS/PE Override index");
- index = (union ddi_vswing_preemph_index) 0;
+ if (HAS_LT_PHY(display)) {
+ index.lt = _compute_index_lt(crtc_state);
+ } else {
+ drm_dbg_kms(display->drm, "using default VS/PE Override index");
+ index = (union ddi_vswing_preemph_index) 0;
+ }
return index;
}
@@ -1803,6 +1826,10 @@ static int
vswing_preemph_cast_index(struct intel_display *display,
union ddi_vswing_preemph_index index)
{
+ if (HAS_LT_PHY(display)) {
+ return index.lt;
+ }
+
return 0;
}
--
2.45.2
next prev parent reply other threads:[~2026-03-31 18:34 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-31 18:33 [PATCH v1 00/16] VS/PE Override support Michał Grzelak
2026-03-31 18:33 ` [PATCH v1 01/16] drm/i915/lt: align xe3plpd with VS/PE Override layout Michał Grzelak
2026-03-31 18:33 ` [PATCH v1 02/16] drm/i915/buf_trans: switch from u8 to u32 Michał Grzelak
2026-03-31 18:33 ` [PATCH v1 03/16] drm/i915/buf_trans: describe VS/PE Override layout Michał Grzelak
2026-03-31 18:33 ` [PATCH v1 04/16] drm/i915/bios: prepare for parsing VBT #57 Michał Grzelak
2026-03-31 18:33 ` [PATCH v1 05/16] drm/i915/bios: parse LT's VS/PE Override Block #57 Michał Grzelak
2026-03-31 18:33 ` [PATCH v1 06/16] drm/i915/bios: parse Snps's " Michał Grzelak
2026-03-31 18:33 ` [PATCH v1 07/16] drm/i915/bios: parse EHL's " Michał Grzelak
2026-03-31 18:33 ` [PATCH v1 08/16] drm/i915/bios: support VS/PE Override per each ddi port Michał Grzelak
2026-04-03 8:39 ` kernel test robot
2026-03-31 18:33 ` [PATCH v1 09/16] drm/i915/bios: print VS/PE Override port info Michał Grzelak
2026-03-31 18:33 ` [PATCH v1 10/16] drm/i915/ddi: cache VS/PE struct pointer into intel_encoder Michał Grzelak
2026-03-31 18:33 ` [PATCH v1 11/16] drm/i915/buf_trans: override encoder->get_buf_trans when asked Michał Grzelak
2026-03-31 18:33 ` Michał Grzelak [this message]
2026-04-01 7:16 ` [PATCH v1 12/16] drm/i915/buf_trans: compute LT's VS/PE Override index kernel test robot
2026-03-31 18:33 ` [PATCH v1 13/16] drm/i915/buf_trans: compute Snps's " Michał Grzelak
2026-03-31 18:33 ` [PATCH v1 14/16] drm/i915/buf_trans: compute EHL's " Michał Grzelak
2026-03-31 18:33 ` [PATCH v1 15/16] drm/i915/bios: search for VBT #57 by default Michał Grzelak
2026-04-15 6:42 ` kernel test robot
2026-04-15 6:42 ` [LTP] " kernel test robot
2026-04-16 6:40 ` Petr Vorel
2026-04-16 6:40 ` Petr Vorel
2026-04-16 7:40 ` Oliver Sang
2026-04-16 7:40 ` Oliver Sang
2026-04-16 9:17 ` Michał Grzelak
2026-04-16 9:17 ` Michał Grzelak
2026-04-17 17:11 ` Petr Vorel
2026-04-17 17:11 ` Petr Vorel
2026-03-31 18:33 ` [PATCH v1 16/16] drm/i915/bios: remove VS/PE Override warning Michał Grzelak
2026-03-31 19:47 ` ✗ i915.CI.BAT: failure for VS/PE Override support Patchwork
2026-03-31 20:52 ` ✗ CI.checkpatch: warning " Patchwork
2026-03-31 20:53 ` ✓ CI.KUnit: success " Patchwork
2026-03-31 21:35 ` ✓ Xe.CI.BAT: " Patchwork
2026-04-01 4:45 ` ✓ Xe.CI.FULL: " Patchwork
-- strict thread matches above, loose matches on Subject: below --
2026-04-01 2:50 [PATCH v1 12/16] drm/i915/buf_trans: compute LT's VS/PE Override index kernel test robot
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=20260331183332.1773886-13-michal.grzelak@intel.com \
--to=michal.grzelak@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=jani.nikula@linux.intel.com \
/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.