[PATCH 35/35] drm/i915/bios: Define VBT block 253 (PRD Table) contents
Jani Nikula
jani.nikula at linux.intel.com
Mon May 6 09:45:58 UTC 2024
On Fri, 03 May 2024, Ville Syrjala <ville.syrjala at linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>
> Define the contents of VBT block 253 (PRD Table).
>
> Unfortunately the block has two definitions, with the cutoff
> supposedly happening on ICL vs. TGL. Also according to some
> notes it might be that the VBIOS (if that's still a thing)
> still uses the old definition even on TGL+. Quite the mess.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula at intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_vbt_defs.h | 26 +++++++++++++++++++
> 1 file changed, 26 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_vbt_defs.h b/drivers/gpu/drm/i915/display/intel_vbt_defs.h
> index 338f6133bb1e..9d5b87ff1728 100644
> --- a/drivers/gpu/drm/i915/display/intel_vbt_defs.h
> +++ b/drivers/gpu/drm/i915/display/intel_vbt_defs.h
> @@ -189,6 +189,7 @@ enum bdb_block_id {
> BDB_VSWING_PREEMPH = 57, /* 218+ */
> BDB_GENERIC_DTD = 58, /* 229+ */
> BDB_INT15_HOOK = 252, /* VBIOS only */
> + BDB_PRD_TABLE = 253,
> BDB_SKIP = 254, /* VBIOS only */
> };
>
> @@ -1576,4 +1577,29 @@ struct bdb_generic_dtd {
> struct generic_dtd_entry dtd[]; /* up to 24 DTD's */
> } __packed;
>
> +/*
> + * Block 253 - PRD Table
> + */
> +
> +struct prd_entry_old {
> + u8 displays_attached;
> + u8 display_in_pipe_a;
> + u8 display_in_pipe_b;
> +} __packed;
> +
> +struct bdb_prd_table_old {
> + struct prd_entry_old list[0]; /* ???-216 */
> + u16 num_entries; /* ???-216 */
> +} __packed;
> +
> +struct prd_entry_new {
> + u16 primary_display;
> + u16 secondary_display;
> +} __packed;
> +
> +struct bdb_prd_table_new {
> + u16 num_entries; /* 217+ */
> + struct prd_entry_new list[]; /* 217+ */
> +} __packed;
> +
> #endif /* _INTEL_VBT_DEFS_H_ */
--
Jani Nikula, Intel
More information about the Intel-gfx
mailing list