Date: Mon, 18 Jan 2016 20:44:29 +0000 (UTC) From: John Baldwin <jhb@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r294292 - stable/10/sys/dev/drm2/i915 Message-ID: <201601182044.u0IKiTTr098386@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: jhb Date: Mon Jan 18 20:44:29 2016 New Revision: 294292 URL: https://svnweb.freebsd.org/changeset/base/294292 Log: MFC 292409: It 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. Modified: stable/10/sys/dev/drm2/i915/intel_iic.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/drm2/i915/intel_iic.c ============================================================================== --- stable/10/sys/dev/drm2/i915/intel_iic.c Mon Jan 18 20:22:51 2016 (r294291) +++ stable/10/sys/dev/drm2/i915/intel_iic.c Mon Jan 18 20:44:29 2016 (r294292) @@ -467,8 +467,7 @@ timeout: * Try GPIO bitbanging instead. */ sc->force_bit_dev = true; - error = -IICBUS_TRANSFER(idev, msgs, nmsgs); - goto out; + error = -IICBUS_TRANSFER(dev_priv->bbbus[unit], msgs, nmsgs); out: sx_xunlock(&dev_priv->gmbus_sx);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201601182044.u0IKiTTr098386>