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 <jmalo...@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);
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to