]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
drm/i915/bios: Define VBT block 15 (Dot Clock Override Table) contents
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 3 May 2024 12:24:29 +0000 (15:24 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 8 May 2024 13:39:58 +0000 (16:39 +0300)
Define the contents of VBT block 15 (Dot Clock Override Table)

The contents were reverse engineered by intuition. The gen2 stuff
seems solid as I can verify that against real world VBT data. The
gen3 stuff less so as all the gen3+ VBTs I have just filla the
entire block with zeroes.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240503122449.27266-16-ville.syrjala@linux.intel.com
Acked-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/display/intel_vbt_defs.h

index 741ad566f0cc47e3597953fc1af15530838c1a26..75c702c9890b3d9a697cd8aec7e9be016303f875 100644 (file)
@@ -797,6 +797,36 @@ struct bdb_driver_persistence {
        u8 persistent_max_config;
 } __packed;
 
+/*
+ * Block 15 - Dot Clock Override Table
+ */
+
+struct dot_clock_override_entry_gen2 {
+       u32 dotclock;
+       u8 n;
+       u8 m1;
+       u8 m2;
+       u8 p1:5;
+       u8 p1_div_by_2:1;
+       u8 reserved:1;
+       u8 p2_div_by_4:1;
+} __packed;
+
+struct dot_clock_override_entry_gen3 {
+       u32 dotclock;
+       u8 n;
+       u8 m1;
+       u8 m2;
+       u8 p1;
+       u8 p2;
+} __packed;
+
+struct bdb_dot_clock_override {
+       u8 row_size; /* 8 == gen2, 9 == gen3+ */
+       u8 num_rows;
+       struct dot_clock_override_entry_gen3 table[]; /* or _gen2 */
+} __packed;
+
 /*
  * Block 22 - SDVO LVDS General Options
  */