[PATCH i-g-t 1/3] tools/intel_bios_reader: Dump more bits for general bit definitions block (1)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux