]> rtime.felk.cvut.cz Git - linux-imx.git/blobdiff - drivers/gpu/drm/radeon/si.c
drm/radeon: cleanup VM id handling a bit
[linux-imx.git] / drivers / gpu / drm / radeon / si.c
index 3feff33e9d7f34797acf1a30274c3b2d1af7bbd2..e0846ce65f65443ae50cef539fa8283d4635a745 100644 (file)
@@ -1806,13 +1806,14 @@ void si_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib)
 #endif
                          (ib->gpu_addr & 0xFFFFFFFC));
        radeon_ring_write(ring, upper_32_bits(ib->gpu_addr) & 0xFFFF);
-       radeon_ring_write(ring, ib->length_dw | (ib->vm_id << 24));
+       radeon_ring_write(ring, ib->length_dw |
+                         (ib->vm ? (ib->vm->id << 24) : 0));
 
        if (!ib->is_const_ib) {
                /* flush read cache over gart for this vmid */
                radeon_ring_write(ring, PACKET3(PACKET3_SET_CONFIG_REG, 1));
                radeon_ring_write(ring, (CP_COHER_CNTL2 - PACKET3_SET_CONFIG_REG_START) >> 2);
-               radeon_ring_write(ring, ib->vm_id);
+               radeon_ring_write(ring, ib->vm ? ib->vm->id : 0);
                radeon_ring_write(ring, PACKET3(PACKET3_SURFACE_SYNC, 3));
                radeon_ring_write(ring, PACKET3_TCL1_ACTION_ENA |
                                  PACKET3_TC_ACTION_ENA |