aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amdfalconx86/recipes-kernel/linux/files/1045-drm-amd-amdgpu-Re-fix-debugfs-for-ring-entries.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amdfalconx86/recipes-kernel/linux/files/1045-drm-amd-amdgpu-Re-fix-debugfs-for-ring-entries.patch')
-rw-r--r--meta-amdfalconx86/recipes-kernel/linux/files/1045-drm-amd-amdgpu-Re-fix-debugfs-for-ring-entries.patch82
1 files changed, 82 insertions, 0 deletions
diff --git a/meta-amdfalconx86/recipes-kernel/linux/files/1045-drm-amd-amdgpu-Re-fix-debugfs-for-ring-entries.patch b/meta-amdfalconx86/recipes-kernel/linux/files/1045-drm-amd-amdgpu-Re-fix-debugfs-for-ring-entries.patch
new file mode 100644
index 00000000..fe02c865
--- /dev/null
+++ b/meta-amdfalconx86/recipes-kernel/linux/files/1045-drm-amd-amdgpu-Re-fix-debugfs-for-ring-entries.patch
@@ -0,0 +1,82 @@
+From 5d0daa21b8cf4858c366af8e91a50a1509fc790b Mon Sep 17 00:00:00 2001
+From: Tom St Denis <tom.stdenis@amd.com>
+Date: Tue, 26 Apr 2016 14:23:02 -0400
+Subject: [PATCH 1045/1110] drm/amd/amdgpu: Re-fix debugfs for ring entries
+
+Based on Alex's rebase patch but also cleans up the
+debugfs ring init function.
+
+Signed-off-by: Tom St Denis <tom.stdenis@amd.com>
+Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 37 +++++++++++++++++---------------
+ 1 file changed, 20 insertions(+), 17 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
+index bb4ec76..3b02272 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
+@@ -369,9 +369,8 @@ static int amdgpu_debugfs_ring_info(struct seq_file *m, void *data)
+ struct drm_info_node *node = (struct drm_info_node *) m->private;
+ struct drm_device *dev = node->minor->dev;
+ struct amdgpu_device *adev = dev->dev_private;
+- int roffset = *(int*)node->info_ent->data;
++ int roffset = (unsigned long)node->info_ent->data;
+ struct amdgpu_ring *ring = (void *)(((uint8_t*)adev) + roffset);
+-
+ uint32_t rptr, wptr, rptr_next;
+ unsigned i;
+
+@@ -415,7 +414,7 @@ static int amdgpu_debugfs_ring_info(struct seq_file *m, void *data)
+ }
+
+ static struct drm_info_list amdgpu_debugfs_ring_info_list[AMDGPU_MAX_RINGS];
+-static char amdgpu_debugs_ring_names[AMDGPU_MAX_RINGS][32];
++static char amdgpu_debugfs_ring_names[AMDGPU_MAX_RINGS][32];
+
+ #endif
+
+@@ -425,22 +424,26 @@ static int amdgpu_debugfs_ring_init(struct amdgpu_device *adev,
+ #if defined(CONFIG_DEBUG_FS)
+ unsigned offset = (uint8_t*)ring - (uint8_t*)adev;
+ unsigned i;
++ struct drm_info_list *info;
++ char *name;
+
+ for (i = 0; i < ARRAY_SIZE(amdgpu_debugfs_ring_info_list); ++i) {
+- struct drm_info_list *info = &amdgpu_debugfs_ring_info_list[i];
+- char *name = amdgpu_debugs_ring_names[i];
+-
+- if (!info->data) {
+- sprintf(name, "amdgpu_ring_%s", ring->name);
+- info->name = name;
+- info->show = amdgpu_debugfs_ring_info;
+- info->driver_features = 0;
+- info->data = (void*)(uintptr_t)offset;
+- } else if (info->data != (void*)(uintptr_t)offset)
+- continue;
+-
+- return amdgpu_debugfs_add_files(adev, info, 1);
++ info = &amdgpu_debugfs_ring_info_list[i];
++ if (!info->data)
++ break;
+ }
++
++ if (i == ARRAY_SIZE(amdgpu_debugfs_ring_info_list))
++ return -ENOSPC;
++
++ name = &amdgpu_debugfs_ring_names[i][0];
++ sprintf(name, "amdgpu_ring_%s", ring->name);
++ info->name = name;
++ info->show = amdgpu_debugfs_ring_info;
++ info->driver_features = 0;
++ info->data = (void*)(uintptr_t)offset;
++
++ return amdgpu_debugfs_add_files(adev, info, 1);
+ #endif
+- return -ENOSPC;
++ return 0;
+ }
+--
+2.7.4
+