]> Pileus Git - ~andy/linux/blobdiff - drivers/gpu/drm/radeon/radeon_ring.c
Merge branch 'kvm-updates/3.4' of git://git.kernel.org/pub/scm/virt/kvm/kvm
[~andy/linux] / drivers / gpu / drm / radeon / radeon_ring.c
index 30a4c5014c8b3f6a19f2e5e6d3102c488ac013e2..cc33b3d7c33b8f4bfa293cd3ce973fdc8b92aff6 100644 (file)
@@ -133,6 +133,7 @@ retry:
                                (*ib)->gpu_addr += (*ib)->sa_bo.offset;
                                (*ib)->fence = fence;
                                (*ib)->vm_id = 0;
+                               (*ib)->is_const_ib = false;
                                /* ib are most likely to be allocated in a ring fashion
                                 * thus rdev->ib_pool.head_id should be the id of the
                                 * oldest ib
@@ -478,7 +479,9 @@ static struct drm_info_list radeon_debugfs_ring_info_list[] = {
 static int radeon_debugfs_ib_info(struct seq_file *m, void *data)
 {
        struct drm_info_node *node = (struct drm_info_node *) m->private;
-       struct radeon_ib *ib = node->info_ent->data;
+       struct drm_device *dev = node->minor->dev;
+       struct radeon_device *rdev = dev->dev_private;
+       struct radeon_ib *ib = &rdev->ib_pool.ibs[*((unsigned*)node->info_ent->data)];
        unsigned i;
 
        if (ib == NULL) {
@@ -495,13 +498,17 @@ static int radeon_debugfs_ib_info(struct seq_file *m, void *data)
 
 static struct drm_info_list radeon_debugfs_ib_list[RADEON_IB_POOL_SIZE];
 static char radeon_debugfs_ib_names[RADEON_IB_POOL_SIZE][32];
+static unsigned radeon_debugfs_ib_idx[RADEON_IB_POOL_SIZE];
 #endif
 
 int radeon_debugfs_ring_init(struct radeon_device *rdev)
 {
 #if defined(CONFIG_DEBUG_FS)
-       return radeon_debugfs_add_files(rdev, radeon_debugfs_ring_info_list,
-                                       ARRAY_SIZE(radeon_debugfs_ring_info_list));
+       if (rdev->family >= CHIP_CAYMAN)
+               return radeon_debugfs_add_files(rdev, radeon_debugfs_ring_info_list,
+                                               ARRAY_SIZE(radeon_debugfs_ring_info_list));
+       else
+               return radeon_debugfs_add_files(rdev, radeon_debugfs_ring_info_list, 1);
 #else
        return 0;
 #endif
@@ -514,10 +521,11 @@ int radeon_debugfs_ib_init(struct radeon_device *rdev)
 
        for (i = 0; i < RADEON_IB_POOL_SIZE; i++) {
                sprintf(radeon_debugfs_ib_names[i], "radeon_ib_%04u", i);
+               radeon_debugfs_ib_idx[i] = i;
                radeon_debugfs_ib_list[i].name = radeon_debugfs_ib_names[i];
                radeon_debugfs_ib_list[i].show = &radeon_debugfs_ib_info;
                radeon_debugfs_ib_list[i].driver_features = 0;
-               radeon_debugfs_ib_list[i].data = &rdev->ib_pool.ibs[i];
+               radeon_debugfs_ib_list[i].data = &radeon_debugfs_ib_idx[i];
        }
        return radeon_debugfs_add_files(rdev, radeon_debugfs_ib_list,
                                        RADEON_IB_POOL_SIZE);