aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/drm2/i915
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2015-12-17 20:33:20 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2015-12-17 20:33:20 +0000
commit544f1677473dacbae33495d66bc2e92d40e2c0b5 (patch)
tree55233d5b46642d9ac02dae763a511093efafa84f /sys/dev/drm2/i915
parent22f393c35da39d9f6830226114233db6821d1953 (diff)
downloadsrc-544f1677473dacbae33495d66bc2e92d40e2c0b5.tar.gz
src-544f1677473dacbae33495d66bc2e92d40e2c0b5.zip
t seems certain Intel GPUs use GPIO bitbanging over a child device
instead of GMBUS access for I2C transfers. The GMBUS driver falls back to this mode when a transfer times out. However, the first transfer to timeout was sending the request back to itself resulting in an panic due to recursing on a lock. Fix it to forward the request on to the proper device. This appears to have been accidentally changed in r277487. Reported by: Joe Maloney <jmaloney@pcbsd.org> Reviewed by: adrian, dumbbell, imp MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D4599
Notes
Notes: svn path=/head/; revision=292409
Diffstat (limited to 'sys/dev/drm2/i915')
-rw-r--r--sys/dev/drm2/i915/intel_iic.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/dev/drm2/i915/intel_iic.c b/sys/dev/drm2/i915/intel_iic.c
index c04b27bf2422..aacc954bcec8 100644
--- a/sys/dev/drm2/i915/intel_iic.c
+++ b/sys/dev/drm2/i915/intel_iic.c
@@ -456,7 +456,7 @@ timeout:
/* Hardware may not support GMBUS over these pins? Try GPIO bitbanging instead. */
sc->force_bit_dev = true;
- error = -IICBUS_TRANSFER(adapter, msgs, num);
+ error = -IICBUS_TRANSFER(dev_priv->bbbus[unit], msgs, num);
out:
sx_xunlock(&dev_priv->gmbus_sx);