Skip to content

Commit

Permalink
t seems certain Intel GPUs use GPIO bitbanging over a child device
Browse files Browse the repository at this point in the history
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 4ef184b
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion sys/dev/drm2/i915/intel_iic.c
Expand Up @@ -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);
Expand Down

0 comments on commit 4ef184b

Please sign in to comment.