aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm
diff options
context:
space:
mode:
authorBen Widawsky <benjamin.widawsky@intel.com>2013-11-03 00:07:13 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2013-11-08 12:09:42 -0500
commit075b3bbaae0d6ec99c09d2299c3632e481028542 (patch)
tree4df7425d83d6b22b4c349ba28a510b8748cf0e98 /drivers/gpu/drm
parent1c7a0623c795b35349d8f19cd8e8a19ac5783008 (diff)
drm/i915/bdw: Update MI_FLUSH_DW
The code is more verbose than necessary for the reader's sake, hopefully the compiler optimizes away the if. Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Ben Widawsky <ben@bwidawsk.net> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm')
-rw-r--r--drivers/gpu/drm/i915/intel_ringbuffer.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index 7070d734b84b..ef0e7b99ded7 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -1670,6 +1670,8 @@ static int gen6_bsd_ring_flush(struct intel_ring_buffer *ring,
1670 return ret; 1670 return ret;
1671 1671
1672 cmd = MI_FLUSH_DW; 1672 cmd = MI_FLUSH_DW;
1673 if (INTEL_INFO(ring->dev)->gen >= 8)
1674 cmd += 1;
1673 /* 1675 /*
1674 * Bspec vol 1c.5 - video engine command streamer: 1676 * Bspec vol 1c.5 - video engine command streamer:
1675 * "If ENABLED, all TLBs will be invalidated once the flush 1677 * "If ENABLED, all TLBs will be invalidated once the flush
@@ -1681,8 +1683,13 @@ static int gen6_bsd_ring_flush(struct intel_ring_buffer *ring,
1681 MI_FLUSH_DW_STORE_INDEX | MI_FLUSH_DW_OP_STOREDW; 1683 MI_FLUSH_DW_STORE_INDEX | MI_FLUSH_DW_OP_STOREDW;
1682 intel_ring_emit(ring, cmd); 1684 intel_ring_emit(ring, cmd);
1683 intel_ring_emit(ring, I915_GEM_HWS_SCRATCH_ADDR | MI_FLUSH_DW_USE_GTT); 1685 intel_ring_emit(ring, I915_GEM_HWS_SCRATCH_ADDR | MI_FLUSH_DW_USE_GTT);
1684 intel_ring_emit(ring, 0); 1686 if (INTEL_INFO(ring->dev)->gen >= 8) {
1685 intel_ring_emit(ring, MI_NOOP); 1687 intel_ring_emit(ring, 0); /* upper addr */
1688 intel_ring_emit(ring, 0); /* value */
1689 } else {
1690 intel_ring_emit(ring, 0);
1691 intel_ring_emit(ring, MI_NOOP);
1692 }
1686 intel_ring_advance(ring); 1693 intel_ring_advance(ring);
1687 return 0; 1694 return 0;
1688} 1695}
@@ -1764,6 +1771,8 @@ static int gen6_ring_flush(struct intel_ring_buffer *ring,
1764 return ret; 1771 return ret;
1765 1772
1766 cmd = MI_FLUSH_DW; 1773 cmd = MI_FLUSH_DW;
1774 if (INTEL_INFO(ring->dev)->gen >= 8)
1775 cmd += 1;
1767 /* 1776 /*
1768 * Bspec vol 1c.3 - blitter engine command streamer: 1777 * Bspec vol 1c.3 - blitter engine command streamer:
1769 * "If ENABLED, all TLBs will be invalidated once the flush 1778 * "If ENABLED, all TLBs will be invalidated once the flush
@@ -1775,8 +1784,13 @@ static int gen6_ring_flush(struct intel_ring_buffer *ring,
1775 MI_FLUSH_DW_OP_STOREDW; 1784 MI_FLUSH_DW_OP_STOREDW;
1776 intel_ring_emit(ring, cmd); 1785 intel_ring_emit(ring, cmd);
1777 intel_ring_emit(ring, I915_GEM_HWS_SCRATCH_ADDR | MI_FLUSH_DW_USE_GTT); 1786 intel_ring_emit(ring, I915_GEM_HWS_SCRATCH_ADDR | MI_FLUSH_DW_USE_GTT);
1778 intel_ring_emit(ring, 0); 1787 if (INTEL_INFO(ring->dev)->gen >= 8) {
1779 intel_ring_emit(ring, MI_NOOP); 1788 intel_ring_emit(ring, 0); /* upper addr */
1789 intel_ring_emit(ring, 0); /* value */
1790 } else {
1791 intel_ring_emit(ring, 0);
1792 intel_ring_emit(ring, MI_NOOP);
1793 }
1780 intel_ring_advance(ring); 1794 intel_ring_advance(ring);
1781 1795
1782 if (IS_GEN7(dev) && flush) 1796 if (IS_GEN7(dev) && flush)