drm/i915: use PIPE_CONTROL instruction on Ironlake and Sandy Bridge

Previous thread: Documentation: -stable rules: upstream commit ID requirement reworded by Linux Kernel Mailing List on Thursday, April 22, 2010 - 6:59 pm. (1 message)

Next thread: Documentation/HOWTO: update git home URL by Linux Kernel Mailing List on Thursday, April 22, 2010 - 6:59 pm. (1 message)
From: Linux Kernel Mailing List
Date: Thursday, April 22, 2010 - 6:59 pm

Gitweb:     http://git.kernel.org/linus/e552eb7038a36d9b18860f525aa02875e313fe16
Commit:     e552eb7038a36d9b18860f525aa02875e313fe16
Parent:     20bf377e679208ba9ae0edcb8c70a8f6d33d17f9
Author:     Jesse Barnes <jbarnes@virtuousgeek.org>
AuthorDate: Wed Apr 21 11:39:23 2010 -0700
Committer:  Eric Anholt <eric@anholt.net>
CommitDate: Thu Apr 22 14:48:55 2010 -0700

    drm/i915: use PIPE_CONTROL instruction on Ironlake and Sandy Bridge
    
    Since 965, the hardware has supported the PIPE_CONTROL command, which
    provides fine grained GPU cache flushing control.  On recent chipsets,
    this instruction is required for reliable interrupt and sequence number
    reporting in the driver.
    
    So add support for this instruction, including workarounds, on Ironlake
    and Sandy Bridge hardware.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=27108
    
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Tested-by: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: Eric Anholt <eric@anholt.net>
---
 drivers/gpu/drm/i915/i915_drv.h |    4 +
 drivers/gpu/drm/i915/i915_gem.c |  145 +++++++++++++++++++++++++++++++++++---
 drivers/gpu/drm/i915/i915_irq.c |    8 +-
 drivers/gpu/drm/i915/i915_reg.h |   11 +++
 4 files changed, 152 insertions(+), 16 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index ec192dd..6e47900 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -236,11 +236,14 @@ typedef struct drm_i915_private {
 
 	drm_dma_handle_t *status_page_dmah;
 	void *hw_status_page;
+	void *seqno_page;
 	dma_addr_t dma_status_page;
 	uint32_t counter;
 	unsigned int status_gfx_addr;
+	unsigned int seqno_gfx_addr;
 	drm_local_map_t hws_map;
 	struct drm_gem_object *hws_obj;
+	struct drm_gem_object *seqno_obj;
 	struct drm_gem_object *pwrctx;
 
 	struct resource mch_res;
@@ -1139,6 +1142,7 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char ...
Previous thread: Documentation: -stable rules: upstream commit ID requirement reworded by Linux Kernel Mailing List on Thursday, April 22, 2010 - 6:59 pm. (1 message)

Next thread: Documentation/HOWTO: update git home URL by Linux Kernel Mailing List on Thursday, April 22, 2010 - 6:59 pm. (1 message)