[7/9] drm/i915/bios: add intel_bios_port_supports_*()
diff mbox series

Message ID 21549ff74e8e5746917b0e2be4afbfb141e26657.1579270868.git.jani.nikula@intel.com
State New
Headers show
Series
  • drm/i915/bios: stop using vbt.ddi_port_info directly
Related show

Commit Message

Jani Nikula Jan. 17, 2020, 2:29 p.m. UTC
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 | 26 +++++++++++++++++++++++
 drivers/gpu/drm/i915/display/intel_bios.h |  5 +++++
 drivers/gpu/drm/i915/display/intel_ddi.c  | 12 +++++------
 3 files changed, 37 insertions(+), 6 deletions(-)

Comments

Ville Syrjälä Jan. 17, 2020, 3:10 p.m. UTC | #1
On Fri, Jan 17, 2020 at 04:29:27PM +0200, Jani Nikula wrote:
> Don't access i915->vbt.ddi_port_info[] directly.

3-7
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_bios.c | 26 +++++++++++++++++++++++
>  drivers/gpu/drm/i915/display/intel_bios.h |  5 +++++
>  drivers/gpu/drm/i915/display/intel_ddi.c  | 12 +++++------
>  3 files changed, 37 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c
> index 23cbbe32e22f..4c69253739ec 100644
> --- a/drivers/gpu/drm/i915/display/intel_bios.c
> +++ b/drivers/gpu/drm/i915/display/intel_bios.c
> @@ -2606,3 +2606,29 @@ int intel_bios_alternate_ddc_pin(struct intel_encoder *encoder)
>  
>  	return i915->vbt.ddi_port_info[encoder->port].alternate_ddc_pin;
>  }
> +
> +bool intel_bios_port_supports_dvi(struct drm_i915_private *i915, enum port port)
> +{
> +	return i915->vbt.ddi_port_info[port].supports_dvi;
> +}
> +
> +bool intel_bios_port_supports_hdmi(struct drm_i915_private *i915, enum port port)
> +{
> +	return i915->vbt.ddi_port_info[port].supports_hdmi;
> +}
> +
> +bool intel_bios_port_supports_dp(struct drm_i915_private *i915, enum port port)
> +{
> +	return i915->vbt.ddi_port_info[port].supports_dp;
> +}
> +
> +bool intel_bios_port_supports_typec_usb(struct drm_i915_private *i915,
> +					enum port port)
> +{
> +	return i915->vbt.ddi_port_info[port].supports_typec_usb;
> +}
> +
> +bool intel_bios_port_supports_tbt(struct drm_i915_private *i915, enum port port)
> +{
> +	return i915->vbt.ddi_port_info[port].supports_tbt;
> +}
> diff --git a/drivers/gpu/drm/i915/display/intel_bios.h b/drivers/gpu/drm/i915/display/intel_bios.h
> index 077828d77642..c17199caeff8 100644
> --- a/drivers/gpu/drm/i915/display/intel_bios.h
> +++ b/drivers/gpu/drm/i915/display/intel_bios.h
> @@ -253,5 +253,10 @@ int intel_bios_dp_boost_level(struct intel_encoder *encoder);
>  int intel_bios_hdmi_boost_level(struct intel_encoder *encoder);
>  int intel_bios_dp_max_link_rate(struct intel_encoder *encoder);
>  int intel_bios_alternate_ddc_pin(struct intel_encoder *encoder);
> +bool intel_bios_port_supports_dvi(struct drm_i915_private *i915, enum port port);
> +bool intel_bios_port_supports_hdmi(struct drm_i915_private *i915, enum port port);
> +bool intel_bios_port_supports_dp(struct drm_i915_private *i915, enum port port);
> +bool intel_bios_port_supports_typec_usb(struct drm_i915_private *i915, enum port port);
> +bool intel_bios_port_supports_tbt(struct drm_i915_private *i915, enum port port);
>  
>  #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 3697fa047362..18a8186699f9 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> @@ -4780,15 +4780,14 @@ intel_ddi_max_lanes(struct intel_digital_port *intel_dport)
>  
>  void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port)
>  {
> -	struct ddi_vbt_port_info *port_info =
> -		&dev_priv->vbt.ddi_port_info[port];
>  	struct intel_digital_port *intel_dig_port;
>  	struct intel_encoder *encoder;
>  	bool init_hdmi, init_dp, init_lspcon = false;
>  	enum phy phy = intel_port_to_phy(dev_priv, port);
>  
> -	init_hdmi = port_info->supports_dvi || port_info->supports_hdmi;
> -	init_dp = port_info->supports_dp;
> +	init_hdmi = intel_bios_port_supports_dvi(dev_priv, port) ||
> +		intel_bios_port_supports_hdmi(dev_priv, port);
> +	init_dp = intel_bios_port_supports_dp(dev_priv, port);
>  
>  	if (intel_bios_is_lspcon_present(dev_priv, port)) {
>  		/*
> @@ -4849,8 +4848,9 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port)
>  	intel_dig_port->aux_ch = intel_bios_port_aux_ch(dev_priv, port);
>  
>  	if (intel_phy_is_tc(dev_priv, phy)) {
> -		bool is_legacy = !port_info->supports_typec_usb &&
> -				 !port_info->supports_tbt;
> +		bool is_legacy =
> +			!intel_bios_port_supports_typec_usb(dev_priv, port) &&
> +			!intel_bios_port_supports_tbt(dev_priv, port);
>  
>  		intel_tc_port_init(intel_dig_port, is_legacy);
>  
> -- 
> 2.20.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Patch
diff mbox series

diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c
index 23cbbe32e22f..4c69253739ec 100644
--- a/drivers/gpu/drm/i915/display/intel_bios.c
+++ b/drivers/gpu/drm/i915/display/intel_bios.c
@@ -2606,3 +2606,29 @@  int intel_bios_alternate_ddc_pin(struct intel_encoder *encoder)
 
 	return i915->vbt.ddi_port_info[encoder->port].alternate_ddc_pin;
 }
+
+bool intel_bios_port_supports_dvi(struct drm_i915_private *i915, enum port port)
+{
+	return i915->vbt.ddi_port_info[port].supports_dvi;
+}
+
+bool intel_bios_port_supports_hdmi(struct drm_i915_private *i915, enum port port)
+{
+	return i915->vbt.ddi_port_info[port].supports_hdmi;
+}
+
+bool intel_bios_port_supports_dp(struct drm_i915_private *i915, enum port port)
+{
+	return i915->vbt.ddi_port_info[port].supports_dp;
+}
+
+bool intel_bios_port_supports_typec_usb(struct drm_i915_private *i915,
+					enum port port)
+{
+	return i915->vbt.ddi_port_info[port].supports_typec_usb;
+}
+
+bool intel_bios_port_supports_tbt(struct drm_i915_private *i915, enum port port)
+{
+	return i915->vbt.ddi_port_info[port].supports_tbt;
+}
diff --git a/drivers/gpu/drm/i915/display/intel_bios.h b/drivers/gpu/drm/i915/display/intel_bios.h
index 077828d77642..c17199caeff8 100644
--- a/drivers/gpu/drm/i915/display/intel_bios.h
+++ b/drivers/gpu/drm/i915/display/intel_bios.h
@@ -253,5 +253,10 @@  int intel_bios_dp_boost_level(struct intel_encoder *encoder);
 int intel_bios_hdmi_boost_level(struct intel_encoder *encoder);
 int intel_bios_dp_max_link_rate(struct intel_encoder *encoder);
 int intel_bios_alternate_ddc_pin(struct intel_encoder *encoder);
+bool intel_bios_port_supports_dvi(struct drm_i915_private *i915, enum port port);
+bool intel_bios_port_supports_hdmi(struct drm_i915_private *i915, enum port port);
+bool intel_bios_port_supports_dp(struct drm_i915_private *i915, enum port port);
+bool intel_bios_port_supports_typec_usb(struct drm_i915_private *i915, enum port port);
+bool intel_bios_port_supports_tbt(struct drm_i915_private *i915, enum port port);
 
 #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 3697fa047362..18a8186699f9 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -4780,15 +4780,14 @@  intel_ddi_max_lanes(struct intel_digital_port *intel_dport)
 
 void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port)
 {
-	struct ddi_vbt_port_info *port_info =
-		&dev_priv->vbt.ddi_port_info[port];
 	struct intel_digital_port *intel_dig_port;
 	struct intel_encoder *encoder;
 	bool init_hdmi, init_dp, init_lspcon = false;
 	enum phy phy = intel_port_to_phy(dev_priv, port);
 
-	init_hdmi = port_info->supports_dvi || port_info->supports_hdmi;
-	init_dp = port_info->supports_dp;
+	init_hdmi = intel_bios_port_supports_dvi(dev_priv, port) ||
+		intel_bios_port_supports_hdmi(dev_priv, port);
+	init_dp = intel_bios_port_supports_dp(dev_priv, port);
 
 	if (intel_bios_is_lspcon_present(dev_priv, port)) {
 		/*
@@ -4849,8 +4848,9 @@  void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port)
 	intel_dig_port->aux_ch = intel_bios_port_aux_ch(dev_priv, port);
 
 	if (intel_phy_is_tc(dev_priv, phy)) {
-		bool is_legacy = !port_info->supports_typec_usb &&
-				 !port_info->supports_tbt;
+		bool is_legacy =
+			!intel_bios_port_supports_typec_usb(dev_priv, port) &&
+			!intel_bios_port_supports_tbt(dev_priv, port);
 
 		intel_tc_port_init(intel_dig_port, is_legacy);