aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2011-04-05 11:04:40 -0400
committerKeith Packard <keithp@keithp.com>2011-04-05 12:05:56 -0400
commita6737ad15b4acf88bbf7753e929faf215adeaa3a (patch)
tree3433015f4fabcd34ca92ac81732ad26658e14a1b /drivers
parent0de009c900e7ebd21097797f723a40813e953879 (diff)
drm/i915/lvds: Remove 0xa0 DDC probe for LVDS
This is a revert of 428d2e828c0a68206e5158a42451487601dc9194. This is broken in the same manner as for VGA: trying to write to an invalid address on the (currently 7-bit) i2c bus. One notable failure appears to be for MacBooks. The scary part was that it gave the appearance of working (i.e. reporting the absence of the panel) on various all-in-one machines with ghost LVDS panels and not failing for laptops. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Dave Airlie <airlied@linux.ie> Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/i915/intel_lvds.c24
1 files changed, 0 insertions, 24 deletions
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
index 86cd30bcb619..a562bd2648c7 100644
--- a/drivers/gpu/drm/i915/intel_lvds.c
+++ b/drivers/gpu/drm/i915/intel_lvds.c
@@ -829,25 +829,6 @@ static bool lvds_is_present_in_vbt(struct drm_device *dev,
829 return false; 829 return false;
830} 830}
831 831
832static bool intel_lvds_ddc_probe(struct drm_device *dev, u8 pin)
833{
834 struct drm_i915_private *dev_priv = dev->dev_private;
835 u8 buf = 0;
836 struct i2c_msg msgs[] = {
837 {
838 .addr = 0xA0,
839 .flags = 0,
840 .len = 1,
841 .buf = &buf,
842 },
843 };
844 struct i2c_adapter *i2c = &dev_priv->gmbus[pin].adapter;
845 /* XXX this only appears to work when using GMBUS */
846 if (intel_gmbus_is_forced_bit(i2c))
847 return true;
848 return i2c_transfer(i2c, msgs, 1) == 1;
849}
850
851/** 832/**
852 * intel_lvds_init - setup LVDS connectors on this device 833 * intel_lvds_init - setup LVDS connectors on this device
853 * @dev: drm device 834 * @dev: drm device
@@ -888,11 +869,6 @@ bool intel_lvds_init(struct drm_device *dev)
888 } 869 }
889 } 870 }
890 871
891 if (!intel_lvds_ddc_probe(dev, pin)) {
892 DRM_DEBUG_KMS("LVDS did not respond to DDC probe\n");
893 return false;
894 }
895
896 intel_lvds = kzalloc(sizeof(struct intel_lvds), GFP_KERNEL); 872 intel_lvds = kzalloc(sizeof(struct intel_lvds), GFP_KERNEL);
897 if (!intel_lvds) { 873 if (!intel_lvds) {
898 return false; 874 return false;