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
Subject: [Intel-gfx] [PATCH 2/9] drm/i915/bios: add intel_bios_hdmi_level_shift()
Date: Fri, 17 Jan 2020 16:29:22 +0200	[thread overview]
Message-ID: <da8ca144020fe165af33992661568d0586a2fdeb.1579270868.git.jani.nikula@intel.com> (raw)
In-Reply-To: <cover.1579270868.git.jani.nikula@intel.com>

Don't access i915->vbt.ddi_port_info[] directly.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/display/intel_bios.c |  9 +++++++++
 drivers/gpu/drm/i915/display/intel_bios.h |  1 +
 drivers/gpu/drm/i915/display/intel_ddi.c  | 14 ++++++--------
 3 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c
index b231fafc03ca..50bff4e7d5c2 100644
--- a/drivers/gpu/drm/i915/display/intel_bios.c
+++ b/drivers/gpu/drm/i915/display/intel_bios.c
@@ -2569,3 +2569,12 @@ int intel_bios_max_tmds_clock(struct intel_encoder *encoder)
 
 	return i915->vbt.ddi_port_info[encoder->port].max_tmds_clock;
 }
+
+int intel_bios_hdmi_level_shift(struct intel_encoder *encoder)
+{
+	struct drm_i915_private *i915 = to_i915(encoder->base.dev);
+	const struct ddi_vbt_port_info *info =
+		&i915->vbt.ddi_port_info[encoder->port];
+
+	return info->hdmi_level_shift_set ? info->hdmi_level_shift : -1;
+}
diff --git a/drivers/gpu/drm/i915/display/intel_bios.h b/drivers/gpu/drm/i915/display/intel_bios.h
index 519e983ee9e7..c6cc413bf8ec 100644
--- a/drivers/gpu/drm/i915/display/intel_bios.h
+++ b/drivers/gpu/drm/i915/display/intel_bios.h
@@ -248,5 +248,6 @@ bool intel_bios_get_dsc_params(struct intel_encoder *encoder,
 			       struct intel_crtc_state *crtc_state,
 			       int dsc_max_bpc);
 int intel_bios_max_tmds_clock(struct intel_encoder *encoder);
+int intel_bios_hdmi_level_shift(struct intel_encoder *encoder);
 
 #endif /* _INTEL_BIOS_H_ */
diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
index 32ea3c7e8b62..cfaa64df9892 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -944,11 +944,11 @@ tgl_get_combo_buf_trans(struct drm_i915_private *dev_priv, int type, int rate,
 	return tgl_combo_phy_ddi_translations_dp_hbr;
 }
 
-static int intel_ddi_hdmi_level(struct drm_i915_private *dev_priv, enum port port)
+static int intel_ddi_hdmi_level(struct intel_encoder *encoder)
 {
-	struct ddi_vbt_port_info *port_info = &dev_priv->vbt.ddi_port_info[port];
+	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 	int n_entries, level, default_entry;
-	enum phy phy = intel_port_to_phy(dev_priv, port);
+	enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
 
 	if (INTEL_GEN(dev_priv) >= 12) {
 		if (intel_phy_is_combo(dev_priv, phy))
@@ -987,9 +987,8 @@ static int intel_ddi_hdmi_level(struct drm_i915_private *dev_priv, enum port por
 	if (WARN_ON_ONCE(n_entries == 0))
 		return 0;
 
-	if (port_info->hdmi_level_shift_set)
-		level = port_info->hdmi_level_shift;
-	else
+	level = intel_bios_hdmi_level_shift(encoder);
+	if (level < 0)
 		level = default_entry;
 
 	if (WARN_ON_ONCE(level >= n_entries))
@@ -3665,8 +3664,7 @@ static void intel_ddi_pre_enable_hdmi(struct intel_encoder *encoder,
 	struct intel_digital_port *intel_dig_port = enc_to_dig_port(encoder);
 	struct intel_hdmi *intel_hdmi = &intel_dig_port->hdmi;
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	enum port port = encoder->port;
-	int level = intel_ddi_hdmi_level(dev_priv, port);
+	int level = intel_ddi_hdmi_level(encoder);
 	struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
 
 	intel_dp_dual_mode_set_tmds_output(intel_hdmi, true);
-- 
2.20.1

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

  parent reply	other threads:[~2020-01-17 14:29 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-17 14:29 [Intel-gfx] [PATCH 0/9] drm/i915/bios: stop using vbt.ddi_port_info directly Jani Nikula
2020-01-17 14:29 ` [Intel-gfx] [PATCH 1/9] drm/i915/bios: add intel_bios_max_tmds_encoder() Jani Nikula
2020-01-17 14:43   ` Ville Syrjälä
2020-01-17 14:29 ` Jani Nikula [this message]
2020-01-17 14:45   ` [Intel-gfx] [PATCH 2/9] drm/i915/bios: add intel_bios_hdmi_level_shift() Ville Syrjälä
2020-01-17 14:29 ` [Intel-gfx] [PATCH 3/9] drm/i915/bios: intel_bios_dp_boost_level() Jani Nikula
2020-01-17 14:29 ` [Intel-gfx] [PATCH 4/9] drm/i915/bios: intel_bios_hdmi_boost_level() Jani Nikula
2020-01-17 14:29 ` [Intel-gfx] [PATCH 5/9] drm/i915/bios: add intel_bios_dp_max_link_rate() Jani Nikula
2020-01-17 14:29 ` [Intel-gfx] [PATCH 6/9] drm/i915/bios: add intel_bios_alternate_ddc_pin() Jani Nikula
2020-01-17 14:29 ` [Intel-gfx] [PATCH 7/9] drm/i915/bios: add intel_bios_port_supports_*() Jani Nikula
2020-01-17 15:10   ` Ville Syrjälä
2020-01-17 14:29 ` [Intel-gfx] [PATCH 8/9] drm/i915/bios: check port presence based on child device Jani Nikula
2020-01-17 15:12   ` Ville Syrjälä
2020-01-17 15:13     ` Ville Syrjälä
2020-01-17 15:23       ` Ville Syrjälä
2020-01-17 15:28       ` Jani Nikula
2020-01-17 15:37         ` Ville Syrjälä
2020-01-21  9:44           ` Jani Nikula
2020-01-17 14:29 ` [Intel-gfx] [PATCH 9/9] drm/i915: use intel_bios_is_port_present() Jani Nikula
2020-01-17 15:14   ` Ville Syrjälä
2020-01-17 23:44 ` [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/bios: stop using vbt.ddi_port_info directly Patchwork
2020-01-17 23:44 ` [Intel-gfx] ✗ Fi.CI.BUILD: warning " Patchwork
2020-01-20 18:33 ` [Intel-gfx] ✓ Fi.CI.IGT: success " 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=da8ca144020fe165af33992661568d0586a2fdeb.1579270868.git.jani.nikula@intel.com \
    --to=jani.nikula@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    /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.