drm/i915: base gmbus pin validity check on the gmbus pin map array
[deliverable/linux.git] / drivers / gpu / drm / i915 / intel_bios.c
index 3f178258d9f9ce679044d2775b66359297d68623..ad2f3b0d922f11e66918b4c54ca34eb4fc63e319 100644 (file)
@@ -438,7 +438,7 @@ parse_general_definitions(struct drm_i915_private *dev_priv,
                if (block_size >= sizeof(*general)) {
                        int bus_pin = general->crt_ddc_gmbus_pin;
                        DRM_DEBUG_KMS("crt_ddc_bus_pin: %d\n", bus_pin);
-                       if (intel_gmbus_is_port_valid(bus_pin))
+                       if (intel_gmbus_is_valid_pin(dev_priv, bus_pin))
                                dev_priv->vbt.crt_ddc_pin = bus_pin;
                } else {
                        DRM_DEBUG_KMS("BDB_GD too small (%d). Invalid.\n",
@@ -662,6 +662,13 @@ parse_edp(struct drm_i915_private *dev_priv, struct bdb_header *bdb)
                              edp_link_params->vswing);
                break;
        }
+
+       if (bdb->version >= 173) {
+               uint8_t vswing;
+
+               vswing = (edp->edp_vswing_preemph >> (panel_type * 4)) & 0xF;
+               dev_priv->vbt.edp_low_vswing = vswing == 0;
+       }
 }
 
 static void
@@ -1126,7 +1133,7 @@ init_vbt_defaults(struct drm_i915_private *dev_priv)
        struct drm_device *dev = dev_priv->dev;
        enum port port;
 
-       dev_priv->vbt.crt_ddc_pin = GMBUS_PORT_VGADDC;
+       dev_priv->vbt.crt_ddc_pin = GMBUS_PIN_VGADDC;
 
        /* Default to having backlight */
        dev_priv->vbt.backlight.present = true;
This page took 0.02615 seconds and 5 git commands to generate.