diff options
author | Alex Deucher <alexander.deucher@amd.com> | 2012-12-13 09:55:45 -0500 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2012-12-14 10:45:25 -0500 |
commit | d2ead3eaf8a4bf92129eda69189ce18a6c1cc8bd (patch) | |
tree | 61502ccac6c09b16184b617bfdcb309d19114ccf /drivers/gpu/drm/radeon/radeon_asic.c | |
parent | cf4ccd016bae1a03bb38170eb54b5db4b04e0545 (diff) |
drm/radeon/kms: add evergreen/cayman CS parser for async DMA (v2)
Allows us to use the DMA ring from userspace.
DMA doesn't have a good NOP packet in which to embed the
reloc idx, so userspace has to add a reloc for each
buffer used and order them to match the command stream.
v2: fix address bounds checking
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_asic.c')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_asic.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_asic.c b/drivers/gpu/drm/radeon/radeon_asic.c index d3603417e5d..ac1d5702144 100644 --- a/drivers/gpu/drm/radeon/radeon_asic.c +++ b/drivers/gpu/drm/radeon/radeon_asic.c | |||
@@ -1204,7 +1204,7 @@ static struct radeon_asic evergreen_asic = { | |||
1204 | .ib_execute = &evergreen_dma_ring_ib_execute, | 1204 | .ib_execute = &evergreen_dma_ring_ib_execute, |
1205 | .emit_fence = &evergreen_dma_fence_ring_emit, | 1205 | .emit_fence = &evergreen_dma_fence_ring_emit, |
1206 | .emit_semaphore = &r600_dma_semaphore_ring_emit, | 1206 | .emit_semaphore = &r600_dma_semaphore_ring_emit, |
1207 | .cs_parse = NULL, | 1207 | .cs_parse = &evergreen_dma_cs_parse, |
1208 | .ring_test = &r600_dma_ring_test, | 1208 | .ring_test = &r600_dma_ring_test, |
1209 | .ib_test = &r600_dma_ib_test, | 1209 | .ib_test = &r600_dma_ib_test, |
1210 | .is_lockup = &r600_dma_is_lockup, | 1210 | .is_lockup = &r600_dma_is_lockup, |
@@ -1288,7 +1288,7 @@ static struct radeon_asic sumo_asic = { | |||
1288 | .ib_execute = &evergreen_dma_ring_ib_execute, | 1288 | .ib_execute = &evergreen_dma_ring_ib_execute, |
1289 | .emit_fence = &evergreen_dma_fence_ring_emit, | 1289 | .emit_fence = &evergreen_dma_fence_ring_emit, |
1290 | .emit_semaphore = &r600_dma_semaphore_ring_emit, | 1290 | .emit_semaphore = &r600_dma_semaphore_ring_emit, |
1291 | .cs_parse = NULL, | 1291 | .cs_parse = &evergreen_dma_cs_parse, |
1292 | .ring_test = &r600_dma_ring_test, | 1292 | .ring_test = &r600_dma_ring_test, |
1293 | .ib_test = &r600_dma_ib_test, | 1293 | .ib_test = &r600_dma_ib_test, |
1294 | .is_lockup = &r600_dma_is_lockup, | 1294 | .is_lockup = &r600_dma_is_lockup, |
@@ -1372,7 +1372,7 @@ static struct radeon_asic btc_asic = { | |||
1372 | .ib_execute = &evergreen_dma_ring_ib_execute, | 1372 | .ib_execute = &evergreen_dma_ring_ib_execute, |
1373 | .emit_fence = &evergreen_dma_fence_ring_emit, | 1373 | .emit_fence = &evergreen_dma_fence_ring_emit, |
1374 | .emit_semaphore = &r600_dma_semaphore_ring_emit, | 1374 | .emit_semaphore = &r600_dma_semaphore_ring_emit, |
1375 | .cs_parse = NULL, | 1375 | .cs_parse = &evergreen_dma_cs_parse, |
1376 | .ring_test = &r600_dma_ring_test, | 1376 | .ring_test = &r600_dma_ring_test, |
1377 | .ib_test = &r600_dma_ib_test, | 1377 | .ib_test = &r600_dma_ib_test, |
1378 | .is_lockup = &r600_dma_is_lockup, | 1378 | .is_lockup = &r600_dma_is_lockup, |
@@ -1486,7 +1486,7 @@ static struct radeon_asic cayman_asic = { | |||
1486 | .ib_execute = &cayman_dma_ring_ib_execute, | 1486 | .ib_execute = &cayman_dma_ring_ib_execute, |
1487 | .emit_fence = &evergreen_dma_fence_ring_emit, | 1487 | .emit_fence = &evergreen_dma_fence_ring_emit, |
1488 | .emit_semaphore = &r600_dma_semaphore_ring_emit, | 1488 | .emit_semaphore = &r600_dma_semaphore_ring_emit, |
1489 | .cs_parse = NULL, | 1489 | .cs_parse = &evergreen_dma_cs_parse, |
1490 | .ring_test = &r600_dma_ring_test, | 1490 | .ring_test = &r600_dma_ring_test, |
1491 | .ib_test = &r600_dma_ib_test, | 1491 | .ib_test = &r600_dma_ib_test, |
1492 | .is_lockup = &cayman_dma_is_lockup, | 1492 | .is_lockup = &cayman_dma_is_lockup, |
@@ -1496,7 +1496,7 @@ static struct radeon_asic cayman_asic = { | |||
1496 | .ib_execute = &cayman_dma_ring_ib_execute, | 1496 | .ib_execute = &cayman_dma_ring_ib_execute, |
1497 | .emit_fence = &evergreen_dma_fence_ring_emit, | 1497 | .emit_fence = &evergreen_dma_fence_ring_emit, |
1498 | .emit_semaphore = &r600_dma_semaphore_ring_emit, | 1498 | .emit_semaphore = &r600_dma_semaphore_ring_emit, |
1499 | .cs_parse = NULL, | 1499 | .cs_parse = &evergreen_dma_cs_parse, |
1500 | .ring_test = &r600_dma_ring_test, | 1500 | .ring_test = &r600_dma_ring_test, |
1501 | .ib_test = &r600_dma_ib_test, | 1501 | .ib_test = &r600_dma_ib_test, |
1502 | .is_lockup = &cayman_dma_is_lockup, | 1502 | .is_lockup = &cayman_dma_is_lockup, |
@@ -1611,7 +1611,7 @@ static struct radeon_asic trinity_asic = { | |||
1611 | .ib_execute = &cayman_dma_ring_ib_execute, | 1611 | .ib_execute = &cayman_dma_ring_ib_execute, |
1612 | .emit_fence = &evergreen_dma_fence_ring_emit, | 1612 | .emit_fence = &evergreen_dma_fence_ring_emit, |
1613 | .emit_semaphore = &r600_dma_semaphore_ring_emit, | 1613 | .emit_semaphore = &r600_dma_semaphore_ring_emit, |
1614 | .cs_parse = NULL, | 1614 | .cs_parse = &evergreen_dma_cs_parse, |
1615 | .ring_test = &r600_dma_ring_test, | 1615 | .ring_test = &r600_dma_ring_test, |
1616 | .ib_test = &r600_dma_ib_test, | 1616 | .ib_test = &r600_dma_ib_test, |
1617 | .is_lockup = &cayman_dma_is_lockup, | 1617 | .is_lockup = &cayman_dma_is_lockup, |
@@ -1621,7 +1621,7 @@ static struct radeon_asic trinity_asic = { | |||
1621 | .ib_execute = &cayman_dma_ring_ib_execute, | 1621 | .ib_execute = &cayman_dma_ring_ib_execute, |
1622 | .emit_fence = &evergreen_dma_fence_ring_emit, | 1622 | .emit_fence = &evergreen_dma_fence_ring_emit, |
1623 | .emit_semaphore = &r600_dma_semaphore_ring_emit, | 1623 | .emit_semaphore = &r600_dma_semaphore_ring_emit, |
1624 | .cs_parse = NULL, | 1624 | .cs_parse = &evergreen_dma_cs_parse, |
1625 | .ring_test = &r600_dma_ring_test, | 1625 | .ring_test = &r600_dma_ring_test, |
1626 | .ib_test = &r600_dma_ib_test, | 1626 | .ib_test = &r600_dma_ib_test, |
1627 | .is_lockup = &cayman_dma_is_lockup, | 1627 | .is_lockup = &cayman_dma_is_lockup, |