diff options
author | Cecil Hugh Watson <knoppmyth@gmail.com> | 2009-09-26 01:57:08 (GMT) |
---|---|---|
committer | Cecil Hugh Watson <knoppmyth@gmail.com> | 2009-09-26 01:57:08 (GMT) |
commit | 7b29169fff9e7c624890c5edffe85def8a293136 (patch) | |
tree | 47753889faa3a2063b66d1c7e7681e703eb1b39a /abs/core/xf86-video-intel/26_i830-use-lfp-data-ptrs.patch | |
parent | c491dea779dac29afff3578bf8245943817c2339 (diff) | |
download | linhes_pkgbuild-7b29169fff9e7c624890c5edffe85def8a293136.zip linhes_pkgbuild-7b29169fff9e7c624890c5edffe85def8a293136.tar.gz linhes_pkgbuild-7b29169fff9e7c624890c5edffe85def8a293136.tar.bz2 |
LinHES 6.01.00
Diffstat (limited to 'abs/core/xf86-video-intel/26_i830-use-lfp-data-ptrs.patch')
-rw-r--r-- | abs/core/xf86-video-intel/26_i830-use-lfp-data-ptrs.patch | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/abs/core/xf86-video-intel/26_i830-use-lfp-data-ptrs.patch b/abs/core/xf86-video-intel/26_i830-use-lfp-data-ptrs.patch new file mode 100644 index 0000000..d74b809 --- /dev/null +++ b/abs/core/xf86-video-intel/26_i830-use-lfp-data-ptrs.patch @@ -0,0 +1,63 @@ +diff -Nurp patched/src/bios_reader/bios_reader.c working/src/bios_reader/bios_reader.c +--- patched/src/bios_reader/bios_reader.c 2008-10-16 14:06:07.000000000 -0700 ++++ working/src/bios_reader/bios_reader.c 2008-10-16 14:25:07.000000000 -0700 +@@ -180,6 +180,19 @@ static void dump_lvds_options(void *data + printf("\tPFIT mode: %d\n", options->pfit_mode); + } + ++static void dump_lvds_ptr_data(void *data, unsigned char *base) ++{ ++ struct bdb_lvds_lfp_data_ptrs *ptrs = data; ++ ++ struct lvds_fp_timing *fp_timing = ++ (struct lvds_fp_timing *)(base + ptrs->ptr[panel_type].fp_timing_offset); ++ ++ printf("LVDS timing pointer data:\n"); ++ ++ printf("\tpanel type %02i: %dx%d\n", panel_type, fp_timing->x_res, ++ fp_timing->y_res); ++} ++ + static void dump_lvds_data(void *data, unsigned char *base) + { + struct bdb_lvds_lfp_data *lvds_data = data; +@@ -274,6 +287,8 @@ int main(int argc, char **argv) + dump_general_definitions(find_section(bdb, BDB_GENERAL_DEFINITIONS)); + dump_lvds_options(find_section(bdb, BDB_LVDS_OPTIONS)); + dump_lvds_data(find_section(bdb, BDB_LVDS_LFP_DATA), bdb); ++ dump_lvds_ptr_data(find_section(bdb, BDB_LVDS_LFP_DATA_PTRS), ++ (unsigned char *)bdb); + + return 0; + } +diff -Nurp patched/src/i830_bios.c working/src/i830_bios.c +--- patched/src/i830_bios.c 2008-10-16 14:06:07.000000000 -0700 ++++ working/src/i830_bios.c 2008-10-16 14:27:15.000000000 -0700 +@@ -89,7 +89,8 @@ parse_panel_data(I830Ptr pI830, struct b + { + struct bdb_lvds_options *lvds_options; + struct bdb_lvds_lfp_data *lvds_lfp_data; +- struct bdb_lvds_lfp_data_entry *entry; ++ struct bdb_lvds_lfp_data_ptrs *lvds_lfp_data_ptrs; ++ int timing_offset; + DisplayModePtr fixed_mode; + unsigned char *timing_ptr; + +@@ -104,12 +105,13 @@ parse_panel_data(I830Ptr pI830, struct b + if (lvds_options->panel_type == 0xff) + return; + +- lvds_lfp_data = find_section(bdb, BDB_LVDS_LFP_DATA); +- if (!lvds_lfp_data) ++ lvds_lfp_data_ptrs = find_section(bdb, BDB_LVDS_LFP_DATA_PTRS); ++ if (!lvds_lfp_data_ptrs) + return; + +- entry = &lvds_lfp_data->data[lvds_options->panel_type]; +- timing_ptr = (unsigned char *)&entry->dvo_timing; ++ timing_offset = ++ lvds_lfp_data_ptrs->ptr[lvds_options->panel_type].dvo_timing_offset; ++ timing_ptr = (unsigned char *)bdb + timing_offset; + + fixed_mode = xnfalloc(sizeof(DisplayModeRec)); + memset(fixed_mode, 0, sizeof(*fixed_mode)); |