diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2013-10-07 10:43:04 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2013-10-07 10:43:04 -0400 |
commit | a56e74f546b64be93731e42d83baf5b538cc1b11 (patch) | |
tree | 18f6dee45d801e57ac9db2a31664b0d5c0762c50 /drivers/gpu/drm/radeon/radeon_cs.c | |
parent | d08e2e09042bd3f7ef66a35cb4bb92794ab26bb2 (diff) | |
parent | e4e7f10bfc4069925e99cc4b428c3434e30b6c3f (diff) |
Merge branch 'arm-aesbs' of git://git.linaro.org/people/ardbiesheuvel/linux-arm into devel-stable
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_cs.c')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_cs.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_cs.c b/drivers/gpu/drm/radeon/radeon_cs.c index a56084410372..66c222836631 100644 --- a/drivers/gpu/drm/radeon/radeon_cs.c +++ b/drivers/gpu/drm/radeon/radeon_cs.c | |||
@@ -28,6 +28,7 @@ | |||
28 | #include <drm/radeon_drm.h> | 28 | #include <drm/radeon_drm.h> |
29 | #include "radeon_reg.h" | 29 | #include "radeon_reg.h" |
30 | #include "radeon.h" | 30 | #include "radeon.h" |
31 | #include "radeon_trace.h" | ||
31 | 32 | ||
32 | static int radeon_cs_parser_relocs(struct radeon_cs_parser *p) | 33 | static int radeon_cs_parser_relocs(struct radeon_cs_parser *p) |
33 | { | 34 | { |
@@ -80,10 +81,13 @@ static int radeon_cs_parser_relocs(struct radeon_cs_parser *p) | |||
80 | p->relocs[i].lobj.bo = p->relocs[i].robj; | 81 | p->relocs[i].lobj.bo = p->relocs[i].robj; |
81 | p->relocs[i].lobj.written = !!r->write_domain; | 82 | p->relocs[i].lobj.written = !!r->write_domain; |
82 | 83 | ||
83 | /* the first reloc of an UVD job is the | 84 | /* the first reloc of an UVD job is the msg and that must be in |
84 | msg and that must be in VRAM */ | 85 | VRAM, also but everything into VRAM on AGP cards to avoid |
85 | if (p->ring == R600_RING_TYPE_UVD_INDEX && i == 0) { | 86 | image corruptions */ |
86 | /* TODO: is this still needed for NI+ ? */ | 87 | if (p->ring == R600_RING_TYPE_UVD_INDEX && |
88 | p->rdev->family < CHIP_PALM && | ||
89 | (i == 0 || drm_pci_device_is_agp(p->rdev->ddev))) { | ||
90 | |||
87 | p->relocs[i].lobj.domain = | 91 | p->relocs[i].lobj.domain = |
88 | RADEON_GEM_DOMAIN_VRAM; | 92 | RADEON_GEM_DOMAIN_VRAM; |
89 | 93 | ||
@@ -559,6 +563,8 @@ int radeon_cs_ioctl(struct drm_device *dev, void *data, struct drm_file *filp) | |||
559 | return r; | 563 | return r; |
560 | } | 564 | } |
561 | 565 | ||
566 | trace_radeon_cs(&parser); | ||
567 | |||
562 | r = radeon_cs_ib_chunk(rdev, &parser); | 568 | r = radeon_cs_ib_chunk(rdev, &parser); |
563 | if (r) { | 569 | if (r) { |
564 | goto out; | 570 | goto out; |