summaryrefslogtreecommitdiff
path: root/tools/intel_vbt_decode.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/intel_vbt_decode.c')
-rw-r--r--tools/intel_vbt_decode.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index 1e60007b0..952435d49 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -382,6 +382,8 @@ static size_t block_min_size(const struct context *context, int section_id)
return sizeof(struct bdb_lfp_backlight);
case BDB_LFP_POWER:
return sizeof(struct bdb_lfp_power);
+ case BDB_EDP_BFI:
+ return sizeof(struct bdb_edp_bfi);
case BDB_MIPI_CONFIG:
return sizeof(struct bdb_mipi_config);
case BDB_MIPI_SEQUENCE:
@@ -2676,6 +2678,34 @@ static void dump_sdvo_lvds_options(struct context *context,
printf("\tmisc[3]: %x\n", options->panel_misc_bits_4);
}
+static void dump_edp_bfi(struct context *context,
+ const struct bdb_block *block)
+{
+ const struct bdb_edp_bfi *b = block_data(block);
+
+ printf("\tBFI strucure size: %d\n", b->bfi_structure_size);
+
+ if (sizeof(b->bfi[0]) != b->bfi_structure_size) {
+ printf("\tBFI struct sizes don't match (expected %zu, got %u), skipping\n",
+ sizeof(b->bfi[0]), b->bfi_structure_size);
+ return;
+ }
+
+ for (int i = 0; i < 16; i++) {
+ if (!dump_panel(context, i))
+ continue;
+
+ printf("\tPanel %d%s\n", i, panel_str(context, i));
+
+ printf("\t\tEnable brightness control in CUI: %s\n",
+ YESNO(b->bfi[i].enable_brightness_control_in_cui));
+ printf("\t\tEnable BFI in driver: %s\n",
+ YESNO(b->bfi[i].enable_bfi_in_driver));
+ printf("\t\tBrightness percentage when BFI is disabled: %d\n",
+ b->bfi[i].brightness_percentage_when_bfi_disabled);
+ }
+}
+
static void dump_mipi_config(struct context *context,
const struct bdb_block *block)
{
@@ -3566,6 +3596,11 @@ struct dumper dumpers[] = {
.dump = dump_lfp_power,
},
{
+ .id = BDB_EDP_BFI,
+ .name = "eDP BFI",
+ .dump = dump_edp_bfi,
+ },
+ {
.id = BDB_MIPI_CONFIG,
.name = "MIPI configuration block",
.dump = dump_mipi_config,