diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
index 1317731..95e035a 100644
--- a/drivers/gpu/drm/i915/intel_lvds.c
+++ b/drivers/gpu/drm/i915/intel_lvds.c
@@ -771,7 +771,8 @@
  * If it is not present, return false.
  * If no child dev is parsed from VBT, it assumes that the LVDS is present.
  */
-static bool lvds_is_present_in_vbt(struct drm_device *dev)
+static bool lvds_is_present_in_vbt(struct drm_device *dev,
+				   u8 *i2c_pin)
 {
 	struct drm_i915_private *dev_priv = dev->dev_private;
 	int i;
@@ -790,6 +791,9 @@
 		    child->device_type != DEVICE_TYPE_LFP)
 			continue;
 
+		if (child->i2c_pin)
+		    *i2c_pin = child->i2c_pin;
+
 		/* However, we cannot trust the BIOS writers to populate
 		 * the VBT correctly.  Since LVDS requires additional
 		 * information from AIM blocks, a non-zero addin offset is
@@ -810,7 +814,7 @@
 	return false;
 }
 
-static bool intel_lvds_ddc_probe(struct drm_device *dev)
+static bool intel_lvds_ddc_probe(struct drm_device *dev, u8 pin)
 {
 	struct drm_i915_private *dev_priv = dev->dev_private;
 	u8 buf = 0;
@@ -822,7 +826,7 @@
 			.buf = &buf,
 		},
 	};
-	struct i2c_adapter *i2c = &dev_priv->gmbus[GMBUS_PORT_PANEL].adapter;
+	struct i2c_adapter *i2c = &dev_priv->gmbus[pin].adapter;
 	return i2c_transfer(i2c, msgs, 1) == 1;
 }
 
@@ -844,13 +848,15 @@
 	struct drm_display_mode *scan; /* *modes, *bios_mode; */
 	struct drm_crtc *crtc;
 	u32 lvds;
-	int pipe, gpio = GPIOC;
+	int pipe;
+	u8 pin;
 
 	/* Skip init on machines we know falsely report LVDS */
 	if (dmi_check_system(intel_no_lvds))
 		return;
 
-	if (!lvds_is_present_in_vbt(dev)) {
+	pin = GMBUS_PORT_PANEL;
+	if (!lvds_is_present_in_vbt(dev, &pin)) {
 		DRM_DEBUG_KMS("LVDS is not present in VBT\n");
 		return;
 	}
@@ -862,10 +868,9 @@
 			DRM_DEBUG_KMS("disable LVDS for eDP support\n");
 			return;
 		}
-		gpio = PCH_GPIOC;
 	}
 
-	if (!intel_lvds_ddc_probe(dev)) {
+	if (!intel_lvds_ddc_probe(dev, pin)) {
 		DRM_DEBUG_KMS("LVDS did not respond to DDC probe\n");
 		return;
 	}
@@ -930,7 +935,7 @@
 	 * preferred mode is the right one.
 	 */
 	intel_lvds->edid = drm_get_edid(connector,
-					&dev_priv->gmbus[GMBUS_PORT_PANEL].adapter);
+					&dev_priv->gmbus[pin].adapter);
 
 	if (!intel_lvds->edid) {
 		/* Didn't get an EDID, so
