summaryrefslogtreecommitdiff
path: root/tools/intel_vbt_decode.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/intel_vbt_decode.c')
-rw-r--r--tools/intel_vbt_decode.c40
1 files changed, 12 insertions, 28 deletions
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index 8f80c79a..ef00a173 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -883,40 +883,24 @@ static void dump_lvds_ptr_data(struct context *context,
static void dump_lvds_data(struct context *context,
const struct bdb_block *block)
{
- const struct bdb_lvds_lfp_data *lvds_data = block_data(block);
struct bdb_block *ptrs_block;
const struct bdb_lvds_lfp_data_ptrs *ptrs;
- int num_entries;
int i;
int hdisplay, hsyncstart, hsyncend, htotal;
int vdisplay, vsyncstart, vsyncend, vtotal;
float clock;
- int lfp_data_size, dvo_offset;
ptrs_block = find_section(context, BDB_LVDS_LFP_DATA_PTRS);
- if (!ptrs_block) {
- printf("No LVDS ptr block\n");
+ if (!ptrs_block)
return;
- }
ptrs = block_data(ptrs_block);
- lfp_data_size =
- ptrs->ptr[1].fp_timing.offset - ptrs->ptr[0].fp_timing.offset;
- dvo_offset =
- ptrs->ptr[0].dvo_timing.offset - ptrs->ptr[0].fp_timing.offset;
-
- num_entries = block->size / lfp_data_size;
-
- printf(" Number of entries: %d (preferred block marked with '*')\n",
- num_entries);
-
- for (i = 0; i < num_entries; i++) {
- const uint8_t *lfp_data_ptr =
- (const uint8_t *) lvds_data->data + lfp_data_size * i;
- const uint8_t *timing_data = lfp_data_ptr + dvo_offset;
- const struct lvds_lfp_data_entry *lfp_data =
- (const struct lvds_lfp_data_entry *)lfp_data_ptr;
+ for (i = 0; i < 16; i++) {
+ const struct lvds_fp_timing *fp_timing =
+ block_data(block) + ptrs->ptr[i].fp_timing.offset;
+ const uint8_t *timing_data =
+ block_data(block) + ptrs->ptr[i].dvo_timing.offset;
if (i != context->panel_type && !context->dump_all_panel_types)
continue;
@@ -934,19 +918,19 @@ static void dump_lvds_data(struct context *context,
printf("\tPanel %d%s\n", i, context->panel_type == i ? " *" : "");
printf("\t\t%dx%d clock %d\n",
- lfp_data->fp_timing.x_res, lfp_data->fp_timing.y_res,
+ fp_timing->x_res, fp_timing->y_res,
_PIXEL_CLOCK(timing_data));
printf("\t\tinfo:\n");
printf("\t\t LVDS: 0x%08lx\n",
- (unsigned long)lfp_data->fp_timing.lvds_reg_val);
+ (unsigned long)fp_timing->lvds_reg_val);
printf("\t\t PP_ON_DELAYS: 0x%08lx\n",
- (unsigned long)lfp_data->fp_timing.pp_on_reg_val);
+ (unsigned long)fp_timing->pp_on_reg_val);
printf("\t\t PP_OFF_DELAYS: 0x%08lx\n",
- (unsigned long)lfp_data->fp_timing.pp_off_reg_val);
+ (unsigned long)fp_timing->pp_off_reg_val);
printf("\t\t PP_DIVISOR: 0x%08lx\n",
- (unsigned long)lfp_data->fp_timing.pp_cycle_reg_val);
+ (unsigned long)fp_timing->pp_cycle_reg_val);
printf("\t\t PFIT: 0x%08lx\n",
- (unsigned long)lfp_data->fp_timing.pfit_reg_val);
+ (unsigned long)fp_timing->pfit_reg_val);
printf("\t\ttimings: %d %d %d %d %d %d %d %d %.2f (%s)\n",
hdisplay, hsyncstart, hsyncend, htotal,
vdisplay, vsyncstart, vsyncend, vtotal, clock,