diff options
author | Mark Brown <broonie@linaro.org> | 2013-09-26 12:05:47 +0100 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2013-09-26 12:05:47 +0100 |
commit | e8f00c1b01c8b547bd1e11754634ce1913c7cc72 (patch) | |
tree | f50e57dc2ce4ca1a3f84b6c036c989b5491dc8c5 /drivers/gpu/drm/radeon/radeon_cs.c | |
parent | 9ff50721e47ab0abb8b93159170f67262886ef0d (diff) | |
parent | 50d4a790e65f5ac91a7b2720a19e80e862b40318 (diff) |
Merge remote-tracking branch 'asoc/fix/fsl' into asoc-devm
Conflicts:
sound/soc/fsl/imx-sgtl5000.c
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_cs.c')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_cs.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_cs.c b/drivers/gpu/drm/radeon/radeon_cs.c index a56084410372..ac6ece61a476 100644 --- a/drivers/gpu/drm/radeon/radeon_cs.c +++ b/drivers/gpu/drm/radeon/radeon_cs.c @@ -28,6 +28,7 @@ #include <drm/radeon_drm.h> #include "radeon_reg.h" #include "radeon.h" +#include "radeon_trace.h" static int radeon_cs_parser_relocs(struct radeon_cs_parser *p) { @@ -80,9 +81,11 @@ static int radeon_cs_parser_relocs(struct radeon_cs_parser *p) p->relocs[i].lobj.bo = p->relocs[i].robj; p->relocs[i].lobj.written = !!r->write_domain; - /* the first reloc of an UVD job is the - msg and that must be in VRAM */ - if (p->ring == R600_RING_TYPE_UVD_INDEX && i == 0) { + /* the first reloc of an UVD job is the msg and that must be in + VRAM, also but everything into VRAM on AGP cards to avoid + image corruptions */ + if (p->ring == R600_RING_TYPE_UVD_INDEX && + (i == 0 || p->rdev->flags & RADEON_IS_AGP)) { /* TODO: is this still needed for NI+ ? */ p->relocs[i].lobj.domain = RADEON_GEM_DOMAIN_VRAM; @@ -559,6 +562,8 @@ int radeon_cs_ioctl(struct drm_device *dev, void *data, struct drm_file *filp) return r; } + trace_radeon_cs(&parser); + r = radeon_cs_ib_chunk(rdev, &parser); if (r) { goto out; |