From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eugeni Dodonov Subject: [PATCH 2/3] drm/i915: allow semaphores on SNB if DMAR is disabled Date: Wed, 16 Nov 2011 22:17:54 -0200 Message-ID: <1321489075-1322-2-git-send-email-eugeni.dodonov@intel.com> References: <1321489075-1322-1-git-send-email-eugeni.dodonov@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from oproxy5-pub.bluehost.com (oproxy5-pub.bluehost.com [67.222.38.55]) by gabe.freedesktop.org (Postfix) with SMTP id 33D229E902 for ; Wed, 16 Nov 2011 16:18:22 -0800 (PST) In-Reply-To: <1321489075-1322-1-git-send-email-eugeni.dodonov@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: intel-gfx@lists.freedesktop.org Cc: daniel.vetter@ffwll.ch, Eugeni Dodonov List-Id: intel-gfx@lists.freedesktop.org Semaphores cause issues when DMAR is enabled. So if we are set to per-chip default, and we are on SNB, we can enable semaphores as long as SMAR is disabled. Signed-off-by: Eugeni Dodonov --- drivers/gpu/drm/i915/i915_drv.c | 2 ++ drivers/gpu/drm/i915/i915_gem_execbuffer.c | 4 +++- 2 files changed, 5 insertions(+), 1 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index 355f1ab..565725c 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c @@ -214,6 +214,7 @@ static const struct intel_device_info intel_sandybridge_d_info = { .need_gfx_hws = 1, .has_hotplug = 1, .has_bsd_ring = 1, .has_blt_ring = 1, + .enable_semaphores = 1, }; static const struct intel_device_info intel_sandybridge_m_info = { @@ -222,6 +223,7 @@ static const struct intel_device_info intel_sandybridge_m_info = { .has_fbc = 1, .has_bsd_ring = 1, .has_blt_ring = 1, + .enable_semaphores = 1, }; static const struct intel_device_info intel_ivybridge_d_info = { diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c index 094ff4c..0510735 100644 --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c @@ -32,6 +32,7 @@ #include "i915_drv.h" #include "i915_trace.h" #include "intel_drv.h" +#include struct change_domains { uint32_t invalidate_domains; @@ -758,7 +759,8 @@ i915_gem_execbuffer_sync_rings(struct drm_i915_gem_object *obj, if (from == NULL || to == from) return 0; - if (i915_semaphores < 0 && ENABLE_SEMAPHORES(obj->base.dev)) + /* Only enable semaphores if DMAR is disabled */ + if (i915_semaphores < 0 && ENABLE_SEMAPHORES(obj->base.dev) && dmar_disabled) enable_semaphores = 1; /* XXX gpu semaphores are implicated in various hard hangs on SNB */ -- 1.7.7.3