aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_ringbuffer.c
diff options
context:
space:
mode:
authorBen Widawsky <ben@bwidawsk.net>2013-05-28 22:22:20 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2013-05-31 14:54:10 -0400
commit1950de14fd1b8ea27a411929156c7eccee2ad7c3 (patch)
treefdb2f5db92d5e9916fd87c6a0e0acb814b1e36b0 /drivers/gpu/drm/i915/intel_ringbuffer.c
parent4a3dd19d94c65323d71b2ffc7e63940f00acfb47 (diff)
drm/i915: Add VECS semaphore bits
Like the other rings, the VECS supports semaphores. The semaphore stuff is a bit wonky so this patch on it's own should be nice for review. This patch should have no functional impact. v2: Fix the English parts of clarification (again, register names were right, text was reversed) (Damien) Restore the still valid invariant. (Damien) The bsd semaphore register should be MI_SEMAPHORE_SYNC_VVE (Damien) Signed-off-by: Ben Widawsky <ben@bwidawsk.net> Reviewed-by: Damien Lespiau <damien.lespiau@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_ringbuffer.c')
-rw-r--r--drivers/gpu/drm/i915/intel_ringbuffer.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index ead979a94105..93ccd1e982e0 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -1688,9 +1688,11 @@ int intel_init_render_ring_buffer(struct drm_device *dev)
1688 ring->semaphore_register[RCS] = MI_SEMAPHORE_SYNC_INVALID; 1688 ring->semaphore_register[RCS] = MI_SEMAPHORE_SYNC_INVALID;
1689 ring->semaphore_register[VCS] = MI_SEMAPHORE_SYNC_RV; 1689 ring->semaphore_register[VCS] = MI_SEMAPHORE_SYNC_RV;
1690 ring->semaphore_register[BCS] = MI_SEMAPHORE_SYNC_RB; 1690 ring->semaphore_register[BCS] = MI_SEMAPHORE_SYNC_RB;
1691 ring->semaphore_register[VECS] = MI_SEMAPHORE_SYNC_RVE;
1691 ring->signal_mbox[RCS] = GEN6_NOSYNC; 1692 ring->signal_mbox[RCS] = GEN6_NOSYNC;
1692 ring->signal_mbox[VCS] = GEN6_VRSYNC; 1693 ring->signal_mbox[VCS] = GEN6_VRSYNC;
1693 ring->signal_mbox[BCS] = GEN6_BRSYNC; 1694 ring->signal_mbox[BCS] = GEN6_BRSYNC;
1695 ring->signal_mbox[VECS] = GEN6_VERSYNC;
1694 } else if (IS_GEN5(dev)) { 1696 } else if (IS_GEN5(dev)) {
1695 ring->add_request = pc_render_add_request; 1697 ring->add_request = pc_render_add_request;
1696 ring->flush = gen4_render_ring_flush; 1698 ring->flush = gen4_render_ring_flush;
@@ -1848,9 +1850,11 @@ int intel_init_bsd_ring_buffer(struct drm_device *dev)
1848 ring->semaphore_register[RCS] = MI_SEMAPHORE_SYNC_VR; 1850 ring->semaphore_register[RCS] = MI_SEMAPHORE_SYNC_VR;
1849 ring->semaphore_register[VCS] = MI_SEMAPHORE_SYNC_INVALID; 1851 ring->semaphore_register[VCS] = MI_SEMAPHORE_SYNC_INVALID;
1850 ring->semaphore_register[BCS] = MI_SEMAPHORE_SYNC_VB; 1852 ring->semaphore_register[BCS] = MI_SEMAPHORE_SYNC_VB;
1853 ring->semaphore_register[VECS] = MI_SEMAPHORE_SYNC_VVE;
1851 ring->signal_mbox[RCS] = GEN6_RVSYNC; 1854 ring->signal_mbox[RCS] = GEN6_RVSYNC;
1852 ring->signal_mbox[VCS] = GEN6_NOSYNC; 1855 ring->signal_mbox[VCS] = GEN6_NOSYNC;
1853 ring->signal_mbox[BCS] = GEN6_BVSYNC; 1856 ring->signal_mbox[BCS] = GEN6_BVSYNC;
1857 ring->signal_mbox[VECS] = GEN6_VEVSYNC;
1854 } else { 1858 } else {
1855 ring->mmio_base = BSD_RING_BASE; 1859 ring->mmio_base = BSD_RING_BASE;
1856 ring->flush = bsd_ring_flush; 1860 ring->flush = bsd_ring_flush;
@@ -1895,9 +1899,11 @@ int intel_init_blt_ring_buffer(struct drm_device *dev)
1895 ring->semaphore_register[RCS] = MI_SEMAPHORE_SYNC_BR; 1899 ring->semaphore_register[RCS] = MI_SEMAPHORE_SYNC_BR;
1896 ring->semaphore_register[VCS] = MI_SEMAPHORE_SYNC_BV; 1900 ring->semaphore_register[VCS] = MI_SEMAPHORE_SYNC_BV;
1897 ring->semaphore_register[BCS] = MI_SEMAPHORE_SYNC_INVALID; 1901 ring->semaphore_register[BCS] = MI_SEMAPHORE_SYNC_INVALID;
1902 ring->semaphore_register[VECS] = MI_SEMAPHORE_SYNC_BVE;
1898 ring->signal_mbox[RCS] = GEN6_RBSYNC; 1903 ring->signal_mbox[RCS] = GEN6_RBSYNC;
1899 ring->signal_mbox[VCS] = GEN6_VBSYNC; 1904 ring->signal_mbox[VCS] = GEN6_VBSYNC;
1900 ring->signal_mbox[BCS] = GEN6_NOSYNC; 1905 ring->signal_mbox[BCS] = GEN6_NOSYNC;
1906 ring->signal_mbox[VECS] = GEN6_VEBSYNC;
1901 ring->init = init_ring_common; 1907 ring->init = init_ring_common;
1902 1908
1903 return intel_init_ring_buffer(dev, ring); 1909 return intel_init_ring_buffer(dev, ring);