Try to validate the panel's connection by writing to address 0xA0.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=18072
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
return false;
}
+static bool intel_lvds_ddc_probe(struct drm_device *dev)
+{
+ struct drm_i915_private *dev_priv = dev->dev_private;
+ u8 buf = 0;
+ struct i2c_msg msgs[] = {
+ {
+ .addr = 0xA0,
+ .flags = 0,
+ .len = 1,
+ .buf = &buf,
+ },
+ };
+ struct i2c_adapter *i2c = &dev_priv->gmbus[GMBUS_PORT_PANEL].adapter;
+ return i2c_transfer(i2c, msgs, 1) == 1;
+}
+
/**
* intel_lvds_init - setup LVDS connectors on this device
* @dev: drm device
gpio = PCH_GPIOC;
}
+ if (!intel_lvds_ddc_probe(dev)) {
+ DRM_DEBUG_KMS("LVDS did not respond to DDC probe\n");
+ return;
+ }
+
intel_lvds = kzalloc(sizeof(struct intel_lvds), GFP_KERNEL);
if (!intel_lvds) {
return;