diff options
Diffstat (limited to 'tools')
-rw-r--r-- | tools/intel_vbt_decode.c | 46 |
1 files 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: <unknown platform>\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)); } |