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
This commit is contained in:
parent
0a0682484a
commit
4ef184b756
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user