From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> --- tools/intel_bios.h | 17 ++++++++++++++--- tools/intel_bios_reader.c | 35 +++++++++++++++++++++++++++++++++-- 2 files changed, 47 insertions(+), 5 deletions(-) diff --git a/tools/intel_bios.h b/tools/intel_bios.h index b7ebd48ef7e7..c4632da336d9 100644 --- a/tools/intel_bios.h +++ b/tools/intel_bios.h @@ -104,12 +104,19 @@ struct bdb_general_features { unsigned char ssc_freq:1; unsigned char enable_lfp_on_override:1; unsigned char disable_ssc_ddt:1; - unsigned char rsvd8:3; /* finish byte */ + unsigned char underscan_vga_timings:1; + unsigned char dynamic_cdclk:1; /* 183 */ + unsigned char vbios_hotplug_support:1; /* bits 3 */ unsigned char disable_smooth_vision:1; unsigned char single_dvi:1; - unsigned char rsvd9:6; /* finish byte */ + unsigned char rotate_180:1; /* 181 */ + unsigned char fdi_rx_polarity:1; + unsigned char vbios_extended_mode:1; /* 160 */ + unsigned char copy_ilfp_dtd_to_sdvo_lvds_dtd:1; /* 160 */ + unsigned char panel_best_fit_timing:1; /* 160 */ + unsigned char ignore_strap_state:1; /* 160 */ /* bits 4 */ unsigned char legacy_monitor_detect; @@ -117,7 +124,11 @@ struct bdb_general_features { /* bits 5 */ unsigned char int_crt_support:1; unsigned char int_tv_support:1; - unsigned char rsvd11:6; /* finish byte */ + unsigned char int_efp_support:1; + unsigned char dp_ssc_enable:1; + unsigned char dp_ssc_freq:1; + unsigned char dp_ssc_dongle_supported:1; + unsigned char rsvd11:2; /* finish byte */ } __attribute__ ((packed)); #define GPIO_PIN_NONE 0x00 /* "N/A" */ diff --git a/tools/intel_bios_reader.c b/tools/intel_bios_reader.c index 4c4ab666fc55..588cc2c36c7a 100644 --- a/tools/intel_bios_reader.c +++ b/tools/intel_bios_reader.c @@ -151,6 +151,7 @@ static void dump_general_features(struct context *context, printf("\tMessage: %s\n", YESNO(features->msg_enable)); printf("\tClear screen: %d\n", features->clear_screen); printf("\tDVO color flip required: %s\n", YESNO(features->color_flip)); + printf("\tExternal VBT: %s\n", YESNO(features->download_ext_vbt)); printf("\tEnable SSC: %s\n", YESNO(features->enable_ssc)); if (features->enable_ssc) { @@ -171,13 +172,45 @@ static void dump_general_features(struct context *context, YESNO(features->enable_lfp_on_override)); printf("\tDisable SSC on clone: %s\n", YESNO(features->disable_ssc_ddt)); + printf("\tUnderscan support for VGA timings: %s\n", + YESNO(features->underscan_vga_timings)); + if (context->bdb->version >= 183) + printf("\tDynamic CD clock: %s\n", YESNO(features->dynamic_cdclk)); + printf("\tHotplug support in VBIOS: %s\n", + YESNO(features->vbios_hotplug_support)); + printf("\tDisable smooth vision: %s\n", YESNO(features->disable_smooth_vision)); printf("\tSingle DVI for CRT/DVI: %s\n", YESNO(features->single_dvi)); + if (context->bdb->version >= 181) + printf("\tEnable 180 degree rotation: %s\n", YESNO(features->rotate_180)); + printf("\tInverted FDI Rx polarity: %s\n", YESNO(features->fdi_rx_polarity)); + if (context->bdb->version >= 160) { + printf("\tExtended VBIOS mode: %s\n", YESNO(features->vbios_extended_mode)); + printf("\tCopy iLFP DTD to SDVO LVDS DTD: %s\n", YESNO(features->copy_ilfp_dtd_to_sdvo_lvds_dtd)); + printf("\tBest fit panel timing algorithm: %s\n", YESNO(features->panel_best_fit_timing)); + printf("\tIgnore strap state: %s\n", YESNO(features->ignore_strap_state)); + } + printf("\tLegacy monitor detect: %s\n", YESNO(features->legacy_monitor_detect)); + printf("\tIntegrated CRT: %s\n", YESNO(features->int_crt_support)); printf("\tIntegrated TV: %s\n", YESNO(features->int_tv_support)); + printf("\tIntegrated EFP: %s\n", YESNO(features->int_efp_support)); + printf("\tDP SSC enable: %s\n", YESNO(features->dp_ssc_enable)); + if (features->dp_ssc_enable) { + if (IS_VALLEYVIEW(context->devid) || IS_CHERRYVIEW(context->devid) || + IS_BROXTON(context->devid)) + printf("\tSSC frequency: 100 MHz\n"); + else if (HAS_PCH_SPLIT(context->devid)) + printf("\tSSC frequency: %s\n", features->dp_ssc_freq ? + "100 MHz" : "120 MHz"); + else + printf("\tSSC frequency: %s\n", features->dp_ssc_freq ? + "100 MHz" : "96 MHz"); + } + printf("\tDP SSC dongle supported: %s\n", YESNO(features->dp_ssc_dongle_supported)); } static void dump_backlight_info(struct context *context, @@ -361,8 +394,6 @@ static const char *efp_conn(uint8_t type) return "unknown"; } - - static void dump_child_device(struct context *context, struct child_device_config *child) { -- 2.7.4 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx