[Intel-gfx] [PATCH i-g-t 1/3] tools/intel_bios_reader: Dump more bits for general bit definitions block (1)
ville.syrjala at linux.intel.com
ville.syrjala at linux.intel.com
Tue Jun 21 15:47:23 UTC 2016
From: Ville Syrjälä <ville.syrjala at linux.intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
---
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
More information about the Intel-gfx
mailing list