mirror of
https://github.com/torvalds/linux
synced 2024-10-27 21:59:21 +00:00
drm/i915/sdvo: force GPIO bit-banging also on default pin
commit 63abf3edaf
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Wed Dec 8 16:48:21 2010 +0000
drm/i915/sdvo: Only use the SDVO pin if it is in the valid range
added a default fallback if BIOS provides an invalid pin mapping, but
failed to force GPIO bit-banging on it. Finish the job, and also clean up
the function a bit. With bit-banging, setting the gmbus speed has no
effect, so drop it.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
[danvet: Extend comment about gmbus in the code a bit.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
5de8bbf553
commit
6cb1612a7d
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue