drm/amdkfd: Stop using get_vmem_size KGD-KFD interface
[linux-2.6-microblaze.git] / drivers / gpu / drm / amd / amdkfd / kfd_topology.c
index 19ce590..cb0303a 100644 (file)
@@ -32,6 +32,7 @@
 #include "kfd_priv.h"
 #include "kfd_crat.h"
 #include "kfd_topology.h"
+#include "kfd_device_queue_manager.h"
 
 static struct list_head topology_device_list;
 static int topology_crat_parsed;
@@ -1072,11 +1073,15 @@ static uint32_t kfd_generate_gpu_id(struct kfd_dev *gpu)
        uint32_t buf[7];
        uint64_t local_mem_size;
        int i;
+       struct kfd_local_mem_info local_mem_info;
 
        if (!gpu)
                return 0;
 
-       local_mem_size = gpu->kfd2kgd->get_vmem_size(gpu->kgd);
+       gpu->kfd2kgd->get_local_mem_info(gpu->kgd, &local_mem_info);
+
+       local_mem_size = local_mem_info.local_mem_size_private +
+                       local_mem_info.local_mem_size_public;
 
        buf[0] = gpu->pdev->devfn;
        buf[1] = gpu->pdev->subsystem_vendor;
@@ -1233,3 +1238,57 @@ struct kfd_dev *kfd_topology_enum_kfd_devices(uint8_t idx)
        return device;
 
 }
+
+#if defined(CONFIG_DEBUG_FS)
+
+int kfd_debugfs_hqds_by_device(struct seq_file *m, void *data)
+{
+       struct kfd_topology_device *dev;
+       unsigned int i = 0;
+       int r = 0;
+
+       down_read(&topology_lock);
+
+       list_for_each_entry(dev, &topology_device_list, list) {
+               if (!dev->gpu) {
+                       i++;
+                       continue;
+               }
+
+               seq_printf(m, "Node %u, gpu_id %x:\n", i++, dev->gpu->id);
+               r = dqm_debugfs_hqds(m, dev->gpu->dqm);
+               if (r)
+                       break;
+       }
+
+       up_read(&topology_lock);
+
+       return r;
+}
+
+int kfd_debugfs_rls_by_device(struct seq_file *m, void *data)
+{
+       struct kfd_topology_device *dev;
+       unsigned int i = 0;
+       int r = 0;
+
+       down_read(&topology_lock);
+
+       list_for_each_entry(dev, &topology_device_list, list) {
+               if (!dev->gpu) {
+                       i++;
+                       continue;
+               }
+
+               seq_printf(m, "Node %u, gpu_id %x:\n", i++, dev->gpu->id);
+               r = pm_debugfs_runlist(m, &dev->gpu->dqm->packets);
+               if (r)
+                       break;
+       }
+
+       up_read(&topology_lock);
+
+       return r;
+}
+
+#endif