drm/radeon: force UVD buffers into VRAM on RS[78]80 v2
authorChristian König <christian.koenig@amd.com>
Tue, 16 Apr 2013 13:41:25 +0000 (15:41 +0200)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 27 Aug 2014 16:47:49 +0000 (12:47 -0400)
v2: only necessary on RS[78]80

Signed-off-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/radeon/radeon_cs.c

index 0669399efceac2ef3afc67e855a56ae7c90ec5e1..db739bd64f16a5347ede99c8a3468d75e47850dc 100644 (file)
@@ -137,10 +137,13 @@ static int radeon_cs_parser_relocs(struct radeon_cs_parser *p)
                           + !!r->write_domain;
 
                /* 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 */
+                  VRAM, also but everything into VRAM on AGP cards and older
+                  IGP chips to avoid image corruptions */
                if (p->ring == R600_RING_TYPE_UVD_INDEX &&
-                   (i == 0 || drm_pci_device_is_agp(p->rdev->ddev))) {
+                   (i == 0 || drm_pci_device_is_agp(p->rdev->ddev) ||
+                    p->rdev->family == CHIP_RS780 ||
+                    p->rdev->family == CHIP_RS880)) {
+
                        /* TODO: is this still needed for NI+ ? */
                        p->relocs[i].prefered_domains =
                                RADEON_GEM_DOMAIN_VRAM;