diff options
author | Ben Widawsky <ben@bwidawsk.net> | 2013-05-28 22:22:20 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2013-05-31 14:54:10 -0400 |
commit | 1950de14fd1b8ea27a411929156c7eccee2ad7c3 (patch) | |
tree | fdb2f5db92d5e9916fd87c6a0e0acb814b1e36b0 /drivers/gpu/drm/i915/intel_ringbuffer.c | |
parent | 4a3dd19d94c65323d71b2ffc7e63940f00acfb47 (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.c | 6 |
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); |