From be57da217deab276be5a716aa6c5cdc3695829be Mon Sep 17 00:00:00 2001 From: Ville Syrjälä Date: Wed, 2 Sep 2020 15:26:35 +0300 Subject: tools/intel_vbt_decode: Clean up SSC freq decoding MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use the same logic as we use in the kernel to decode the SSC frequency. Reviewed-by: Jani Nikula Signed-off-by: Ville Syrjälä --- tools/intel_vbt_decode.c | 46 ++++++++++++++++++++-------------------------- 1 file changed, 20 insertions(+), 26 deletions(-) diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c index c626f0e9..a91273d8 100644 --- a/tools/intel_vbt_decode.c +++ b/tools/intel_vbt_decode.c @@ -138,6 +138,19 @@ static struct bdb_block *find_section(struct context *context, int section_id) return NULL; } +static int decode_ssc_freq(struct context *context, bool alternate) +{ + switch (intel_gen(context->devid)) { + case 2: + return alternate ? 66 : 48; + case 3: + case 4: + return alternate ? 100 : 96; + default: + return alternate ? 100 : 120; + } +} + static void dump_general_features(struct context *context, const struct bdb_block *block) { @@ -164,21 +177,10 @@ static void dump_general_features(struct context *context, 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) { - if (!context->devid) - printf("\tSSC frequency: \n"); - else 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->ssc_freq ? - "100 MHz" : "120 MHz"); - else - printf("\tSSC frequency: %s\n", features->ssc_freq ? - "100 MHz (66 MHz on 855)" : "96 MHz (48 MHz on 855)"); - } + printf("\tLVDS SSC Enable: %s\n", YESNO(features->enable_ssc)); + printf("\tLVDS SSC frequency: %d MHz (0x%x)\n", + decode_ssc_freq(context, features->ssc_freq), + features->ssc_freq); printf("\tLFP on override: %s\n", YESNO(features->enable_lfp_on_override)); printf("\tDisable SSC on clone: %s\n", @@ -210,17 +212,9 @@ static void dump_general_features(struct context *context, 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 frequency: %d MHz (0x%x)\n", + decode_ssc_freq(context, features->dp_ssc_freq), + features->dp_ssc_freq); printf("\tDP SSC dongle supported: %s\n", YESNO(features->dp_ssc_dongle_supported)); } -- cgit v1.2.3