static u8 map_ddc_pin(struct drm_i915_private *dev_priv, u8 vbt_pin)
 {
-       if (HAS_PCH_CNP(dev_priv) &&
-           vbt_pin > 0 && vbt_pin < ARRAY_SIZE(cnp_ddc_pin_map))
-               return cnp_ddc_pin_map[vbt_pin];
+       if (HAS_PCH_CNP(dev_priv)) {
+               if (vbt_pin > 0 && vbt_pin < ARRAY_SIZE(cnp_ddc_pin_map))
+                       return cnp_ddc_pin_map[vbt_pin];
+               if (vbt_pin > GMBUS_PIN_4_CNP) {
+                       DRM_DEBUG_KMS("Ignoring alternate pin: VBT claims DDC pin %d, which is not valid for this platform\n", vbt_pin);
+                       return 0;
+               }
+       }
 
        return vbt_pin;
 }