drm/i915/bios: add intel_bios_max_tmds_encoder()
authorJani Nikula <jani.nikula@intel.com>
Fri, 17 Jan 2020 14:29:21 +0000 (16:29 +0200)
committerJani Nikula <jani.nikula@intel.com>
Tue, 21 Jan 2020 08:51:03 +0000 (10:51 +0200)
Don't access i915->vbt.ddi_port_info[] directly.

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/c52c39df43374b51f56439daf8047079afae7749.1579270868.git.jani.nikula@intel.com
drivers/gpu/drm/i915/display/intel_bios.c
drivers/gpu/drm/i915/display/intel_bios.h
drivers/gpu/drm/i915/display/intel_hdmi.c

index 9a891ef72118f74c14b436a441c69d2c0cf05137..b231fafc03ca8f52ff8673fd6cd3875253a7aa76 100644 (file)
@@ -2562,3 +2562,10 @@ enum aux_ch intel_bios_port_aux_ch(struct drm_i915_private *dev_priv,
 
        return aux_ch;
 }
+
+int intel_bios_max_tmds_clock(struct intel_encoder *encoder)
+{
+       struct drm_i915_private *i915 = to_i915(encoder->base.dev);
+
+       return i915->vbt.ddi_port_info[encoder->port].max_tmds_clock;
+}
index d6a0c29d37ac217e6cedee674ca0cb8612e9464f..519e983ee9e740e44a5dd038e9d671ad461b9d99 100644 (file)
@@ -247,5 +247,6 @@ enum aux_ch intel_bios_port_aux_ch(struct drm_i915_private *dev_priv, enum port
 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);
 
 #endif /* _INTEL_BIOS_H_ */
index 90b4a0d9a4e98792fc39e1949018edbfbc6b001e..cb07e06b10dc22d7c5e2dd307888cc644881c953 100644 (file)
@@ -2090,9 +2090,7 @@ static void pch_post_disable_hdmi(struct intel_encoder *encoder,
 static int intel_hdmi_source_max_tmds_clock(struct intel_encoder *encoder)
 {
        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-       const struct ddi_vbt_port_info *info =
-               &dev_priv->vbt.ddi_port_info[encoder->port];
-       int max_tmds_clock;
+       int max_tmds_clock, vbt_max_tmds_clock;
 
        if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
                max_tmds_clock = 594000;
@@ -2103,8 +2101,9 @@ static int intel_hdmi_source_max_tmds_clock(struct intel_encoder *encoder)
        else
                max_tmds_clock = 165000;
 
-       if (info->max_tmds_clock)
-               max_tmds_clock = min(max_tmds_clock, info->max_tmds_clock);
+       vbt_max_tmds_clock = intel_bios_max_tmds_clock(encoder);
+       if (vbt_max_tmds_clock)
+               max_tmds_clock = min(max_tmds_clock, vbt_max_tmds_clock);
 
        return max_tmds_clock;
 }