Igt-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH i-g-t 0/6] tools/intel_vbt_decode: Improve decoding to strings
@ 2025-09-29 19:07 Ville Syrjala
  2025-09-29 19:07 ` [PATCH i-g-t 1/6] tools/intel_vbt_decode: Introduce to_str() Ville Syrjala
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Ville Syrjala @ 2025-09-29 19:07 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Make it easier/safer to decode VBT values into a string representation.

Also decode a couple of new (or rather old) things.

Ville Syrjälä (6):
  tools/intel_vbt_decode: Introduce to_str()
  tools/intel_vbt_decode: Use to_str() more
  tools/intel_vbt_decode: Convert eDP deocding to use to_str()
  tools/intel_vbt_decode: Use panel_bits()
  tools/intel_vbt_decode: Decode display refclk mode
  tools/intel_vbt_decode: Decode the backlight control method type

 tools/intel_vbt_decode.c | 264 ++++++++++++++++++---------------------
 1 file changed, 123 insertions(+), 141 deletions(-)

-- 
2.49.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH i-g-t 1/6] tools/intel_vbt_decode: Introduce to_str()
  2025-09-29 19:07 [PATCH i-g-t 0/6] tools/intel_vbt_decode: Improve decoding to strings Ville Syrjala
@ 2025-09-29 19:07 ` Ville Syrjala
  2025-09-29 19:07 ` [PATCH i-g-t 2/6] tools/intel_vbt_decode: Use to_str() more Ville Syrjala
  2025-09-29 19:20 ` [PATCH i-g-t 0/6] tools/intel_vbt_decode: Improve decoding to strings Ville Syrjälä
  2 siblings, 0 replies; 7+ messages in thread
From: Ville Syrjala @ 2025-09-29 19:07 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Introduce a to_str() macro that gives us a standard way
to decode a value we got from the VBT into a string.

All the cases converted here were implemented as a custom
function to deal with out of bounds/sparse values. All of
that is now taken care of by to_str(), so the strings can
just be defined as an array.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tools/intel_vbt_decode.c | 137 +++++++++++++++++----------------------
 1 file changed, 60 insertions(+), 77 deletions(-)

diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index a4e76b7559d2..dbcba3b9cd3b 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -631,6 +631,17 @@ static bool panel_bool(unsigned int value, int panel_type)
 	return panel_bits(value, panel_type, 1);
 }
 
+static const char *_to_str(const char * const strings[],
+			   int num_strings, int value)
+{
+	if (value >= num_strings || strings[value] == NULL)
+		return "<unknown>";
+
+	return strings[value];
+}
+
+#define to_str(strings, value) _to_str((strings), ARRAY_SIZE(strings), (value))
+
 static int decode_ssc_freq(struct context *context, bool alternate)
 {
 	switch (intel_gen(context->devid)) {
@@ -705,26 +716,18 @@ static void dump_general_features(struct context *context,
 	printf("\tDP SSC dongle supported: %s\n", YESNO(features->dp_ssc_dongle_supported));
 }
 
-static const char *inverter_type(u8 type)
-{
-	switch (type) {
-	case 0: return "none/external";
-	case 1: return "I2C";
-	case 2: return "PWM";
-	default: return "<reserved>";
-	}
-}
+static const char * const inverter_type_str[] = {
+	[0] = "none/external",
+	[1] = "I2C",
+	[2] = "PWM",
+};
 
-static const char *i2c_speed(u8 i2c_speed)
-{
-	switch (i2c_speed) {
-	case 0: return "100 kHz";
-	case 1: return "50 kHz";
-	case 2: return "400 kHz";
-	case 3: return "1 MHz";
-	default: return "<unknown>";
-	}
-}
+static const char * const i2c_speed_str[] = {
+	[0] = "100 kHz",
+	[1] = "50 kHz",
+	[2] = "400 kHz",
+	[3] = "1 MHz",
+};
 
 static void dump_backlight_info(struct context *context,
 				const struct bdb_block *block)
@@ -751,7 +754,7 @@ static void dump_backlight_info(struct context *context,
 		blc = &backlight->data[i];
 
 		printf("\t\tInverter type: %s (%u)\n",
-		       inverter_type(blc->type), blc->type);
+		       to_str(inverter_type_str, blc->type), blc->type);
 		printf("\t\tActive low: %s\n", YESNO(blc->active_low_pwm));
 		printf("\t\tPWM freq: %u\n", blc->pwm_freq_hz);
 		printf("\t\tMinimum brightness: %u\n", blc->min_brightness);
@@ -759,7 +762,7 @@ static void dump_backlight_info(struct context *context,
 		if (blc->type == 1) {
 			printf("\t\tI2C pin: 0x%02x\n", blc->i2c_pin);
 			printf("\t\tI2C speed: %s (0x%02x)\n",
-			       i2c_speed(blc->i2c_speed), blc->i2c_speed);
+			       to_str(i2c_speed_str, blc->i2c_speed), blc->i2c_speed);
 			printf("\t\tI2C address: 0x%02x\n", blc->i2c_address);
 			printf("\t\tI2C command: 0x%02x\n", blc->i2c_command);
 		}
@@ -1008,19 +1011,11 @@ static const char *aux_ch(uint8_t aux_ch)
 		return "unknown";
 }
 
-static const char *mipi_bridge_type(uint8_t type)
-{
-	switch (type) {
-	case 1:
-		return "ASUS";
-	case 2:
-		return "Toshiba";
-	case 3:
-		return "Renesas";
-	default:
-		return "unknown";
-	}
-}
+static const char * const mipi_bridge_type_str[] = {
+	[1] = "ASUS",
+	[2] = "Toshiba",
+	[3] = "Renesas",
+};
 
 static void dump_hmdi_max_data_rate(uint8_t hdmi_max_data_rate)
 {
@@ -1090,40 +1085,28 @@ static void dump_dp_max_link_rate(uint16_t version, uint8_t dp_max_link_rate)
 		       link_rate / 100.0f, dp_max_link_rate);
 }
 
-static const char *dp_vswing(u8 vswing)
-{
-	switch (vswing) {
-	case 0: return "0.4V";
-	case 1: return "0.6V";
-	case 2: return "0.8V";
-	case 3: return "1.2V";
-	default: return "<unknown>";
-	}
-}
+static const char * const dp_vswing_str[] = {
+	[0] = "0.4V",
+	[1] = "0.6V",
+	[2] = "0.8V",
+	[3] = "1.2V",
+};
 
-static const char *dp_preemph(u8 preemph)
-{
-	switch (preemph) {
-	case 0: return "0dB";
-	case 1: return "3.5dB";
-	case 2: return "6dB";
-	case 3: return "9.5dB";
-	default: return "<unknown>";
-	}
-}
+static const char * const dp_preemph_str[] = {
+	[0] = "0dB",
+	[1] = "3.5dB",
+	[2] = "6dB",
+	[3] = "9.5dB",
+};
 
-static const char *hdmi_frl_rate(u8 frl_rate)
-{
-	switch (frl_rate) {
-	case 0: return "FRL not supported";
-	case 1: return "3 GT/s";
-	case 2: return "6 GT/s";
-	case 3: return "8 GT/s";
-	case 4: return "10 GT/s";
-	case 5: return "12 GT/s";
-	default: return "<unknown>";
-	}
-}
+static const char * const hdmi_frl_rate_str[] = {
+	[0] = "FRL not supported",
+	[1] = "3 GT/s",
+	[2] = "6 GT/s",
+	[3] = "8 GT/s",
+	[4] = "10 GT/s",
+	[5] = "12 GT/s",
+};
 
 static void dump_child_device(struct context *context,
 			      const struct child_device_config *child)
@@ -1142,27 +1125,27 @@ static void dump_child_device(struct context *context,
 		printf("\t\tSignature: %.*s\n", (int)sizeof(child->device_id), child->device_id);
 	} else {
 		printf("\t\tI2C speed: %s (0x%02x)\n",
-		       i2c_speed(child->i2c_speed), child->i2c_speed);
+		       to_str(i2c_speed_str, child->i2c_speed), child->i2c_speed);
 
 		if (context->bdb->version >= 158) {
 			printf("\t\tDP onboard redriver:\n");
 			printf("\t\t\tpresent: %s\n",
 			       YESNO((child->dp_onboard_redriver_present)));
 			printf("\t\t\tvswing: %s (0x%x)\n",
-			       dp_vswing(child->dp_onboard_redriver_vswing),
+			       to_str(dp_vswing_str, child->dp_onboard_redriver_vswing),
 			       child->dp_onboard_redriver_vswing);
 			printf("\t\t\tpre-emphasis: %s (0x%x)\n",
-			       dp_preemph(child->dp_onboard_redriver_preemph),
+			       to_str(dp_preemph_str, child->dp_onboard_redriver_preemph),
 			       child->dp_onboard_redriver_preemph);
 
 			printf("\t\tDP ondock redriver:\n");
 			printf("\t\t\tpresent: %s\n",
 			       YESNO((child->dp_ondock_redriver_present)));
 			printf("\t\t\tvswing: %s (0x%x)\n",
-			       dp_vswing(child->dp_ondock_redriver_vswing),
+			       to_str(dp_vswing_str, child->dp_ondock_redriver_vswing),
 			       child->dp_ondock_redriver_vswing);
 			printf("\t\t\tpre-emphasis: %s (0x%x)\n",
-			       dp_preemph(child->dp_ondock_redriver_preemph),
+			       to_str(dp_preemph_str, child->dp_ondock_redriver_preemph),
 			       child->dp_ondock_redriver_preemph);
 		}
 
@@ -1196,7 +1179,7 @@ static void dump_child_device(struct context *context,
 			printf("\t\tHDMI Max FRL rate valid: %s\n",
 			       YESNO(child->hdmi_max_frl_rate_valid));
 			printf("\t\tHDMI Max FRL rate: %s (0x%x)\n",
-			       hdmi_frl_rate(child->hdmi_max_frl_rate),
+			       to_str(hdmi_frl_rate_str, child->hdmi_max_frl_rate),
 			       child->hdmi_max_frl_rate);
 		}
 	}
@@ -1255,7 +1238,7 @@ static void dump_child_device(struct context *context,
 		printf("\t\tDVO2 wiring: 0x%02x\n", child->dvo2_wiring);
 	} else {
 		printf("\t\tMIPI bridge type: %02x (%s)\n", child->mipi_bridge_type,
-		       mipi_bridge_type(child->mipi_bridge_type));
+		       to_str(mipi_bridge_type_str, child->mipi_bridge_type));
 	}
 
 	printf("\t\tDevice class extension: 0x%02x\n", child->extended_type);
@@ -2425,10 +2408,10 @@ static void dump_edp(struct context *context,
 		printf("\t\t\tlanes: X%d\n",
 		       edp->fast_link_params[i].lanes + 1);
 		printf("\t\t\tpre-emphasis: %s (0x%x)\n",
-		       dp_preemph(edp->fast_link_params[i].preemphasis),
+		       to_str(dp_preemph_str, edp->fast_link_params[i].preemphasis),
 		       edp->fast_link_params[i].preemphasis);
 		printf("\t\t\tvswing: %s (0x%x)\n",
-		       dp_vswing(edp->fast_link_params[i].vswing),
+		       to_str(dp_vswing_str, edp->fast_link_params[i].vswing),
 		       edp->fast_link_params[i].vswing);
 
 		if (context->bdb->version >= 162)
@@ -2477,10 +2460,10 @@ static void dump_edp(struct context *context,
 
 			printf("\t\tFull link params:\n");
 			printf("\t\t\tpre-emphasis: %s (0x%x)\n",
-			       dp_preemph(edp->full_link_params[i].preemphasis),
+			       to_str(dp_preemph_str, edp->full_link_params[i].preemphasis),
 			       edp->full_link_params[i].preemphasis);
 			printf("\t\t\tvswing: %s (0x%x)\n",
-			       dp_vswing(edp->full_link_params[i].vswing),
+			       to_str(dp_vswing_str, edp->full_link_params[i].vswing),
 			       edp->full_link_params[i].vswing);
 		}
 
-- 
2.49.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH i-g-t 2/6] tools/intel_vbt_decode: Use to_str() more
  2025-09-29 19:07 [PATCH i-g-t 0/6] tools/intel_vbt_decode: Improve decoding to strings Ville Syrjala
  2025-09-29 19:07 ` [PATCH i-g-t 1/6] tools/intel_vbt_decode: Introduce to_str() Ville Syrjala
@ 2025-09-29 19:07 ` Ville Syrjala
  2025-09-29 19:20 ` [PATCH i-g-t 0/6] tools/intel_vbt_decode: Improve decoding to strings Ville Syrjälä
  2 siblings, 0 replies; 7+ messages in thread
From: Ville Syrjala @ 2025-09-29 19:07 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Convert all the naked string array dereferences to to_str()
instead. Not strictly necessary in these cases (since the
VBT bitfields doen't have unused values) but it seems better
to stick to the same formula for all decoding.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tools/intel_vbt_decode.c | 38 +++++++++++++++++++-------------------
 1 file changed, 19 insertions(+), 19 deletions(-)

diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index dbcba3b9cd3b..2f228fcd14b7 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -655,7 +655,7 @@ static int decode_ssc_freq(struct context *context, bool alternate)
 	}
 }
 
-static const char * const panel_fitting[] = {
+static const char * const panel_fitting_str[] = {
 	[0] = "disabled",
 	[1] = "text only",
 	[2] = "graphics only",
@@ -668,7 +668,7 @@ static void dump_general_features(struct context *context,
 	const struct bdb_general_features *features = block_data(block);
 
 	printf("\tPanel fitting: %s (0x%x)\n",
-	       panel_fitting[features->panel_fitting], features->panel_fitting);
+	       to_str(panel_fitting_str, features->panel_fitting), features->panel_fitting);
 	printf("\tFlexaim: %s\n", YESNO(features->flexaim));
 	printf("\tMessage: %s\n", YESNO(features->msg_enable));
 	printf("\tClear screen: %d\n", features->clear_screen);
@@ -1504,28 +1504,28 @@ static void dump_legacy_child_devices(struct context *context,
 			   child_dev_num, defs->child_dev_size);
 }
 
-static const char * const channel_type[] = {
+static const char * const channel_type_str[] = {
 	[0] = "automatic",
 	[1] = "single",
 	[2] = "dual",
 	[3] = "reserved",
 };
 
-static const char * const dps_type[] = {
+static const char * const dps_type_str[] = {
 	[0] = "static DRRS",
 	[1] = "D2PO",
 	[2] = "seamless DRRS",
 	[3] = "reserved",
 };
 
-static const char * const blt_type[] = {
+static const char * const blt_type_str[] = {
 	[0] = "default",
 	[1] = "CCFL",
 	[2] = "LED",
 	[3] = "reserved",
 };
 
-static const char * const pos_type[] = {
+static const char * const pos_type_str[] = {
 	[0] = "inside shell",
 	[1] = "outside shell",
 	[2] = "reserved",
@@ -1562,7 +1562,7 @@ static void dump_lfp_options(struct context *context,
 
 		val = panel_bits(options->lvds_panel_channel_bits, i, 2);
 		printf("\t\tChannel type: %s (0x%x)\n",
-		       channel_type[val], val);
+		       to_str(channel_type_str, val), val);
 
 		printf("\t\tSSC: %s\n",
 		       YESNO(panel_bool(options->ssc_bits, i)));
@@ -1586,11 +1586,11 @@ static void dump_lfp_options(struct context *context,
 
 		val = panel_bits(options->dps_panel_type_bits, i, 2);
 		printf("\t\tDPS type: %s (0x%x)\n",
-		       dps_type[val], val);
+		       to_str(dps_type_str, val), val);
 
 		val = panel_bits(options->blt_control_type_bits, i, 2);
 		printf("\t\tBacklight type: %s (0x%x)\n",
-		       blt_type[val], val);
+		       to_str(blt_type_str, val), val);
 
 		if (context->bdb->version < 200)
 			continue;
@@ -1610,7 +1610,7 @@ static void dump_lfp_options(struct context *context,
 
 		val = panel_bits((options->position), i, 2);
 		printf("\t\tPanel position: %s (0x%x)\n",
-		       pos_type[val], val);
+		       to_str(pos_type_str, val), val);
 	}
 }
 
@@ -1807,7 +1807,7 @@ static void dump_lfp_data(struct context *context,
 	free(ptrs_block);
 }
 
-static const char * const lvds_config[] = {
+static const char * const lvds_config_str[] = {
 	[BDB_DRIVER_FEATURE_NO_LVDS] = "No LVDS",
 	[BDB_DRIVER_FEATURE_INT_LVDS] = "Integrated LVDS",
 	[BDB_DRIVER_FEATURE_SDVO_LVDS] = "SDVO LVDS",
@@ -1869,7 +1869,7 @@ static void dump_driver_feature(struct context *context,
 	printf("\tCRT hotplug: %s\n", YESNO(feature->crt_hotplug));
 
 	printf("\tLVDS config: %s (0x%x)\n",
-	       lvds_config[feature->lvds_config], feature->lvds_config);
+	       to_str(lvds_config_str, feature->lvds_config), feature->lvds_config);
 	printf("\tTV hotplug: %s\n",
 	       YESNO(feature->tv_hotplug));
 
@@ -2325,11 +2325,11 @@ static void dump_efp_list(struct context *context,
 	}
 }
 
-static const char * const underscan_overscan[] = {
-	"Neither",
-	"Underscan/Overscan",
-	"Overscan only",
-	"Underscan only",
+static const char * const underscan_overscan_str[] = {
+	[0] = "Neither",
+	[1] = "Underscan/Overscan",
+	[2] = "Overscan only",
+	[3] = "Underscan only",
 };
 
 static void dump_tv_options(struct context *context,
@@ -2342,9 +2342,9 @@ static void dump_tv_options(struct context *context,
 	printf("\tAdd modes to avoid overscan issue: %s\n",
 	       YESNO(tv->add_modes_to_avoid_overscan_issue));
 	printf("\tUndescan/Overscan for HDTV via DVI: %s\n",
-	       underscan_overscan[tv->underscan_overscan_hdtv_dvi]);
+	       to_str(underscan_overscan_str, tv->underscan_overscan_hdtv_dvi));
 	printf("\tUndescan/Overscan for HDTV via component: %s\n",
-	       underscan_overscan[tv->underscan_overscan_hdtv_component]);
+	       to_str(underscan_overscan_str, tv->underscan_overscan_hdtv_component));
 }
 
 static void dump_edp(struct context *context,
-- 
2.49.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH i-g-t 0/6] tools/intel_vbt_decode: Improve decoding to strings
  2025-09-29 19:07 [PATCH i-g-t 0/6] tools/intel_vbt_decode: Improve decoding to strings Ville Syrjala
  2025-09-29 19:07 ` [PATCH i-g-t 1/6] tools/intel_vbt_decode: Introduce to_str() Ville Syrjala
  2025-09-29 19:07 ` [PATCH i-g-t 2/6] tools/intel_vbt_decode: Use to_str() more Ville Syrjala
@ 2025-09-29 19:20 ` Ville Syrjälä
  2 siblings, 0 replies; 7+ messages in thread
From: Ville Syrjälä @ 2025-09-29 19:20 UTC (permalink / raw)
  To: igt-dev

On Mon, Sep 29, 2025 at 10:07:15PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Make it easier/safer to decode VBT values into a string representation.
> 
> Also decode a couple of new (or rather old) things.

Please ignore. Incomplete series because gnome-keyring barfed yet again
in the middle of the series :/ I'll try to cook up some kind of a retry
kludge to make it more realiable...

> 
> Ville Syrjälä (6):
>   tools/intel_vbt_decode: Introduce to_str()
>   tools/intel_vbt_decode: Use to_str() more
>   tools/intel_vbt_decode: Convert eDP deocding to use to_str()
>   tools/intel_vbt_decode: Use panel_bits()
>   tools/intel_vbt_decode: Decode display refclk mode
>   tools/intel_vbt_decode: Decode the backlight control method type
> 
>  tools/intel_vbt_decode.c | 264 ++++++++++++++++++---------------------
>  1 file changed, 123 insertions(+), 141 deletions(-)
> 
> -- 
> 2.49.1

-- 
Ville Syrjälä
Intel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH i-g-t 0/6] tools/intel_vbt_decode: Improve decoding to strings
@ 2025-09-29 19:21 Ville Syrjala
  2025-09-30  8:27 ` Jani Nikula
  0 siblings, 1 reply; 7+ messages in thread
From: Ville Syrjala @ 2025-09-29 19:21 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Make it easier/safer to decode VBT values into a string representation.

Also decode a couple of new (or rather old) things.

Ville Syrjälä (6):
  tools/intel_vbt_decode: Introduce to_str()
  tools/intel_vbt_decode: Use to_str() more
  tools/intel_vbt_decode: Convert eDP deocding to use to_str()
  tools/intel_vbt_decode: Use panel_bits()
  tools/intel_vbt_decode: Decode display refclk mode
  tools/intel_vbt_decode: Decode the backlight control method type

 tools/intel_vbt_decode.c | 264 ++++++++++++++++++---------------------
 1 file changed, 123 insertions(+), 141 deletions(-)

-- 
2.49.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH i-g-t 0/6] tools/intel_vbt_decode: Improve decoding to strings
  2025-09-29 19:21 Ville Syrjala
@ 2025-09-30  8:27 ` Jani Nikula
  2025-10-02 17:36   ` Ville Syrjälä
  0 siblings, 1 reply; 7+ messages in thread
From: Jani Nikula @ 2025-09-30  8:27 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

On Mon, 29 Sep 2025, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Make it easier/safer to decode VBT values into a string representation.
>
> Also decode a couple of new (or rather old) things.

I left a couple of comments, but overall

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

>
> Ville Syrjälä (6):
>   tools/intel_vbt_decode: Introduce to_str()
>   tools/intel_vbt_decode: Use to_str() more
>   tools/intel_vbt_decode: Convert eDP deocding to use to_str()
>   tools/intel_vbt_decode: Use panel_bits()
>   tools/intel_vbt_decode: Decode display refclk mode
>   tools/intel_vbt_decode: Decode the backlight control method type
>
>  tools/intel_vbt_decode.c | 264 ++++++++++++++++++---------------------
>  1 file changed, 123 insertions(+), 141 deletions(-)

-- 
Jani Nikula, Intel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH i-g-t 0/6] tools/intel_vbt_decode: Improve decoding to strings
  2025-09-30  8:27 ` Jani Nikula
@ 2025-10-02 17:36   ` Ville Syrjälä
  0 siblings, 0 replies; 7+ messages in thread
From: Ville Syrjälä @ 2025-10-02 17:36 UTC (permalink / raw)
  To: Jani Nikula; +Cc: igt-dev

On Tue, Sep 30, 2025 at 11:27:37AM +0300, Jani Nikula wrote:
> On Mon, 29 Sep 2025, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >
> > Make it easier/safer to decode VBT values into a string representation.
> >
> > Also decode a couple of new (or rather old) things.
> 
> I left a couple of comments, but overall
> 
> Reviewed-by: Jani Nikula <jani.nikula@intel.com>

Thanks.

I dropepd the CABC nonsense, and added Kamil's value<0 check
while pushing.

> 
> >
> > Ville Syrjälä (6):
> >   tools/intel_vbt_decode: Introduce to_str()
> >   tools/intel_vbt_decode: Use to_str() more
> >   tools/intel_vbt_decode: Convert eDP deocding to use to_str()
> >   tools/intel_vbt_decode: Use panel_bits()
> >   tools/intel_vbt_decode: Decode display refclk mode
> >   tools/intel_vbt_decode: Decode the backlight control method type
> >
> >  tools/intel_vbt_decode.c | 264 ++++++++++++++++++---------------------
> >  1 file changed, 123 insertions(+), 141 deletions(-)
> 
> -- 
> Jani Nikula, Intel

-- 
Ville Syrjälä
Intel

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2025-10-02 17:36 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-29 19:07 [PATCH i-g-t 0/6] tools/intel_vbt_decode: Improve decoding to strings Ville Syrjala
2025-09-29 19:07 ` [PATCH i-g-t 1/6] tools/intel_vbt_decode: Introduce to_str() Ville Syrjala
2025-09-29 19:07 ` [PATCH i-g-t 2/6] tools/intel_vbt_decode: Use to_str() more Ville Syrjala
2025-09-29 19:20 ` [PATCH i-g-t 0/6] tools/intel_vbt_decode: Improve decoding to strings Ville Syrjälä
  -- strict thread matches above, loose matches on Subject: below --
2025-09-29 19:21 Ville Syrjala
2025-09-30  8:27 ` Jani Nikula
2025-10-02 17:36   ` Ville Syrjälä

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox