diff mbox

[IGT,4/4] intel_bios_reader: dump all edp device info structs

Message ID 2db505dfe57dc6127970fc20cfe5cb4356fe32ba.1381256025.git.jani.nikula@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Jani Nikula Oct. 8, 2013, 6:15 p.m. UTC
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 tools/intel_bios_reader.c |  165 +++++++++++++++++++++++++--------------------
 1 file changed, 93 insertions(+), 72 deletions(-)
diff mbox

Patch

diff --git a/tools/intel_bios_reader.c b/tools/intel_bios_reader.c
index e906efd..19b0fd9 100644
--- a/tools/intel_bios_reader.c
+++ b/tools/intel_bios_reader.c
@@ -535,79 +535,100 @@  static void dump_driver_feature(const struct bdb_block *block)
 static void dump_edp(const struct bdb_block *block)
 {
 	struct bdb_edp *edp = block->data;
-	int bpp;
-
-	printf("\tPanel type %d\n", panel_type);
-	printf("\tPower Sequence: T3 %d T7 %d T9 %d T10 %d T12 %d\n",
-		edp->power_seqs[panel_type].t3,
-		edp->power_seqs[panel_type].t7,
-		edp->power_seqs[panel_type].t9,
-		edp->power_seqs[panel_type].t10,
-		edp->power_seqs[panel_type].t12);
-
-	bpp = (edp->color_depth >> (panel_type * 2)) & 3;
-
-	printf("\tPanel color depth: ");
-	switch (bpp) {
-	case EDP_18BPP:
-		printf("18bpp\n");
-		break;
-	case EDP_24BPP:
-		printf("24bpp\n");
-		break;
-	case EDP_30BPP:
-		printf("30bpp\n");
-		break;
-	}
+	int bpp, msa;
+	int i;
 
-	printf("\teDP sDRRs MSA timing delay: %d\n", edp->sdrrs_msa_timing_delay);
-	printf("\tLink params:\n");
-	printf("\t\trate: ");
-	if (edp->link_params[panel_type].rate == EDP_RATE_1_62)
-		printf("1.62G\n");
-	else if (edp->link_params[panel_type].rate == EDP_RATE_2_7)
-		printf("2.7G\n");
-	printf("\t\tlanes: ");
-	switch (edp->link_params[panel_type].lanes) {
-	case EDP_LANE_1:
-		printf("x1 mode\n");
-		break;
-	case EDP_LANE_2:
-		printf("x2 mode\n");
-		break;
-	case EDP_LANE_4:
-		printf("x4 mode\n");
-		break;
-	}
-	printf("\t\tpre-emphasis: ");
-	switch (edp->link_params[panel_type].preemphasis) {
-	case EDP_PREEMPHASIS_NONE:
-		printf("none\n");
-		break;
-	case EDP_PREEMPHASIS_3_5dB:
-		printf("3.5dB\n");
-		break;
-	case EDP_PREEMPHASIS_6dB:
-		printf("6dB\n");
-		break;
-	case EDP_PREEMPHASIS_9_5dB:
-		printf("9.5dB\n");
-		break;
-	}
-	printf("\t\tvswing: ");
-	switch (edp->link_params[panel_type].vswing) {
-	case EDP_VSWING_0_4V:
-		printf("0.4V\n");
-		break;
-	case EDP_VSWING_0_6V:
-		printf("0.6V\n");
-		break;
-	case EDP_VSWING_0_8V:
-		printf("0.8V\n");
-		break;
-	case EDP_VSWING_1_2V:
-		printf("1.2V\n");
-		break;
+	for (i = 0; i < 16; i++) {
+		printf("\tPanel %d%s\n", i, panel_type == i ? " *" : "");
+
+		printf("\t\tPower Sequence: T3 %d T7 %d T9 %d T10 %d T12 %d\n",
+		       edp->power_seqs[i].t3,
+		       edp->power_seqs[i].t7,
+		       edp->power_seqs[i].t9,
+		       edp->power_seqs[i].t10,
+		       edp->power_seqs[i].t12);
+
+		bpp = (edp->color_depth >> (i * 2)) & 3;
+
+		printf("\t\tPanel color depth: ");
+		switch (bpp) {
+		case EDP_18BPP:
+			printf("18 bpp\n");
+			break;
+		case EDP_24BPP:
+			printf("24 bpp\n");
+			break;
+		case EDP_30BPP:
+			printf("30 bpp\n");
+			break;
+		default:
+			printf("(unknown value %d)\n", bpp);
+			break;
+		}
+
+		msa = (edp->sdrrs_msa_timing_delay >> (i * 2)) & 3;
+		printf("\t\teDP sDRRS MSA Delay: Lane %d\n", msa + 1);
+
+		printf("\t\tLink params:\n");
+		printf("\t\t\trate: ");
+		if (edp->link_params[i].rate == EDP_RATE_1_62)
+			printf("1.62G\n");
+		else if (edp->link_params[i].rate == EDP_RATE_2_7)
+			printf("2.7G\n");
+		printf("\t\t\tlanes: ");
+		switch (edp->link_params[i].lanes) {
+		case EDP_LANE_1:
+			printf("x1 mode\n");
+			break;
+		case EDP_LANE_2:
+			printf("x2 mode\n");
+			break;
+		case EDP_LANE_4:
+			printf("x4 mode\n");
+			break;
+		default:
+			printf("(unknown value %d)\n",
+			       edp->link_params[i].lanes);
+			break;
+		}
+		printf("\t\t\tpre-emphasis: ");
+		switch (edp->link_params[i].preemphasis) {
+		case EDP_PREEMPHASIS_NONE:
+			printf("none\n");
+			break;
+		case EDP_PREEMPHASIS_3_5dB:
+			printf("3.5dB\n");
+			break;
+		case EDP_PREEMPHASIS_6dB:
+			printf("6dB\n");
+			break;
+		case EDP_PREEMPHASIS_9_5dB:
+			printf("9.5dB\n");
+			break;
+		default:
+			printf("(unknown value %d)\n",
+			       edp->link_params[i].preemphasis);
+			break;
+		}
+		printf("\t\t\tvswing: ");
+		switch (edp->link_params[i].vswing) {
+		case EDP_VSWING_0_4V:
+			printf("0.4V\n");
+			break;
+		case EDP_VSWING_0_6V:
+			printf("0.6V\n");
+			break;
+		case EDP_VSWING_0_8V:
+			printf("0.8V\n");
+			break;
+		case EDP_VSWING_1_2V:
+			printf("1.2V\n");
+			break;
+		default:
+			printf("(unknown value %d)\n",
+			       edp->link_params[i].vswing);
+			break;
+		}
 	}
 }