All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@intel.com>
To: intel-gfx@lists.freedesktop.org
Cc: jani.nikula@intel.com, lucas.demarchi@intel.com
Subject: [Intel-gfx] [PATCH v2 02/14] drm/i915/bios: store bdb version in i915
Date: Wed, 17 Mar 2021 18:36:41 +0200	[thread overview]
Message-ID: <c2a4189241bf0946d27e12804b1ba7d098c7d483.1615998927.git.jani.nikula@intel.com> (raw)
In-Reply-To: <cover.1615998927.git.jani.nikula@intel.com>

We'll be needing the version in more places in the future, so avoid the
need to pass it around. No functional changes.

v2: Rebased

Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> # v1
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/display/intel_bios.c | 30 +++++++++++------------
 drivers/gpu/drm/i915/i915_drv.h           |  3 +++
 2 files changed, 18 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c
index 6e4650a7c604..824148063451 100644
--- a/drivers/gpu/drm/i915/display/intel_bios.c
+++ b/drivers/gpu/drm/i915/display/intel_bios.c
@@ -597,7 +597,7 @@ child_device_ptr(const struct bdb_general_definitions *defs, int i)
 }
 
 static void
-parse_sdvo_device_mapping(struct drm_i915_private *i915, u8 bdb_version)
+parse_sdvo_device_mapping(struct drm_i915_private *i915)
 {
 	struct sdvo_device_mapping *mapping;
 	const struct display_device_data *devdata;
@@ -1798,8 +1798,7 @@ static int parse_bdb_216_dp_max_link_rate(const int vbt_max_link_rate)
 }
 
 static void parse_ddi_port(struct drm_i915_private *i915,
-			   struct display_device_data *devdata,
-			   u8 bdb_version)
+			   struct display_device_data *devdata)
 {
 	const struct child_device_config *child = &devdata->child;
 	struct ddi_vbt_port_info *info;
@@ -1838,10 +1837,10 @@ static void parse_ddi_port(struct drm_i915_private *i915,
 	info->supports_dp = is_dp;
 	info->supports_edp = is_edp;
 
-	if (bdb_version >= 195)
+	if (i915->vbt.version >= 195)
 		info->supports_typec_usb = child->dp_usb_type_c;
 
-	if (bdb_version >= 209)
+	if (i915->vbt.version >= 209)
 		info->supports_tbt = child->tbt;
 
 	drm_dbg_kms(&i915->drm,
@@ -1872,7 +1871,7 @@ static void parse_ddi_port(struct drm_i915_private *i915,
 		sanitize_aux_ch(i915, port);
 	}
 
-	if (bdb_version >= 158) {
+	if (i915->vbt.version >= 158) {
 		/* The VBT HDMI level shift values match the table we have. */
 		u8 hdmi_level_shift = child->hdmi_level_shifter_value;
 		drm_dbg_kms(&i915->drm,
@@ -1883,7 +1882,7 @@ static void parse_ddi_port(struct drm_i915_private *i915,
 		info->hdmi_level_shift_set = true;
 	}
 
-	if (bdb_version >= 204) {
+	if (i915->vbt.version >= 204) {
 		int max_tmds_clock;
 
 		switch (child->hdmi_max_data_rate) {
@@ -1909,7 +1908,7 @@ static void parse_ddi_port(struct drm_i915_private *i915,
 	}
 
 	/* Parse the I_boost config for SKL and above */
-	if (bdb_version >= 196 && child->iboost) {
+	if (i915->vbt.version >= 196 && child->iboost) {
 		info->dp_boost_level = translate_iboost(child->dp_iboost_level);
 		drm_dbg_kms(&i915->drm,
 			    "Port %c VBT (e)DP boost level: %d\n",
@@ -1921,8 +1920,8 @@ static void parse_ddi_port(struct drm_i915_private *i915,
 	}
 
 	/* DP max link rate for CNL+ */
-	if (bdb_version >= 216) {
-		if (bdb_version >= 230)
+	if (i915->vbt.version >= 216) {
+		if (i915->vbt.version >= 230)
 			info->dp_max_link_rate = parse_bdb_230_dp_max_link_rate(child->dp_max_link_rate);
 		else
 			info->dp_max_link_rate = parse_bdb_216_dp_max_link_rate(child->dp_max_link_rate);
@@ -1935,18 +1934,18 @@ static void parse_ddi_port(struct drm_i915_private *i915,
 	info->child = child;
 }
 
-static void parse_ddi_ports(struct drm_i915_private *i915, u8 bdb_version)
+static void parse_ddi_ports(struct drm_i915_private *i915)
 {
 	struct display_device_data *devdata;
 
 	if (!HAS_DDI(i915) && !IS_CHERRYVIEW(i915))
 		return;
 
-	if (bdb_version < 155)
+	if (i915->vbt.version < 155)
 		return;
 
 	list_for_each_entry(devdata, &i915->vbt.display_devices, node)
-		parse_ddi_port(i915, devdata, bdb_version);
+		parse_ddi_port(i915, devdata);
 }
 
 static void
@@ -2257,6 +2256,7 @@ void intel_bios_init(struct drm_i915_private *i915)
 	}
 
 	bdb = get_bdb_header(vbt);
+	i915->vbt.version = bdb->version;
 
 	drm_dbg_kms(&i915->drm,
 		    "VBT signature \"%.*s\", BDB version %d\n",
@@ -2280,8 +2280,8 @@ void intel_bios_init(struct drm_i915_private *i915)
 	parse_compression_parameters(i915, bdb);
 
 	/* Further processing on pre-parsed data */
-	parse_sdvo_device_mapping(i915, bdb->version);
-	parse_ddi_ports(i915, bdb->version);
+	parse_sdvo_device_mapping(i915);
+	parse_ddi_ports(i915);
 
 out:
 	if (!vbt) {
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 1d45d7492d10..26f7dc71abfd 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -615,6 +615,9 @@ enum psr_lines_to_wait {
 };
 
 struct intel_vbt_data {
+	/* bdb version */
+	u16 version;
+
 	struct drm_display_mode *lfp_lvds_vbt_mode; /* if any */
 	struct drm_display_mode *sdvo_lvds_vbt_mode; /* if any */
 
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  parent reply	other threads:[~2021-03-17 16:37 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-17 16:36 [Intel-gfx] [PATCH v2 00/14] drm/i915/bios: vbt child device rework Jani Nikula
2021-03-17 16:36 ` [Intel-gfx] [PATCH v2 01/14] drm/i915/bios: mass convert dev_priv to i915 Jani Nikula
2021-03-17 16:36 ` Jani Nikula [this message]
2021-03-17 16:36 ` [Intel-gfx] [PATCH v2 03/14] drm/i915/bios: reduce indent in sanitize_ddc_pin and sanitize_aux_ch Jani Nikula
2021-03-17 19:18   ` Lucas De Marchi
2021-03-17 19:23   ` Lucas De Marchi
2021-03-18 12:47     ` Jani Nikula
2021-03-17 16:36 ` [Intel-gfx] [PATCH v2 04/14] drm/i915/bios: move aux ch and ddc checks at a lower level Jani Nikula
2021-03-17 19:23   ` Lucas De Marchi
2021-03-17 16:36 ` [Intel-gfx] [PATCH v2 05/14] drm/i915/bios: limit default outputs by platform on missing VBT Jani Nikula
2021-03-17 16:36 ` [Intel-gfx] [PATCH v2 06/14] drm/i915/bios: limit default outputs to ports A through F Jani Nikula
2021-03-17 16:36 ` [Intel-gfx] [PATCH v2 07/14] drm/i915/bios: create fake child devices on missing VBT Jani Nikula
2021-03-17 16:36 ` [Intel-gfx] [PATCH v2 08/14] drm/i915/bios: rename display_device_data to intel_bios_encoder_data Jani Nikula
2021-03-17 16:36 ` [Intel-gfx] [PATCH v2 09/14] drm/i915/bios: add i915 backpointer " Jani Nikula
2021-03-17 19:32   ` Lucas De Marchi
2021-03-17 16:36 ` [Intel-gfx] [PATCH v2 10/14] drm/i915/bios: add helper functions to check output support Jani Nikula
2021-03-17 19:42   ` Lucas De Marchi
2021-03-18 12:48     ` Jani Nikula
2021-03-17 16:36 ` [Intel-gfx] [PATCH v2 11/14] drm/i915/bios: save a higher level pointer in ddi_vbt_port_info[] Jani Nikula
2021-03-17 16:36 ` [Intel-gfx] [PATCH v2 12/14] drm/i915/bios: start using the intel_bios_encoder_data directly Jani Nikula
2021-03-17 16:36 ` [Intel-gfx] [PATCH v2 13/14] drm/i915/bios: start using intel_bios_encoder_data for Type-C USB and TBT Jani Nikula
2021-03-17 16:36 ` [Intel-gfx] [PATCH v2 14/14] drm/i915/bios: add intel_bios_encoder_data to encoder, use for iboost Jani Nikula
2021-03-17 19:25 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/bios: vbt child device rework (rev2) Patchwork
2021-03-17 19:54 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2021-03-17 21:44 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c2a4189241bf0946d27e12804b1ba7d098c7d483.1615998927.git.jani.nikula@intel.com \
    --to=jani.nikula@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=lucas.demarchi@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.