svn commit: r292409 - head/sys/dev/drm2/i915
John Baldwin
jhb at FreeBSD.org
Thu Dec 17 20:33:22 UTC 2015
Author: jhb
Date: Thu Dec 17 20:33:20 2015
New Revision: 292409
URL: https://svnweb.freebsd.org/changeset/base/292409
Log:
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 at pcbsd.org>
Reviewed by: adrian, dumbbell, imp
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D4599
Modified:
head/sys/dev/drm2/i915/intel_iic.c
Modified: head/sys/dev/drm2/i915/intel_iic.c
==============================================================================
--- head/sys/dev/drm2/i915/intel_iic.c Thu Dec 17 19:36:25 2015 (r292408)
+++ head/sys/dev/drm2/i915/intel_iic.c Thu Dec 17 20:33:20 2015 (r292409)
@@ -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);
More information about the svn-src-head
mailing list