> Subject: [PATCH v7 2/8] drm/i915/bios: store VBT #57's metadata in > intel_vbt_data > > 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 <[email protected]>
LGTM, Reviewed-by: Suraj Kandpal <[email protected]> > --- > 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 0c7385a3bb75..6c22853b535f 100644 > --- a/drivers/gpu/drm/i915/display/intel_bios.c > +++ b/drivers/gpu/drm/i915/display/intel_bios.c > @@ -2185,6 +2185,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) { @@ -2198,6 > +2203,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 09ce25a6d4b1..061bf479458f 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
