From f99bd6554effd1d95b62fce50dc35643a3799f3a Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Mon, 22 Oct 2012 16:12:17 +0300 Subject: [PATCH] --- yaml --- r: 345187 b: refs/heads/master c: 6cb1612a7dc4c3d5ed86dba5dd21bb48a5c395af h: refs/heads/master i: 345185: 8f8157bed82f20e95e3c9606bc23299732187507 345183: c46dbfdbbe57c09ee6e6d3f2f58b34775b92a90b v: v3 --- [refs] | 2 +- trunk/drivers/gpu/drm/i915/intel_sdvo.c | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/[refs] b/[refs] index d9a4712bbd9b..cc4354f3e1c5 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5de8bbf5536fe79c1353c5476c31409531b5393f +refs/heads/master: 6cb1612a7dc4c3d5ed86dba5dd21bb48a5c395af diff --git a/trunk/drivers/gpu/drm/i915/intel_sdvo.c b/trunk/drivers/gpu/drm/i915/intel_sdvo.c index 0007a4d9bf6e..9ea545e6f569 100644 --- a/trunk/drivers/gpu/drm/i915/intel_sdvo.c +++ b/trunk/drivers/gpu/drm/i915/intel_sdvo.c @@ -2042,17 +2042,17 @@ intel_sdvo_select_i2c_bus(struct drm_i915_private *dev_priv, else mapping = &dev_priv->sdvo_mappings[1]; - pin = GMBUS_PORT_DPB; - if (mapping->initialized) + if (mapping->initialized && intel_gmbus_is_port_valid(mapping->i2c_pin)) pin = mapping->i2c_pin; + else + pin = GMBUS_PORT_DPB; - if (intel_gmbus_is_port_valid(pin)) { - sdvo->i2c = intel_gmbus_get_adapter(dev_priv, pin); - intel_gmbus_set_speed(sdvo->i2c, GMBUS_RATE_1MHZ); - intel_gmbus_force_bit(sdvo->i2c, true); - } else { - sdvo->i2c = intel_gmbus_get_adapter(dev_priv, GMBUS_PORT_DPB); - } + sdvo->i2c = intel_gmbus_get_adapter(dev_priv, pin); + + /* With gmbus we should be able to drive sdvo i2c at 2MHz, but somehow + * our code totally fails once we start using gmbus. Hence fall back to + * bit banging for now. */ + intel_gmbus_force_bit(sdvo->i2c, true); } static bool