]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.0-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 May 2013 19:19:05 +0000 (12:19 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 May 2013 19:19:05 +0000 (12:19 -0700)
added patches:
drm-i915-fall-back-to-bit-banging-mode-for-dvo-transmitter-detection.patch

queue-3.0/drm-i915-fall-back-to-bit-banging-mode-for-dvo-transmitter-detection.patch [new file with mode: 0644]
queue-3.0/series

diff --git a/queue-3.0/drm-i915-fall-back-to-bit-banging-mode-for-dvo-transmitter-detection.patch b/queue-3.0/drm-i915-fall-back-to-bit-banging-mode-for-dvo-transmitter-detection.patch
new file mode 100644 (file)
index 0000000..02b8577
--- /dev/null
@@ -0,0 +1,55 @@
+From e4bfff54ed3f5de88f5358504c78c2cb037813aa Mon Sep 17 00:00:00 2001
+From: David Müller <d.mueller@elsoft.ch>
+Date: Fri, 19 Apr 2013 10:41:50 +0200
+Subject: drm/i915: Fall back to bit banging mode for DVO transmitter detection
+
+From: David Müller <d.mueller@elsoft.ch>
+
+commit e4bfff54ed3f5de88f5358504c78c2cb037813aa upstream.
+
+As discussed in this thread
+http://lists.freedesktop.org/archives/dri-devel/2013-April/037411.html
+GMBUS based DVO transmitter detection seems to be unreliable which could
+result in an unusable DVO port.
+
+The attached patch fixes this by falling back to bit banging mode for
+the time DVO transmitter detection is in progress.
+
+Signed-off-by: David Müller <d.mueller@elsoft.ch>
+Tested-by: David Müller <d.mueller@elsoft.ch>
+Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/i915/intel_dvo.c |   13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
+
+--- a/drivers/gpu/drm/i915/intel_dvo.c
++++ b/drivers/gpu/drm/i915/intel_dvo.c
+@@ -371,6 +371,7 @@ void intel_dvo_init(struct drm_device *d
+               const struct intel_dvo_device *dvo = &intel_dvo_devices[i];
+               struct i2c_adapter *i2c;
+               int gpio;
++              bool dvoinit;
+               /* Allow the I2C driver info to specify the GPIO to be used in
+                * special cases, but otherwise default to what's defined
+@@ -390,7 +391,17 @@ void intel_dvo_init(struct drm_device *d
+               i2c = &dev_priv->gmbus[gpio].adapter;
+               intel_dvo->dev = *dvo;
+-              if (!dvo->dev_ops->init(&intel_dvo->dev, i2c))
++
++              /* GMBUS NAK handling seems to be unstable, hence let the
++               * transmitter detection run in bit banging mode for now.
++               */
++              intel_gmbus_force_bit(i2c, true);
++
++              dvoinit = dvo->dev_ops->init(&intel_dvo->dev, i2c);
++
++              intel_gmbus_force_bit(i2c, false);
++
++              if (!dvoinit)
+                       continue;
+               intel_encoder->type = INTEL_OUTPUT_DVO;
index 5560da34f5171699e7df8be24cf04ea61616806f..2b7274eb4482ddaf3d6aa27d440d221006dd93f5 100644 (file)
@@ -2,3 +2,4 @@ powerpc-fix-numa-distance-for-form0-device-tree.patch
 autofs-remove-autofs-dentry-mount-check.patch
 ipvs-ip_vs_sip_fill_param-bug-bad-check-of-return-value.patch
 drm-i915-add-no-lvds-quirk-for-fujitsu-esprimo-q900.patch
+drm-i915-fall-back-to-bit-banging-mode-for-dvo-transmitter-detection.patch