From patchwork Thu Mar 26 12:49:29 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Timo Aaltonen X-Patchwork-Id: 455035 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) by ozlabs.org (Postfix) with ESMTP id 8938A140142; Thu, 26 Mar 2015 23:49:48 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.76) (envelope-from ) id 1Yb7EE-0000aL-SN; Thu, 26 Mar 2015 12:49:42 +0000 Received: from youngberry.canonical.com ([91.189.89.112]) by huckleberry.canonical.com with esmtp (Exim 4.76) (envelope-from ) id 1Yb7E7-0000ZY-0R for kernel-team@lists.ubuntu.com; Thu, 26 Mar 2015 12:49:35 +0000 Received: from mobile-internet-2e84bf-150.dhcp.inet.fi ([46.132.191.150] helo=eldon.tyrell) by youngberry.canonical.com with esmtpsa (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1Yb7E6-0000aC-RB for kernel-team@lists.ubuntu.com; Thu, 26 Mar 2015 12:49:34 +0000 From: Timo Aaltonen To: kernel-team@lists.ubuntu.com Subject: [PATCH 5/8] drm/i915: Refactor Broadwell PIPE_CONTROL emission into a helper. Date: Thu, 26 Mar 2015 14:49:29 +0200 Message-Id: <1427374172-4926-6-git-send-email-tjaalton@ubuntu.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1427374172-4926-1-git-send-email-tjaalton@ubuntu.com> References: <1427374172-4926-1-git-send-email-tjaalton@ubuntu.com> X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.14 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: kernel-team-bounces@lists.ubuntu.com From: Kenneth Graunke BugLink: http://bugs.launchpad.net/bugs/1374389 We'll want to reuse this for a workaround. Signed-off-by: Kenneth Graunke Reviewed-by: Jesse Barnes [danvet: Rmove now unused int.] Signed-off-by: Daniel Vetter (cherry picked from commit 884ceacee308f0e4616d0c933518af2639f7b1d8) Signed-off-by: Timo Aaltonen --- drivers/gpu/drm/i915/intel_ringbuffer.c | 37 ++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c index 7c5bfc4..e60ff49 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c @@ -384,12 +384,32 @@ gen7_render_ring_flush(struct intel_engine_cs *ring, } static int +gen8_emit_pipe_control(struct intel_engine_cs *ring, + u32 flags, u32 scratch_addr) +{ + int ret; + + ret = intel_ring_begin(ring, 6); + if (ret) + return ret; + + intel_ring_emit(ring, GFX_OP_PIPE_CONTROL(6)); + intel_ring_emit(ring, flags); + intel_ring_emit(ring, scratch_addr); + intel_ring_emit(ring, 0); + intel_ring_emit(ring, 0); + intel_ring_emit(ring, 0); + intel_ring_advance(ring); + + return 0; +} + +static int gen8_render_ring_flush(struct intel_engine_cs *ring, u32 invalidate_domains, u32 flush_domains) { u32 flags = 0; u32 scratch_addr = ring->scratch.gtt_offset + 2 * CACHELINE_BYTES; - int ret; flags |= PIPE_CONTROL_CS_STALL; @@ -408,20 +428,7 @@ gen8_render_ring_flush(struct intel_engine_cs *ring, flags |= PIPE_CONTROL_GLOBAL_GTT_IVB; } - ret = intel_ring_begin(ring, 6); - if (ret) - return ret; - - intel_ring_emit(ring, GFX_OP_PIPE_CONTROL(6)); - intel_ring_emit(ring, flags); - intel_ring_emit(ring, scratch_addr); - intel_ring_emit(ring, 0); - intel_ring_emit(ring, 0); - intel_ring_emit(ring, 0); - intel_ring_advance(ring); - - return 0; - + return gen8_emit_pipe_control(ring, flags, scratch_addr); } static void ring_write_tail(struct intel_engine_cs *ring,