From: "Michał Grzelak" <michal.grzelak@intel.com>
To: intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org
Cc: "Jani Nikula" <jani.nikula@intel.com>,
"Suraj Kandpal" <suraj.kandpal@intel.com>,
"Michał Grzelak" <michal.grzelak@intel.com>
Subject: [PATCH v10 2/8] drm/i915/bios: store VBT #57's metadata in intel_vbt_data
Date: Thu, 2 Jul 2026 20:58:33 +0200 [thread overview]
Message-ID: <20260702185839.4042397-3-michal.grzelak@intel.com> (raw)
In-Reply-To: <20260702185839.4042397-1-michal.grzelak@intel.com>
Store tables, number of tables, number of rows and number of columns in
intel_vbt_data when search for the VBT #57 has succeeded. Structurize
all VS/PE-O relevant metadata inside anonymous struct named as vspeo.
Presence of C20 or newer PHY causes each table to contain 16 rows. Each
table contains 10 rows in case C20 PHY is absent. Use display version to
determine number of rows since there is no helper in intel_bios.c to
check presence of any C20+ PHY. pre-MTL platforms should have 10 rows
while MTL+ should have 16 rows.
v5->v6
- add Bspec (Suraj)
v3->v4
- remove unnecessary init of VS/PE-O metadata (Suraj)
- add helper for computing number of rows (Suraj)
- fix num_rows's type (Jani, Suraj)
- declare num_rows (Suraj)
Bspec: 68963
Signed-off-by: Michał Grzelak <michal.grzelak@intel.com>
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
---
drivers/gpu/drm/i915/display/intel_bios.c | 10 ++++++++++
drivers/gpu/drm/i915/display/intel_display_core.h | 7 +++++++
2 files changed, 17 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c
index ece4df4a9d62..06a8dd7581bb 100644
--- a/drivers/gpu/drm/i915/display/intel_bios.c
+++ b/drivers/gpu/drm/i915/display/intel_bios.c
@@ -2205,6 +2205,11 @@ parse_compression_parameters(struct intel_display *display)
}
}
+static int vswing_preemph_num_rows(struct intel_display *display)
+{
+ return DISPLAY_VER(display) >= 14 ? 16 : 10;
+}
+
static void
parse_vswing_preemph_override(struct intel_display *display)
{
@@ -2218,6 +2223,11 @@ parse_vswing_preemph_override(struct intel_display *display)
/* pre-ICL GOPs don't have VBT #57 */
if (!block)
return;
+
+ display->vbt.vspeo.tables = block->tables;
+ display->vbt.vspeo.num_tables = block->num_tables;
+ display->vbt.vspeo.num_columns = block->num_columns;
+ display->vbt.vspeo.num_rows = vswing_preemph_num_rows(display);
}
static u8 translate_iboost(struct intel_display *display, u8 val)
diff --git a/drivers/gpu/drm/i915/display/intel_display_core.h b/drivers/gpu/drm/i915/display/intel_display_core.h
index 17f7d3abdb9c..82754dceb3b8 100644
--- a/drivers/gpu/drm/i915/display/intel_display_core.h
+++ b/drivers/gpu/drm/i915/display/intel_display_core.h
@@ -242,6 +242,13 @@ struct intel_vbt_data {
struct list_head display_devices;
struct list_head bdb_blocks;
+ struct {
+ const u32 *tables;
+ int num_tables;
+ int num_columns;
+ int num_rows;
+ } vspeo;
+
struct sdvo_device_mapping {
u8 initialized;
u8 dvo_port;
--
2.45.2
next prev parent reply other threads:[~2026-07-02 18:58 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-02 18:58 [PATCH v10 0/8] Vswing / Pre-emphasis Override Michał Grzelak
2026-07-02 18:58 ` [PATCH v10 1/8] drm/i915/bios: search for VBT #57 by default Michał Grzelak
2026-07-02 18:58 ` Michał Grzelak [this message]
2026-07-02 18:58 ` [PATCH v10 3/8] drm/i915/bios: print VS/PE-O port info Michał Grzelak
2026-07-02 18:58 ` [PATCH v10 4/8] drm/i915/bios: de/allocate VS/PE-O buffers for each port Michał Grzelak
2026-07-02 18:58 ` [PATCH v10 5/8] drm/i915/buf_trans: add vfunc for VS/PE-O Michał Grzelak
2026-07-06 6:12 ` Kandpal, Suraj
2026-07-02 18:58 ` [PATCH v10 6/8] drm/i915: override Snps's VS/PE when requested Michał Grzelak
2026-08-11 15:48 ` Jani Nikula
2026-08-13 15:52 ` Michał Grzelak
2026-07-02 18:58 ` [PATCH v10 7/8] drm/i915: override Combo's " Michał Grzelak
2026-08-11 15:51 ` Jani Nikula
2026-07-02 18:58 ` [PATCH v10 8/8] drm/i915/bios: remove VS/PE-O warning Michał Grzelak
2026-07-02 19:06 ` ✗ CI.checkpatch: warning for Vswing / Pre-emphasis Override (rev5) Patchwork
2026-07-02 19:07 ` ✓ CI.KUnit: success " Patchwork
2026-07-02 20:07 ` ✓ Xe.CI.BAT: " Patchwork
2026-07-02 20:07 ` ✓ i915.CI.BAT: " Patchwork
2026-07-03 13:55 ` ✓ Xe.CI.FULL: " Patchwork
2026-07-03 15:39 ` ✗ i915.CI.Full: failure " 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=20260702185839.4042397-3-michal.grzelak@intel.com \
--to=michal.grzelak@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=jani.nikula@intel.com \
--cc=suraj.kandpal@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.