From owner-svn-src-all@FreeBSD.ORG Mon Oct 21 16:22:51 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id CA730B94; Mon, 21 Oct 2013 16:22:51 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id B8780230E; Mon, 21 Oct 2013 16:22:51 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9LGMpsq000741; Mon, 21 Oct 2013 16:22:51 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9LGMpO3000740; Mon, 21 Oct 2013 16:22:51 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201310211622.r9LGMpO3000740@svn.freebsd.org> From: Konstantin Belousov Date: Mon, 21 Oct 2013 16:22:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256848 - head/sys/dev/drm2/i915 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Oct 2013 16:22:51 -0000 Author: kib Date: Mon Oct 21 16:22:51 2013 New Revision: 256848 URL: http://svnweb.freebsd.org/changeset/base/256848 Log: Reset function on SandyBridge holds the gt_lock for the whole duration already. Also, according to the specs, GDRST register is not in the power well, so the forcewake for reset status read is excessive for this reason. Use plain register read for waiting of the reset completion notification, to avoid gt_lock recursion. Linux upstream did the similar change, but their code was already restructured. Reported by: ray Sponsored by: The FreeBSD Foundation MFC after: 1 week Modified: head/sys/dev/drm2/i915/i915_drv.c Modified: head/sys/dev/drm2/i915/i915_drv.c ============================================================================== --- head/sys/dev/drm2/i915/i915_drv.c Mon Oct 21 16:17:46 2013 (r256847) +++ head/sys/dev/drm2/i915/i915_drv.c Mon Oct 21 16:22:51 2013 (r256848) @@ -685,7 +685,7 @@ gen6_do_reset(struct drm_device *dev, u8 /* Spin waiting for the device to ack the reset request */ ret = _intel_wait_for(dev, - (I915_READ(GEN6_GDRST) & GEN6_GRDOM_FULL) == 0, + (I915_READ_NOTRACE(GEN6_GDRST) & GEN6_GRDOM_FULL) == 0, 500, 1, "915rst"); /* If reset with a user forcewake, try to restore, otherwise turn it off */