View | Details | Raw Unified | Return to bug 17811
Collapse All | Expand All

(-)a/src/bios_reader/bios_reader.c (+15 lines)
Lines 180-185 static void dump_lvds_options(void *data) Link Here
180
    printf("\tPFIT mode: %d\n", options->pfit_mode);
180
    printf("\tPFIT mode: %d\n", options->pfit_mode);
181
}
181
}
182
182
183
static void dump_lvds_ptr_data(void *data, unsigned char *base)
184
{
185
    struct bdb_lvds_lfp_data_ptrs *ptrs = data;
186
187
    struct lvds_fp_timing *fp_timing =
188
	(struct lvds_fp_timing *)(base + ptrs->ptr[panel_type].fp_timing_offset);
189
190
    printf("LVDS timing pointer data:\n");
191
192
    printf("\tpanel type %02i: %dx%d\n", panel_type, fp_timing->x_res,
193
	   fp_timing->y_res);
194
}
195
183
static void dump_lvds_data(void *data, unsigned char *base)
196
static void dump_lvds_data(void *data, unsigned char *base)
184
{
197
{
185
    struct bdb_lvds_lfp_data *lvds_data = data;
198
    struct bdb_lvds_lfp_data *lvds_data = data;
Lines 285-290 int main(int argc, char **argv) Link Here
285
    dump_general_definitions(find_section(bdb, BDB_GENERAL_DEFINITIONS));
298
    dump_general_definitions(find_section(bdb, BDB_GENERAL_DEFINITIONS));
286
    dump_lvds_options(find_section(bdb, BDB_LVDS_OPTIONS));
299
    dump_lvds_options(find_section(bdb, BDB_LVDS_OPTIONS));
287
    dump_lvds_data(find_section(bdb, BDB_LVDS_LFP_DATA), bdb);
300
    dump_lvds_data(find_section(bdb, BDB_LVDS_LFP_DATA), bdb);
301
    dump_lvds_ptr_data(find_section(bdb, BDB_LVDS_LFP_DATA_PTRS),
302
		       (unsigned char *)bdb);
288
303
289
    return 0;
304
    return 0;
290
}
305
}
(-)a/src/i830_bios.c (-6 / +7 lines)
Lines 88-95 static void Link Here
88
parse_panel_data(I830Ptr pI830, struct bdb_header *bdb)
88
parse_panel_data(I830Ptr pI830, struct bdb_header *bdb)
89
{
89
{
90
    struct bdb_lvds_options *lvds_options;
90
    struct bdb_lvds_options *lvds_options;
91
    struct bdb_lvds_lfp_data *lvds_lfp_data;
91
    struct bdb_lvds_lfp_data_ptrs *lvds_lfp_data_ptrs;
92
    struct bdb_lvds_lfp_data_entry *entry;
92
    int timing_offset;
93
    DisplayModePtr fixed_mode;
93
    DisplayModePtr fixed_mode;
94
    unsigned char *timing_ptr;
94
    unsigned char *timing_ptr;
95
95
Lines 104-115 parse_panel_data(I830Ptr pI830, struct bdb_header *bdb) Link Here
104
    if (lvds_options->panel_type == 0xff)
104
    if (lvds_options->panel_type == 0xff)
105
	return;
105
	return;
106
106
107
    lvds_lfp_data = find_section(bdb, BDB_LVDS_LFP_DATA);
107
    lvds_lfp_data_ptrs = find_section(bdb, BDB_LVDS_LFP_DATA_PTRS);
108
    if (!lvds_lfp_data)
108
    if (!lvds_lfp_data_ptrs)
109
	return;
109
	return;
110
110
111
    entry = &lvds_lfp_data->data[lvds_options->panel_type];
111
    timing_offset =
112
    timing_ptr = (unsigned char *)&entry->dvo_timing;
112
	lvds_lfp_data_ptrs->ptr[lvds_options->panel_type].dvo_timing_offset;
113
    timing_ptr = (unsigned char *)bdb + timing_offset;
113
114
114
    fixed_mode = xnfalloc(sizeof(DisplayModeRec));
115
    fixed_mode = xnfalloc(sizeof(DisplayModeRec));
115
    memset(fixed_mode, 0, sizeof(*fixed_mode));
116
    memset(fixed_mode, 0, sizeof(*fixed_mode));

Return to bug 17811