On Thu, 17 Mar 2022, Ville Syrjala <ville.syrjala@xxxxxxxxxxxxxxx> wrote: > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > All the LFP data table pointers have uniform layout. Turn > that into a struct. > > Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> Reviewed-by: Jani Nikula <jani.nikula@xxxxxxxxx> > --- > drivers/gpu/drm/i915/display/intel_bios.c | 10 +++++----- > drivers/gpu/drm/i915/display/intel_vbt_defs.h | 13 +++++++------ > 2 files changed, 12 insertions(+), 11 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c > index c7afe19dd44a..31fce7c92a28 100644 > --- a/drivers/gpu/drm/i915/display/intel_bios.c > +++ b/drivers/gpu/drm/i915/display/intel_bios.c > @@ -180,11 +180,11 @@ get_lvds_dvo_timing(const struct bdb_lvds_lfp_data *lvds_lfp_data, > */ > > int lfp_data_size = > - lvds_lfp_data_ptrs->ptr[1].dvo_timing_offset - > - lvds_lfp_data_ptrs->ptr[0].dvo_timing_offset; > + lvds_lfp_data_ptrs->ptr[1].dvo_timing.offset - > + lvds_lfp_data_ptrs->ptr[0].dvo_timing.offset; > int dvo_timing_offset = > - lvds_lfp_data_ptrs->ptr[0].dvo_timing_offset - > - lvds_lfp_data_ptrs->ptr[0].fp_timing_offset; > + lvds_lfp_data_ptrs->ptr[0].dvo_timing.offset - > + lvds_lfp_data_ptrs->ptr[0].fp_timing.offset; > char *entry = (char *)lvds_lfp_data->data + lfp_data_size * index; > > return (struct lvds_dvo_timing *)(entry + dvo_timing_offset); > @@ -205,7 +205,7 @@ get_lvds_fp_timing(const struct bdb_header *bdb, > > if (index >= ARRAY_SIZE(ptrs->ptr)) > return NULL; > - ofs = ptrs->ptr[index].fp_timing_offset; > + ofs = ptrs->ptr[index].fp_timing.offset; > if (ofs < data_ofs || > ofs + sizeof(struct lvds_fp_timing) > data_ofs + data_size) > return NULL; > diff --git a/drivers/gpu/drm/i915/display/intel_vbt_defs.h b/drivers/gpu/drm/i915/display/intel_vbt_defs.h > index e0508990df48..d727fcd6cdab 100644 > --- a/drivers/gpu/drm/i915/display/intel_vbt_defs.h > +++ b/drivers/gpu/drm/i915/display/intel_vbt_defs.h > @@ -722,15 +722,16 @@ struct bdb_lvds_options { > /* > * Block 41 - LFP Data Table Pointers > */ > +struct lvds_lfp_data_ptr_table { > + u16 offset; /* offsets are from start of bdb */ > + u8 table_size; > +} __packed; > > /* LFP pointer table contains entries to the struct below */ > struct lvds_lfp_data_ptr { > - u16 fp_timing_offset; /* offsets are from start of bdb */ > - u8 fp_table_size; > - u16 dvo_timing_offset; > - u8 dvo_table_size; > - u16 panel_pnp_id_offset; > - u8 pnp_table_size; > + struct lvds_lfp_data_ptr_table fp_timing; > + struct lvds_lfp_data_ptr_table dvo_timing; > + struct lvds_lfp_data_ptr_table panel_pnp_id; > } __packed; > > struct bdb_lvds_lfp_data_ptrs { -- Jani Nikula, Intel Open Source Graphics Center