From 03cc8f59efd991f3f76ed87fe1a28fa55905a7a7 Mon Sep 17 00:00:00 2001 From: Ville Syrjälä Date: Wed, 1 Jun 2022 18:33:38 +0300 Subject: tools/intel_vbt_decode: Dump the panel PNP ID MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Decode the panel PNP ID from the LVDS data block. Reviewed-by: Jani Nikula Signed-off-by: Ville Syrjälä --- tools/intel_vbt_decode.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c index ef00a173..e49831e2 100644 --- a/tools/intel_vbt_decode.c +++ b/tools/intel_vbt_decode.c @@ -33,6 +33,7 @@ #include #include #include +#include #include #include #include @@ -880,6 +881,18 @@ static void dump_lvds_ptr_data(struct context *context, printf("\tNumber of entries: %d\n", ptrs->lvds_entries); } +static char *decode_pnp_id(u16 mfg_name, char str[4]) +{ + mfg_name = ntohs(mfg_name); + + str[0] = '@' + ((mfg_name >> 10) & 0x1f); + str[1] = '@' + ((mfg_name >> 5) & 0x1f); + str[2] = '@' + ((mfg_name >> 0) & 0x1f); + str[3] = '\0'; + + return str; +} + static void dump_lvds_data(struct context *context, const struct bdb_block *block) { @@ -901,6 +914,9 @@ static void dump_lvds_data(struct context *context, block_data(block) + ptrs->ptr[i].fp_timing.offset; const uint8_t *timing_data = block_data(block) + ptrs->ptr[i].dvo_timing.offset; + const struct lvds_pnp_id *pnp_id = + block_data(block) + ptrs->ptr[i].panel_pnp_id.offset; + char mfg[4]; if (i != context->panel_type && !context->dump_all_panel_types) continue; @@ -936,6 +952,14 @@ static void dump_lvds_data(struct context *context, vdisplay, vsyncstart, vsyncend, vtotal, clock, (hsyncend > htotal || vsyncend > vtotal) ? "BAD!" : "good"); + + printf("\t\tPnP ID:\n"); + printf("\t\t Mfg name: %s (0x%x)\n", + decode_pnp_id(pnp_id->mfg_name, mfg), pnp_id->mfg_name); + printf("\t\t Product code: %u\n", pnp_id->product_code); + printf("\t\t Serial: %u\n", pnp_id->serial); + printf("\t\t Mfg week: %d\n", pnp_id->mfg_week); + printf("\t\t Mfg year: %d\n", 1990 + pnp_id->mfg_year); } free(ptrs_block); -- cgit v1.2.3