Skip to content
Permalink
Browse files

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
  • Loading branch information
bsdjhb committed Dec 17, 2015
1 parent 0a06824 commit 4ef184b756b083683d4bac92ab02330aa08c4427
Showing with 1 addition and 1 deletion.
  1. +1 −1 sys/dev/drm2/i915/intel_iic.c
@@ -456,7 +456,7 @@ gmbus_xfer(device_t adapter,

/* 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);

0 comments on commit 4ef184b

Please sign in to comment.
You can’t perform that action at this time.